diff options
Diffstat (limited to 'data/en_us/nas/2017-06-26')
| -rw-r--r-- | data/en_us/nas/2017-06-26/api-docs.php | 32992 |
1 files changed, 15479 insertions, 17513 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 index 090b63a..38b0a5c 100644 --- a/data/en_us/nas/2017-06-26/api-docs.php +++ b/data/en_us/nas/2017-06-26/api-docs.php @@ -1,444 +1,220 @@ <?php return [ 'version' => '1.0', - 'info' => [ - 'style' => 'RPC', - 'product' => 'NAS', - 'version' => '2017-06-26', - ], + 'info' => ['style' => 'RPC', 'product' => 'NAS', 'version' => '2017-06-26'], 'directories' => [ [ - 'id' => 100612, - 'title' => 'Open service', + 'children' => ['OpenNASService'], 'type' => 'directory', - 'children' => [ - 'OpenNASService', - ], + 'title' => 'Open service', ], [ - 'id' => 100610, - 'title' => 'Regions', + 'children' => ['CreateFileSystem', 'DeleteFileSystem', 'ModifyFileSystem', 'DescribeFileSystems', 'UpgradeFileSystem', 'DescribeFilesystemsAssociatedHpnZones'], 'type' => 'directory', - 'children' => [ - 'DescribeZones', - 'DescribeRegions', - ], - ], - [ - 'id' => 100636, 'title' => 'File systems', - 'type' => 'directory', - 'children' => [ - 'CreateFileSystem', - 'DeleteFileSystem', - 'ModifyFileSystem', - 'DescribeFileSystems', - 'UpgradeFileSystem', - 'DescribeFilesystemsAssociatedHpnZones', - ], ], [ - 'id' => 100670, - 'title' => 'Mount targets', + 'children' => ['CreateMountTarget', 'DeleteMountTarget', 'ModifyMountTarget', 'DescribeMountTargets', 'DescribeMountedClients'], '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', - ], + 'title' => 'Mount targets', ], [ - 'id' => 100659, - 'title' => 'Snapshots', + 'children' => ['CreateAccessPoint', 'DescribeAccessPoint', 'DescribeAccessPoints'], 'type' => 'directory', - 'children' => [ - 'CreateSnapshot', - 'DeleteSnapshot', - 'DescribeSnapshots', - 'CreateAutoSnapshotPolicy', - 'DeleteAutoSnapshotPolicy', - 'ModifyAutoSnapshotPolicy', - 'ApplyAutoSnapshotPolicy', - 'CancelAutoSnapshotPolicy', - 'DescribeAutoSnapshotPolicies', - 'DescribeAutoSnapshotTasks', - 'ResetFileSystem', - ], + 'title' => 'AccessPoint', ], [ - 'id' => 100652, - 'title' => 'Tags', + 'children' => ['CreateAccessGroup', 'DeleteAccessGroup', 'ModifyAccessGroup', 'DescribeAccessGroups', 'CreateAccessRule', 'DeleteAccessRule', 'ModifyAccessRule', 'DescribeAccessRules'], 'type' => 'directory', - 'children' => [ - 'TagResources', - 'UntagResources', - 'ListTagResources', - ], + 'title' => 'Permission groups', ], [ - 'id' => 168742, - 'title' => 'Quotas', + 'children' => ['CreateLifecyclePolicy', 'UpdateLifecyclePolicy', 'DeleteLifecyclePolicy', 'ModifyLifecyclePolicy', 'GetDirectoryOrFileProperties', 'DescribeLifecyclePolicies', 'StartLifecyclePolicyExecution', 'StopLifecyclePolicyExecution', 'DescribeLifecyclePolicyLogs', 'ListDirectoriesAndFiles'], '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', + 'children' => ['CreateRecycleBinRestoreJob', 'CreateRecycleBinDeleteJob'], 'type' => 'directory', - 'children' => [ - 'EnableNfsAcl', - 'DisableNfsAcl', - 'DescribeNfsAcl', - ], + 'title' => 'Recycle bin', ], [ - 'id' => 180313, - 'title' => 'Log management', + 'children' => ['CreateFileset', 'DeleteFileset', 'ModifyFileset', 'GetFileset', 'DescribeFilesets', 'SetFilesetQuota'], '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', + 'children' => ['CreateDataFlow', 'DeleteDataFlow', 'ModifyDataFlow', 'DescribeDataFlows', 'StopDataFlow', 'StartDataFlow', 'CreateDataFlowTask', 'CreateDataFlowSubTask', 'CancelDataFlowTask', 'DescribeDataFlowTasks', 'DescribeDataFlowSubTasks', 'ApplyDataFlowAutoRefresh', 'CancelDataFlowAutoRefresh', 'ModifyDataFlowAutoRefresh'], 'type' => 'directory', - 'children' => [ - 'CreateDataFlow', - 'DeleteDataFlow', - 'ModifyDataFlow', - 'DescribeDataFlows', - 'StopDataFlow', - 'StartDataFlow', - 'CreateDataFlowTask', - 'CreateDataFlowSubTask', - 'CancelDataFlowTask', - 'CancelDataFlowSubTask', - 'DescribeDataFlowTasks', - 'DescribeDataFlowSubTasks', - 'ApplyDataFlowAutoRefresh', - 'CancelDataFlowAutoRefresh', - 'ModifyDataFlowAutoRefresh', - ], + 'title' => 'Data flows', ], [ - 'id' => 189081, - 'title' => 'Resource group', + 'children' => ['CreateProtocolService', 'DeleteProtocolService', 'ModifyProtocolService', 'DescribeProtocolService', 'CreateProtocolMountTarget', 'DeleteProtocolMountTarget', 'ModifyProtocolMountTarget', 'DescribeProtocolMountTarget', 'GetProtocolMountTarget'], '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', + 'children' => ['DetachVscFromFilesystems', 'AttachVscToFilesystems', 'DescribeFilesystemsVscAttachInfo'], 'type' => 'directory', - 'children' => [ - 'DetachVscFromFilesystems', - 'AttachVscToFilesystems', - 'DescribeFilesystemsVscAttachInfo', - ], + 'title' => 'Virtual Storage Channel', ], [ - 'id' => 168697, - 'title' => '其他-不发布文档', - 'type' => 'directory', 'children' => [ [ - 'id' => 100648, - 'title' => '黑名单', + 'children' => ['AddClientToBlackList', 'DescribeBlackListClients', 'RemoveClientFromBlackList'], 'type' => 'directory', - 'children' => [ - 'AddClientToBlackList', - 'DescribeBlackListClients', - 'RemoveClientFromBlackList', - ], + 'title' => '黑名单', ], [ - 'id' => 100617, - 'title' => 'LDAP', + 'children' => ['CreateLDAPConfig', 'DeleteLDAPConfig', 'ModifyLDAPConfig'], 'type' => 'directory', - 'children' => [ - 'CreateLDAPConfig', - 'DeleteLDAPConfig', - 'ModifyLDAPConfig', - ], + 'title' => 'LDAP', ], - 'DescribeFileSystemStatistics', - 'DescribeStoragePackages', ], + 'type' => 'directory', + 'title' => '其他-不发布文档', + ], + [ + 'children' => [ + 'AddTags', 'ApplyAutoSnapshotPolicy', 'CancelAutoSnapshotPolicy', 'CancelDataFlowSubTask', 'CancelDirQuota', 'CancelFilesetQuota', 'CancelLifecycleRetrieveJob', 'CancelRecycleBinJob', 'ChangeResourceGroup', 'CreateAgenticSpace', 'CreateAutoSnapshotPolicy', 'CreateDir', 'CreateFile', 'CreateLifecycleRetrieveJob', 'CreateLogAnalysis', 'CreateSnapshot', 'DeleteAccessPoint', 'DeleteAgenticSpace', 'DeleteAutoSnapshotPolicy', 'DeleteLogAnalysis', + 'DeleteSnapshot', 'DescribeAgenticSpaces', 'DescribeAutoSnapshotPolicies', 'DescribeAutoSnapshotTasks', 'DescribeDirQuotas', 'DescribeFileSystemStatistics', 'DescribeLogAnalysis', 'DescribeNfsAcl', 'DescribeRegions', 'DescribeSmbAcl', 'DescribeSnapshots', 'DescribeStoragePackages', 'DescribeZones', 'DisableAndCleanRecycleBin', 'DisableNfsAcl', 'DisableSmbAcl', 'EnableNfsAcl', 'EnableRecycleBin', 'EnableSmbAcl', 'GetAgenticSpace', + 'GetRecycleBinAttribute', 'ListAccessPoints', 'ListLifecycleRetrieveJobs', 'ListRecentlyRecycledDirectories', 'ListRecycleBinJobs', 'ListRecycledDirectoriesAndFiles', 'ListTagResources', 'ModifyAccessPoint', 'ModifyAgenticSpace', 'ModifyAutoSnapshotPolicy', 'ModifySmbAcl', 'RemoveTags', 'ResetFileSystem', 'RetryLifecycleRetrieveJob', 'SetAgenticSpaceQuota', 'SetDirQuota', 'TagResources', 'UntagResources', 'UpdateRecycleBinAttribute', + ], + 'title' => 'Others', + 'type' => 'directory', ], ], 'components' => [ 'schemas' => [], ], 'apis' => [ - 'OpenNASService' => [ - 'summary' => 'Activates File Storage NAS.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + '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' => [], ], - [ - 'PrivateKey' => [], - ], - [ - 'BearerToken' => [], - ], - [ - 'APP' => [], - ], ], 'operationType' => 'write', - 'deprecated' => false, + 'deprecated' => true, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13981', - 'abilityTreeNodes' => [ - 'FEATUREnasVB8QSJ', - ], + 'abilityTreeCode' => '13916', + 'abilityTreeNodes' => ['FEATUREnas2SBOJD'], 'autoTest' => false, - 'notSupportAutoTestReason' => '开通服务接口', + 'notSupportAutoTestReason' => '弃用接口', 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], + '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', 'title' => ''], + ], + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'example' => '1ca404a348', 'title' => ''], + ], + [ + 'name' => 'ClientIP', + 'in' => 'query', + 'schema' => ['description' => 'The IP address of the client to add.'."\n", 'type' => 'string', 'required' => true, 'example' => '192.168.0.0', 'title' => ''], + ], + [ + '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 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-426655440000', 'title' => ''], + ], + ], '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" - .' }', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'A70BEE5D-76D3-49FB-B58F-1F398211A5C3', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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', + '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.', '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', + 'changeSet' => [ + ['createdAt' => '2024-03-12T11:38:29.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddClientToBlackList'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:AddClientToBlackList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], ], + ], + 'AddTags' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', + 'deprecated' => true, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13964', - 'abilityTreeNodes' => [ - 'FEATUREnasQG6YBL', - ], - 'autoTest' => true, + 'abilityTreeCode' => '13917', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], + 'autoTest' => false, + 'notSupportAutoTestReason' => '弃用接口', 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'FileSystemId', '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', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'FileSystemType', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', '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', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['type' => 'string', 'required' => false], + 'Value' => ['type' => 'string', 'required' => false], + ], + ], + 'required' => true, + 'maxItems' => 10, ], ], ], @@ -447,208 +223,55 @@ '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' => '', - ], - ], - ], - ], + 'RequestId' => ['type' => 'string'], ], - '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' => [ + 'substitutions' => ['NAS::2017-06-26::TagResources'], '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', + 'changeSet' => [ + ['createdAt' => '2022-02-28T16:21:38.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"\\"\\n}","type":"json"}]', + ], + 'ApplyAutoSnapshotPolicy' => [ + 'summary' => 'Applies an automatic snapshot policy to one or more file systems.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13959', - 'abilityTreeNodes' => [ - 'FEATUREnasQG6YBL', - ], + 'abilityTreeCode' => '13918', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], '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', + 'name' => 'AutoSnapshotPolicyId', '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', - ], + 'schema' => ['description' => 'The ID of the automatic snapshot policy.'."\n", 'type' => 'string', 'required' => true, 'example' => 'sp-extreme-233e6****', 'title' => ''], ], [ - 'name' => 'FileSystemType', + 'name' => 'FileSystemIds', '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', - ], - ], + '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****', 'title' => ''], ], ], 'responses' => [ @@ -656,623 +279,370 @@ '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', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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', + 'staticInfo' => ['returnType' => 'synchronous'], + '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' => ' ', - ], - 'CreateFileSystem' => [ - 'summary' => 'Creates a file system.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:06.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ApplyAutoSnapshotPolicy'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ApplyAutoSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>","errorExample":""}]', + ], + 'ApplyDataFlowAutoRefresh' => [ + 'summary' => 'Configures automatic updates for a specified data flow.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeCode' => '13930', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', - ], + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '59398', + 'abilityTreeNodes' => ['FEATUREnasQ7YV89', 'FEATUREnas0GUIX5'], 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', + 'tenantRelevance' => 'tenant', ], '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', + 'name' => 'FileSystemId', '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', - ], + 'schema' => ['description' => 'The ID of the file system.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cpfs-099394bd928c****', 'title' => ''], ], [ - 'name' => 'Bandwidth', + 'name' => 'DataFlowId', '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', - ], + 'schema' => ['description' => 'The ID of the data flow.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'df-194433a5be31****', 'title' => ''], ], [ - 'name' => 'StorageType', + 'name' => 'AutoRefreshs', 'in' => 'query', + 'style' => 'repeatList', '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', + 'description' => 'The collection of auto-refresh configurations.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RefreshPath' => ['description' => 'The auto-refresh directory. CPFS automatically checks whether data in this directory on the source has been updated and imports the updated data.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'- The path must be 2 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 (/).'."\n" + ."\n" + .'> The directory must already exist in CPFS and must be in a fileset that has data flow enabled.', 'type' => 'string', 'required' => true, 'maxLength' => 1024, 'minLength' => 2, 'example' => '/prefix1/prefix2/', 'title' => ''], + ], + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', + ], 'required' => true, 'docRequired' => true, - 'example' => 'Performance', - 'enum' => [ - 'Premium', - 'Performance', - 'Capacity', - 'standard', - 'advance', - 'NasPlusSmartCache', - 'advance_100', - 'advance_200', - 'economic', - ], + 'maxItems' => 5, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'ZoneId', + 'name' => 'AutoRefreshPolicy', 'in' => 'query', + 'allowEmptyValue' => true, '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" + 'description' => 'The auto-refresh policy. This policy determines how data updates from the source are imported to CPFS. Valid values:'."\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", + .'- None: Data updates from the source are not automatically imported to CPFS. You can use a data flow task to import data updates from the source.'."\n" + .'- ImportChanged: Data updates from the source are automatically imported to CPFS.', + 'enumValueTitles' => ['ImportChanged' => 'data updates from the source are automatically imported to CPFS.', 'None' => 'data updates from the source are not automatically imported to CPFS.'], 'type' => 'string', + 'default' => 'None', + 'enum' => ['None', 'ImportChanged'], 'required' => false, - 'docRequired' => false, - 'example' => 'cn-hangzhou-b', + 'example' => 'None', + 'title' => '', ], ], [ - 'name' => 'ProtocolType', + 'name' => 'AutoRefreshInterval', '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', - ], - ], + 'schema' => ['description' => 'The auto-refresh interval. CPFS checks the directory for data updates at this interval. If data updates exist, an auto-refresh task is started. Unit: minutes.'."\n" + ."\n" + .'Valid values: 10 to 525600. Default value: 10.', 'type' => 'integer', 'format' => 'int64', 'maximum' => '525600', 'minimum' => '5', 'required' => false, 'example' => '10', 'title' => ''], ], [ - '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', + 'name' => 'DryRun', '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', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run for this request.'."\n" + ."\n" + .'A dry run checks parameter validity and resource availability without actually creating an instance or incurring charges.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: Sends a dry run request without creating an instance. The check items include required parameters, request format, business limits, and NAS inventory. If the check fails, the corresponding error is returned. If the check succeeds, HTTP status code 200 is returned, but FileSystemId is empty.'."\n" + .'- false (default): Sends a normal request. After the check succeeds, the instance is created.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'ClientToken', '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****', - ], + '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 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 RequestId of the API request as the ClientToken. The RequestId may differ for each API request.', 'type' => 'string', 'maxLength' => 64, 'minLength' => 1, 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], ], - [ - 'name' => 'VSwitchId', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ '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****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - [ - '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', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingDataFlowId', 'errorMessage' => 'DataFlowId is mandatory for this action.', 'description' => ''], ], - [ - '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****', - ], + 403 => [ + ['errorCode' => 'OperationDenied.InvalidState', 'errorMessage' => 'The operation is not permitted when the status is processing.', 'description' => 'The operation is not permitted when the status is processing.'], + ['errorCode' => 'InvalidFileSystem.AlreadyExisted', 'errorMessage' => 'The specified file system already exists.', 'description' => 'The specified file system already exists.'], + ['errorCode' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => ''], + ['errorCode' => 'OperationDenied.NestedDir', 'errorMessage' => 'The operation is denied due to nested directory.', 'description' => ''], + ['errorCode' => 'OperationDenied.ConflictOperation', 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', 'description' => ''], + ['errorCode' => 'OperationDenied.DataFlowNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], ], [ - '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****', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidDataFlow.NotFound', 'errorMessage' => 'The specified data flow does not exist.', 'description' => ''], + ['errorCode' => 'InvalidRefreshPath.InvalidParameter', 'errorMessage' => 'Refresh path is invalid.', 'description' => ''], + ['errorCode' => 'InvalidRefreshPath.NotFound', 'errorMessage' => 'Refresh path does not exist.', 'description' => ''], + ['errorCode' => 'InvalidRefreshPolicy.InvalidParameter', 'errorMessage' => 'Refresh policy is invalid.', 'description' => ''], + ['errorCode' => 'InvalidRefreshInterval.OutOfBounds', 'errorMessage' => 'Refresh interval is out of bounds.', 'description' => ''], + ['errorCode' => 'InvalidRefreshPath.AlreadyExist', 'errorMessage' => 'The refresh path already exists.', 'description' => ''], + ['errorCode' => 'InvalidRefreshPath.TooManyPaths', 'errorMessage' => 'The number of refresh paths exceeds the limit.', 'description' => ''], ], - [ - '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', + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","type":"json"}]', + 'title' => 'Add auto-refresh configuration for a data flow', + 'description' => '- This operation applies only to Cloud Parallel File Storage (CPFS) file systems.'."\n" + .'- Only CPFS 2.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 add auto-refresh configurations only for data flows in the `Running` state.'."\n" + .'- You can add up to five auto-refresh configurations for a data flow.'."\n" + ."\n" + .'- It takes 2 to 5 minutes to create an auto-refresh configuration. You can call [DescribeDataFlows](~~336901~~) to query the data flow status.'."\n" + ."\n" + .'- Auto-refresh relies on EventBridge to collect object modification events from the source OSS storage. [Activate EventBridge](~~182246~~) before you proceed.'."\n" + ."\n" + .' > The event buses and event rules that CPFS creates in EventBridge contain the description `Create for cpfs auto refresh`. Do not modify or delete these event buses or event rules. Otherwise, auto-refresh cannot work properly.'."\n" + ."\n" + .'- Auto-refresh targets a prefix specified by the RefreshPath parameter. When you configure auto-refresh for a prefix in a CPFS data flow, an event bus is created on the user side, and an event rule is created for the prefix of the source OSS bucket. When objects within the prefix of the source OSS bucket are modified, OSS events are generated in EventBridge and processed by the CPFS data flow.'."\n" + .'- After you configure auto-refresh (AutoRefresh), when data changes in the source storage, the changed metadata is automatically synchronized to the CPFS file system. The changed data is loaded on demand when a user accesses the file, or loaded by starting a data flow node to load data.'."\n" + .'- The auto-refresh interval (AutoRefreshInterval) specifies the interval at which CPFS checks whether data updates exist in the prefix of the source OSS bucket. If data updates exist, an auto-refresh node is started. When the frequency of object modification events in the source OSS bucket exceeds the processing capacity of the CPFS data flow, automatic synchronization nodes accumulate, metadata updates are delayed, and the data stream status changes to Misconfigured. To resolve this issue, upgrade the data stream specifications or reduce the modification frequency in OSS.', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:06.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-06T03:48:20.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2021-11-23T06:46:17.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-10-28T08:34:23.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ApplyDataFlowAutoRefresh'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ApplyDataFlowAutoRefresh', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#fileSystemId}'], + ], ], ], + ], + ], + 'AttachVscToFilesystems' => [ + 'path' => '', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], + 'security' => [ [ - '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", - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREnasOIBEFL'], + 'autoTest' => false, + 'notSupportAutoTestReason' => '特定账户使用', + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ [ - 'name' => 'Tag', + 'name' => 'ResourceIds', 'in' => 'query', - 'style' => 'repeatList', + 'style' => 'flat', '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", + 'description' => 'The ID information of file systems and virtual storage channels. A maximum of 10 entries can be specified per batch.', 'type' => 'array', 'items' => [ - 'description' => 'The tag.'."\n", + 'description' => 'The ID information of file systems and virtual storage channels. A maximum of 10 entries can be specified per batch.', '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', - ], + 'FileSystemId' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => false, 'example' => 'bmcpfs-290t15yn4uo8lid****', 'title' => ''], + 'VscId' => ['description' => 'The virtual storage channel ID.', 'type' => 'string', 'required' => false, 'example' => 'vsc-8vb864o3ppwfvh****', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], - 'required' => false, - 'maxItems' => 21, + 'required' => true, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'RedundancyType', + 'name' => 'ClientToken', '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', - ], - ], + '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 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 RequestId of the API request as the ClientToken. The RequestId may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], ], [ - 'name' => 'RedundancyVSwitchIds', + 'name' => 'RoleChain', 'in' => 'query', - 'allowEmptyValue' => true, - 'style' => 'repeatList', + 'style' => 'flat', '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', + 'type' => 'object', + 'properties' => [ + 'RoleType' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'RoleArn' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'AssumeRoleFor' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], - 'required' => false, - 'maxItems' => 3, - 'minItems' => 0, + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'title' => '', + 'description' => 'Schema of Response', '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****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', 'title' => ''], ], + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter is invalid.', 'description' => 'Illegal parameter.'], + ['errorCode' => 'InvalidParameter.ResourceIds', 'errorMessage' => 'Invalid ResourceIds, can not be empty or batch size large than 10.', 'description' => ''], + ['errorCode' => 'InvalidParameter.FileSystem', 'errorMessage' => 'Invalid FileSystem in ResourceIds.', 'description' => ''], + ['errorCode' => 'InvalidFilesystemType.NotSupport', 'errorMessage' => 'This Api does not support this fileSystem type.', 'description' => 'The current interface does not support this type of file system.'], + ['errorCode' => 'InvalidParameter.VscId', 'errorMessage' => 'Invalid VscId in ResourceIds.', 'description' => ''], + ['errorCode' => 'InvalidParameter.VscIds', 'errorMessage' => 'Invalid VscId in ResourceIds.VscIds must be the same.', 'description' => ''], + ['errorCode' => 'Ram.AddRamParamFailed', 'errorMessage' => 'Ram check has failed due to param invalid, please check param.', 'description' => ''], + ['errorCode' => 'FeatureOrAPI.NotSupported', 'errorMessage' => 'The Feature/API is not supported in this region now.', 'description' => ''], ], 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.', + ['errorCode' => 'Forbbiden.Ram', 'errorMessage' => 'User not authorized to operate on the specified resource, or this API doesn\'t support RAM.', 'description' => 'The user is not authorized to operate the specified resource, or the API does not support RAM.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Associate a VSC device with a file system', + 'summary' => 'Associates a VSC device with a file system.', + 'description' => '- Only CPFS for Lingjun supports this feature.'."\n" + .'- Batch operations are supported. In batch mode, only one VscId can be associated with multiple file system IDs (FileSystemId). This means the ResourceIds.VscId values must be the same.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:AttachVscToFilesystems', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Vsc', 'arn' => 'acs:eflo:{#regionId}:{#accountId}:vsc/{#VscId}'], + ], ], ], ], - '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' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\"\\n}","type":"json"}]', ], - 'DeleteFileSystem' => [ - 'summary' => 'Deletes a file system.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CancelAutoSnapshotPolicy' => [ + 'summary' => 'Cancels the automatic snapshot policy that is created for a file system.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1281,31 +651,21 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'high', 'chargeType' => 'free', - 'abilityTreeCode' => '13939', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', - ], + 'abilityTreeCode' => '13920', + 'abilityTreeNodes' => ['FEATUREnas5QOAQE'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'FileSystemIds', '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****', - ], + 'schema' => ['description' => 'The IDs of the file systems.'."\n" + ."\n" + .'You can specify up to 100 file systems in a single call. To cancel the automatic snapshot policy for multiple file systems, separate the file system IDs with commas (,).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'extreme-233e6****,extreme-23vbp****,extreme-23vas****', 'title' => ''], ], ], 'responses' => [ @@ -1313,50 +673,63 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '9E15E394-38A6-457A-A62A-D9797C9A****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n" + ."\n" + .'The request ID is returned regardless of whether the call is successful.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DED****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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", + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DED****\\"\\n}","type":"json"}]', + 'title' => 'Cancel the automatic snapshot policy for one or more file systems', + 'description' => '<props="china">.'."\n" + ."\n" + .'- This feature is in free public preview. During the public preview, the [File Storage NAS Service-Level Agreement (SLA)](https://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud201803061139_99860.html?spm=a2c4g.11186623.0.0.5c895ff2YPLrwe) is not guaranteed.'."\n" + ."\n" + .'- Only Advanced Extreme NAS supports this feature.'."\n" + ."\n" + .'</props>.'."\n" + ."\n" + .'<props="intl">.'."\n" + ."\n" + .'- This feature is in free public preview. During the public preview, the [File Storage NAS Service-Level Agreement (SLA)](https://www.alibabacloud.com/help/legal/latest/network-attached-storage-service-level-agreement) is not guaranteed.'."\n" + ."\n" + .'- Only Advanced Extreme NAS supports this feature.'."\n" + ."\n" + .'</props>.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyFileSystem' => [ - 'summary' => 'Modifies the description of a file system.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:06.000Z', 'description' => 'Response parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelAutoSnapshotPolicy'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:CancelAutoSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + ], + 'CancelDataFlowAutoRefresh' => [ + 'summary' => 'Cancels the AutoRefresh configuration for a dataflow.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1366,12 +739,10 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', - 'riskType' => 'none', + 'riskType' => 'high', 'chargeType' => 'free', - 'abilityTreeCode' => '13976', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', - ], + 'abilityTreeCode' => '59403', + 'abilityTreeNodes' => ['FEATUREnasQ7YV89', 'FEATUREnas0GUIX5'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], @@ -1379,59 +750,47 @@ [ '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****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cpfs-099394bd928c****', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'DataFlowId', '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', - ], + 'schema' => ['description' => 'The ID of the dataflow.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'df-194433a5be31****', 'title' => ''], ], [ - 'name' => 'Options', + 'name' => 'RefreshPath', '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, - ], + '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/', 'title' => ''], + ], + [ + '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, 'default' => 'false', 'example' => 'false', 'title' => ''], + ], + [ + '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****', 'title' => ''], ], ], 'responses' => [ @@ -1439,189 +798,126 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5BC5CB97-9F28-42FE-84A4-0CD0DF42****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingDataFlowId', 'errorMessage' => 'DataFlowId is mandatory for this action.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => ''], + ['errorCode' => 'OperationDenied.ConflictOperation', 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', 'description' => ''], + ['errorCode' => 'OperationDenied.DataFlowNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidDataFlow.NotFound', 'errorMessage' => 'The specified data flow does not exist.', 'description' => ''], + ['errorCode' => 'InvalidRefreshPath.InvalidParameter', 'errorMessage' => 'Refresh path is invalid.', 'description' => ''], + ['errorCode' => 'InvalidRefreshPath.NotFound', 'errorMessage' => 'Refresh path does not exist.', 'description' => ''], + ], ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","type":"json"}]', + 'title' => 'CancelDataFlowAutoRefresh', + 'description' => '- 该接口仅适用于CPFS文件系统。'."\n" + .'- 仅CPFS 2.2.0及以上版本支持数据流动。您可以在控制台文件系统详情页面查看版本信息。'."\n" + .'- 仅支持取消`Running(正常)`、`Stopped(停止)`状态数据流动的自动更新配置。'."\n" + ."\n" + .'- 取消自动更新配置一般耗时2~5分钟,您可以通过[DescribeDataFlows](~~2402270~~)查询取消自动更新任务的状态。', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:06.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-06T03:48:20.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2021-10-28T08:34:23.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelDataFlowAutoRefresh'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:CancelDataFlowAutoRefresh', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'CancelDataFlowSubTask' => [ + 'summary' => 'Cancels a data streaming task.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13951', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', - ], + 'abilityTreeCode' => '225734', + 'abilityTreeNodes' => ['FEATUREnasPWYFYN'], + '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" - .'* The IDs of CPFS SE file systems must start with cpfsse-. Example: cpfsse-022c71b134\\*\\*\\*\\*.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '31a8e4****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'bmcpfs-370lx1ev9ss27o0****'."\n", 'title' => ''], ], [ - 'name' => 'FileSystemType', + 'name' => 'DataFlowId', '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' => [], - ], + 'schema' => ['description' => 'The ID of the dataflow.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'df-194433a5be31****', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'DataFlowTaskId', '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****', - ], + 'schema' => ['description' => 'The ID of the dataflow task.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'task-38aa8e890f45****', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'DryRun', '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', - ], + '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, 'default' => 'false', 'example' => 'false', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'ClientToken', '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', - ], + '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****', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'DataFlowSubTaskId', '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", - ], + 'schema' => ['description' => 'The ID of the data streaming task.'."\n", 'type' => 'string', 'required' => true, 'example' => 'subTaskId-370kyfmyknxcyzw****', 'title' => ''], ], ], 'responses' => [ @@ -1629,561 +925,63 @@ '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', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Region.NotSupported', - 'errorMessage' => 'The specified Region is not supported for this API now.', - ], + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingDataFlowId', 'errorMessage' => 'DataFlowId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingTaskId', 'errorMessage' => 'TaskId is mandatory for this action.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], + 403 => [ + ['errorCode' => 'OperationDenied.ConflictOperation', 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', 'description' => ''], + ['errorCode' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => ''], + ['errorCode' => 'OperationDenied.DataFlowNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidDataFlow.NotFound', 'errorMessage' => 'The specified data flow does not exist.', 'description' => ''], + ['errorCode' => 'InvalidTaskId.NotFound', 'errorMessage' => 'The specified task ID does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","type":"json"}]', + 'title' => 'CancelDataFlowSubTask', + 'description' => '- 仅CPFS智算版2.6.0 及以上版本支持。您可以在控制台文件系统详情页面查看版本信息。'."\n" + .'- 仅支持在 CREATED和RUNNING状态下取消数据流动流式任务。'."\n" + .'- 数据流动流式任务是异步执行的,您可通过DescribeDataFlowSubTasks查询流式任务执行状态。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelDataFlowSubTask'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:CancelDataFlowSubTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], - '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' => ' ', + 'translator' => 'manual', ], - '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', - ], + 'CancelDataFlowTask' => [ + 'summary' => 'Cancels a batch or streaming data flow task that is in the Pending or Executing state.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2192,16 +990,11 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'high', - 'chargeType' => 'paid', - 'abilityTreeCode' => '13988', - 'abilityTreeNodes' => [ - 'FEATUREnasCF11NZ', - 'FEATUREnasQ7YV89', - 'FEATUREnas6KFX9N', - 'FEATUREnas0GUIX5', - ], + 'chargeType' => 'free', + 'abilityTreeCode' => '49029', + 'abilityTreeNodes' => ['FEATUREnasQ7YV89', 'FEATUREnas0GUIX5'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], @@ -2209,63 +1002,43 @@ [ '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****', - ], + 'schema' => ['description' => 'The file system ID.'."\n" + ."\n" + .'- For a general-purpose CPFS instance, the ID must start with `cpfs-`, for example, `cpfs-125487****`.'."\n" + ."\n" + .'- For a CPFS for AI Computing instance, the ID must start with `bmcpfs-`, for example, `bmcpfs-0015****`.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cpfs-099394bd928c****', 'title' => ''], ], [ - 'name' => 'Capacity', + 'name' => 'DataFlowId', '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', - ], + 'schema' => ['description' => 'The data flow ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'df-194433a5be31****', 'title' => ''], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => ['description' => 'The data flow task ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'task-38aa8e890f45****', 'title' => ''], ], [ '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', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run for the request.'."\n" + ."\n" + .'A dry run checks for parameter validity and resource availability without actually canceling the task or incurring charges.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- `true`: Performs a dry run. The system checks the request for potential issues, including missing parameters, invalid formats, and service limits. If the check fails, the system returns an error message; otherwise, it returns a success code.'."\n" + ."\n" + .'- `false` (default): Sends a normal request. After the request passes the check, the task is canceled.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], ], [ '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****', - ], + 'schema' => ['description' => 'A client-generated token that you can use to ensure the idempotence of the request. The token must be unique across different requests.'."\n" + ."\n" + .'The `ClientToken` value must be an ASCII string of 64 characters or less. 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 `ClientToken`. The request ID is unique for each request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], ], ], 'responses' => [ @@ -2273,91 +1046,125 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingDataFlowId', 'errorMessage' => 'DataFlowId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingTaskId', 'errorMessage' => 'TaskId is mandatory for this action.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'OperationDenied.ConflictOperation', 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', 'description' => ''], + ['errorCode' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => ''], + ['errorCode' => 'OperationDenied.DataFlowNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidDataFlow.NotFound', 'errorMessage' => 'The specified data flow does not exist.', 'description' => ''], + ['errorCode' => 'InvalidTaskId.NotFound', 'errorMessage' => 'The specified task ID does not exist.', 'description' => ''], + ], ], - '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', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\"\\n}","type":"json"}]', + 'title' => 'CancelDataFlowTask', + 'description' => '- Data flow tasks are supported only by CPFS 2.2.0 or later and CPFS for AI Computing 2.4.0 or later. The file system details page in the console displays the version information.'."\n" + ."\n" + .'- A data flow task can be canceled only if it is in the `Pending or Executing` state.'."\n" + ."\n" + .'- Canceling a data flow task typically takes 5 to 10 minutes. Call the [DescribeDataFlowTasks](~~2402275~~) operation to query the task execution status.'."\n" + ."\n" + .'- You cannot cancel a streaming task if it has running streaming subtasks. Otherwise, the system returns an InvalidStatus.ResourceMismatch error.', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:05.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-10-28T08:34:23.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelDataFlowTask'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:CancelDataFlowTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], + ], + 'CancelDirQuota' => [ + 'summary' => 'Cancels a directory quota for a file system.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', + 'operationType' => 'delete', + 'riskType' => 'high', 'chargeType' => 'free', - 'abilityTreeCode' => '191084', - 'abilityTreeNodes' => [ - 'FEATUREnasOIBEFL', - ], - 'autoTest' => false, - 'notSupportAutoTestReason' => '特殊客户使用', - 'tenantRelevance' => 'publicInformation', + 'abilityTreeCode' => '13921', + 'abilityTreeNodes' => ['FEATUREnasM1TG05'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], + ], + [ + 'name' => 'Path', + 'in' => 'query', + 'schema' => ['description' => 'The absolute path of the directory in the file system.', 'type' => 'string', 'required' => true, 'example' => '/data/sub1', 'title' => ''], + ], + [ + 'name' => 'UserType', 'in' => 'query', 'schema' => [ - 'description' => 'The ID of the region where the file system resides.'."\n", + 'description' => 'The user type.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- Uid: user ID'."\n" + .'- Gid: user group ID'."\n" + .'- AllUsers: all users.', + 'enumValueTitles' => ['Uid' => 'User ID.', 'Gid' => 'User group ID.', 'AllUsers' => 'All users.'], 'type' => 'string', 'required' => true, - 'example' => 'cn-hangzhou', + 'enum' => ['Uid', 'Gid', 'AllUsers'], + 'example' => 'Uid', + 'title' => '', ], ], [ - 'name' => 'Filesystems', + 'name' => 'UserId', '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, - ], + 'schema' => ['description' => 'The UID or GID to cancel.'."\n" + ."\n" + .'This parameter is required and valid only when UserType is set to Uid or Gid.'."\n" + ."\n" + .'Examples:'."\n" + ."\n" + .'- To cancel the quota for the user whose UID is 500, set UserType to Uid and UserId to 500.'."\n" + .'- To cancel the quota for the user group whose GID is 100, set UserType to Gid and UserId to 100.', 'type' => 'string', 'required' => false, 'example' => '500', 'title' => ''], ], ], 'responses' => [ @@ -2365,208 +1172,101 @@ '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****', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5BC5CB97-9F28-42FE-84A4-0CD0DF42****', 'title' => ''], + 'Success' => ['description' => 'The request status.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: The request was successful.'."\n" + .'- false: The request failed.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidFilesystemType.NotSupport', - 'errorMessage' => 'This Api does not support this fileSystem type.', - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5BC5CB97-9F28-42FE-84A4-0CD0DF42****\\",\\n \\"Success\\": true\\n}","type":"json"}]', + 'title' => 'Cancel a directory quota for a file system', + 'description' => 'Only General-purpose NAS NFS file systems support the directory quota feature.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:05.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelDirQuota'], ], - 404 => [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:CancelDirQuota', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], ], - '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', - ], + 'CancelFilesetQuota' => [ + 'summary' => 'Cancels the quota set for a fileset.', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13934', - 'abilityTreeNodes' => [ - 'FEATUREnasOIBEFL', - ], + 'abilityTreeCode' => '238649', + 'abilityTreeNodes' => ['FEATUREnasXEQXVN'], + 'autoTest' => false, + 'notSupportAutoTestReason' => '为特殊用户使用API', + 'tenantRelevance' => 'publicInformation', ], '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', - ], - ], + '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****', 'title' => ''], ], [ - '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', + 'name' => 'FsetId', '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****', - ], + 'schema' => ['description' => 'The fileset ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'fset-1902718ea0ae****'."\n", 'title' => ''], ], [ - 'name' => 'SecurityGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the security group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'sg-bp1fg655nh68xyz9****', - ], - ], - [ - 'name' => 'EnableIpv6', + 'name' => 'DryRun', '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', - ], + '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 to pass the precheck, 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, 'default' => 'false', 'example' => 'false', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'ClientToken', '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', - ], + '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****', 'title' => ''], ], ], 'responses' => [ @@ -2574,135 +1274,66 @@ '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', - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****'."\n", 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingFsetId', 'errorMessage' => 'FsetId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidFilesetId.NotFound', 'errorMessage' => 'Invalid FilesetId.', 'description' => 'Fileset does not exist'], ], 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' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => ''], + ['errorCode' => 'OperationDenied.FilesetNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidFsetId.NotFound', 'errorMessage' => 'The specified Fileset ID does not exist.', 'description' => ''], + ], + 429 => [ + ['errorCode' => 'Throttling.Api', 'errorMessage' => 'Request was denied due to api flow control.', 'description' => 'The request is throttled.'], ], ], - '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', + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\\\n\\"\\n}","type":"json"}]', + 'title' => 'CancelFilesetQuota', + 'description' => '仅CPFS智算版2.7.0及以上版本支持取消配额。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelFilesetQuota'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:CancelFilesetQuota', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Fileset', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'CancelLifecycleRetrieveJob' => [ + 'summary' => 'Cancels a running data retrieval task.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2712,41 +1343,18 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'delete', - 'riskType' => 'high', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13943', - 'abilityTreeNodes' => [ - 'FEATUREnas5IJRRZ', - ], + 'abilityTreeCode' => '19615', + 'abilityTreeNodes' => ['FEATUREnas7AL8PW', 'FEATUREnasEER7AI'], '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', + 'name' => 'JobId', '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', - ], + 'schema' => ['description' => 'The ID of the data retrieval task.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'lrj-nfstest-ia-160****853-hshvw', 'title' => ''], ], ], 'responses' => [ @@ -2754,36 +1362,56 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5BC5CB97-9F28-42FE-84A4-0CD0DF42****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationDenied.LifecycleRetrieveJobEnded', 'errorMessage' => 'The specified LifecycleRetrieveJob has already ended.', 'description' => 'The specified LifecycleRetrieveJob has already ended.'], + ], + 404 => [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidLifecycleRetrieveJob.NotFound', 'errorMessage' => 'The specified LifecycleRetrieveJob does not exist.', 'description' => 'The specified LifecycleRetrieveJob does not exist.'], + ], ], - '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", + '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' => ' ', - ], - 'ModifyMountTarget' => [ - 'summary' => 'Modifies a mount target.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2021-04-08T08:36:16.000Z', 'description' => 'OpenAPI offline'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelLifecycleRetrieveJob'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:CancelLifecycleRetrieveJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + ], + 'CancelRecycleBinJob' => [ + 'summary' => 'Cancels a running job of the recycle bin.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2793,523 +1421,248 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', - 'riskType' => 'high', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13979', - 'abilityTreeNodes' => [ - 'FEATUREnasOIBEFL', - ], + 'abilityTreeCode' => '14462', + 'abilityTreeNodes' => ['FEATUREnas0A1PB1'], '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', + 'name' => 'JobId', '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', - ], + 'schema' => ['description' => 'The job ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'rb-15****ed-r-1625****2441', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'FF387D95-34C4-4879-B65A-99D1FA1B****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****'], ], + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingJobId', 'errorMessage' => 'JobId is mandatory for this action.', 'description' => 'JobId is mandatory for this action.'], + ], + 403 => [ + ['errorCode' => 'OperationDenied.Conflict', 'errorMessage' => 'The operation is in conflict with (% JobId). Please try again later.', 'description' => 'The operation is in conflict with (% JobId). Please try again later.'], + ], + [ + ['errorCode' => 'InvalidJobId.NotFound', 'errorMessage' => 'The specified JobId(%JobId) does not exist.', 'description' => 'The specified JobId (%JobId) does not exist.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + '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.', + 'changeSet' => [ + ['createdAt' => '2021-06-02T07:10:56.000Z', 'description' => 'Request parameters changed'], ], - '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', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelRecycleBinJob'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:CancelRecycleBinJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + ], + 'ChangeResourceGroup' => [ + 'summary' => 'Changes the resource group to which a file system instance belongs.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13957', - 'abilityTreeNodes' => [ - 'FEATUREnasOIBEFL', - ], + 'abilityTreeCode' => '202852', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'RegionId', '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****', - ], + 'schema' => ['description' => 'The region ID of the zone.'."\n" + ."\n" + .'You can call [DescribeRegions](~~2412111~~) to query the most recent region list.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - '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', + 'name' => 'ResourceId', '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', - ], + 'schema' => ['title' => '', 'description' => 'The resource ID.', 'type' => 'string', 'required' => true, 'example' => '31a8e4****'], ], [ - 'name' => 'PageNumber', + 'name' => 'NewResourceGroupId', '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', - ], + 'schema' => ['description' => 'The new resource group ID.'."\n" + ."\n" + .'You can view the resource group ID in the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups?).', 'type' => 'string', 'required' => true, 'example' => 'rg-acfmwavnfdf****', 'title' => ''], ], [ - 'name' => 'DualStackMountTargetDomain', + 'name' => 'ResourceType', 'in' => 'query', 'schema' => [ - 'description' => 'The dual-stack (IPv4 and IPv6) domain name of the mount target.'."\n" + 'description' => 'The resource type.'."\n" ."\n" - .'> Only Extreme NAS file systems that reside in the Chinese mainland support IPv6.'."\n", + .'Valid values: filesystem (file system).', + 'enumValueTitles' => ['filesystem' => 'file system.'], 'type' => 'string', - 'required' => false, - 'example' => '1ca404****-x****.dualstack.cn-hangzhou.nas.aliyuncs.com', + 'required' => true, + 'enum' => ['filesystem'], + 'example' => 'filesystem', + 'title' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', + 'description' => 'Schema of Response', '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' => '', - ], - ], - ], - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****'], ], - 'description' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'EntityNotExist.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => 'The resource group does not exist.'], + ['errorCode' => 'EntityNotExist.ResourceId', 'errorMessage' => 'The resource does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\"\\n}","type":"json"}]', + 'title' => 'Change resource group', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ChangeResourceGroup'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ChangeResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - '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', - ], + 'CreateAccessGroup' => [ + 'summary' => 'Creates a permission group.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13956', - 'abilityTreeNodes' => [ - 'FEATUREnasOIBEFL', - ], + 'abilityTreeCode' => '13927', + 'abilityTreeNodes' => ['FEATUREnas2SBOJD'], 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'PageSize', + 'name' => 'AccessGroupName', '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', - ], + '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 (_), or hyphens (-).'."\n" + .'- The name of the new permission group cannot be the same as the name of the default permission group.'."\n" + ."\n" + .'Default permission group: DEFAULT_VPC_GROUP_NAME (default VPC permission group).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-test', 'title' => ''], ], [ - 'name' => 'FileSystemId', + 'name' => 'AccessGroupType', 'in' => 'query', 'schema' => [ - 'description' => 'The ID of the file system.'."\n", + 'description' => 'The type of the permission group. Set the value to **Vpc**, which indicates VPC.', + 'enumValueTitles' => ['Vpc' => 'VPC.', 'VPC' => 'VPC.', 'vpc' => 'VPC.'], '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', + 'enum' => ['Vpc', 'VPC', 'vpc'], + 'example' => 'Vpc', + 'title' => '', ], ], [ - 'name' => 'MountTargetDomain', + 'name' => 'Description', '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', - ], + 'schema' => ['description' => 'The description of the permission group.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'- The description defaults to the permission group name and 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 (_), or hyphens (-).', 'type' => 'string', 'required' => false, 'example' => 'vpctestaccessgroup', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'FileSystemType', 'in' => 'query', 'schema' => [ - 'description' => 'The page number.'."\n" + 'description' => 'The type of the file system.'."\n" ."\n" - .'Pages start from page 1. Default value: 1.'."\n", - 'type' => 'integer', - 'format' => 'int32', + .'Valid values:'."\n" + ."\n" + .'- standard (default): General-purpose NAS.'."\n" + .'- extreme: Extreme NAS.', + 'enumValueTitles' => ['standard' => 'General-purpose NAS.', 'extreme' => 'Extreme NAS.'], + 'type' => 'string', 'required' => false, - 'minimum' => '1', - 'example' => '1', + 'default' => 'standard', + 'enum' => ['standard', 'extreme'], + 'example' => 'standard', + 'title' => '', ], ], ], @@ -3318,75 +1671,50 @@ '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', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '55C5FFD6-BF99-41BD-9C66-FFF39189F4F8', 'title' => ''], + 'AccessGroupName' => ['description' => 'The name of the permission group.', 'type' => 'string', 'example' => 'vpc-test', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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", + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"55C5FFD6-BF99-41BD-9C66-FFF39189F4F8\\",\\n \\"AccessGroupName\\": \\"vpc-test\\"\\n}","type":"json"}]', + 'title' => 'Create a permission group', + 'description' => '- You can create up to 20 permission groups in a single region within an Alibaba Cloud account.'."\n" + .'- A permission group supports up to 300 rules.'."\n" + .'- Only permission groups of the VPC network type can be created.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:04.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateAccessGroup'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateAccessGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], + ], + ], + ], + ], ], 'CreateAccessPoint' => [ 'summary' => 'Creates an access point.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3399,9 +1727,7 @@ 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeCode' => '189584', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', - ], + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], @@ -3409,826 +1735,1147 @@ [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '31a8e4****', - ], + 'schema' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '31a8e4****', 'title' => ''], + ], + [ + 'name' => 'AgenticSpaceId', + 'in' => 'query', + 'schema' => ['description' => 'The AgenticSpace ID.'."\n" + .'>This parameter is required for Agentic file systems.', 'type' => 'string', 'required' => false, 'example' => 'agentic-229oypxjgpau2****', 'title' => ''], ], [ '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', - ], + 'schema' => ['description' => 'The name of the permission group.'."\n" + ."\n" + .'This parameter is required if the file system is a General-purpose NAS file system.'."\n" + ."\n" + .'Default permission group: DEFAULT_VPC_GROUP_NAME (the default permission group for VPCs).'."\n" + .'>Not supported for Agentic file systems.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'DEFAULT_VPC_GROUP_NAME', 'title' => ''], ], [ 'name' => 'VswId', 'in' => 'query', - 'schema' => [ - 'description' => 'The vSwitch ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vsw-2zevmwkwyztjuoffg****', - ], + 'schema' => ['description' => 'The vSwitch ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vsw-2zevmwkwyztjuoffg****', 'title' => ''], ], [ 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The VPC ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-2zesj9afh3y518k9o****', - ], + 'schema' => ['description' => 'The virtual private cloud (VPC) ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-2zesj9afh3y518k9o****', 'title' => ''], ], [ 'name' => 'AccessPointName', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the access point.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The name of the access point.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], [ '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' => '/', - ], + 'schema' => ['description' => 'The root directory of the access point.'."\n" + .'Default value: "/". If the access point directory does not exist, you must also specify the OwnerUserId and OwnerGroupId parameters.'."\n" + .'>Supported only for Agentic file systems.', 'type' => 'string', 'pattern' => '^(/|(/\\.{3,}|/\\.*[-\\w]+[-.\\w]*)+/?)$', 'default' => '/', 'required' => false, 'example' => '/', 'title' => ''], ], [ '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', - ], + 'schema' => ['description' => 'Specifies whether to enable access point policy.'."\n" + .'Valid values:'."\n" + ."\n" + .'- true: enabled.'."\n" + .'- false (default): not enabled.'."\n" + ."\n" + .'> After you enable access point policy for the access point, all Resource Access Management (RAM) users are denied access to mount and access data through the access point by default. You must grant the corresponding access permissions through authorization and then mount and access the file system through the access point. After you disable access point policy, the access point allows anonymity mounting. For more information about how to configure access point permissions, see [Configure access point policies](~~2545998~~).'."\n" + ."\n" + .'>For Agentic file systems, this parameter must be set to true.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], ], [ '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', - ], + 'schema' => ['description' => 'The owner user ID.'."\n" + ."\n" + .'This parameter is required if the RootDirectory directory does not exist.'."\n" + .'>Not supported for Agentic file systems.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ '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', - ], + 'schema' => ['description' => 'The owner group ID.'."\n" + ."\n" + .'This parameter is required if the RootDirectory directory does not exist.'."\n" + .'>Not supported for Agentic file systems.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ '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', - ], + 'schema' => ['description' => 'The POSIX permission. Default value: "0755". The value must be a four-digit octal number that starts with 0.'."\n" + ."\n" + .'This parameter takes effect only after you specify the OwnerUserId and OwnerGroupId parameters.'."\n" + .'>Not supported for Agentic file systems.', 'type' => 'string', 'required' => false, 'example' => '0755', 'title' => ''], ], [ 'name' => 'PosixUserId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the POSIX user.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '123', - ], + 'schema' => ['description' => 'The POSIX user ID.'."\n" + .'>Not supported for Agentic file systems.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '123', 'title' => ''], ], [ 'name' => 'PosixGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the POSIX user group.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '123', - ], + 'schema' => ['description' => 'The POSIX group ID.'."\n" + .'>Not supported for Agentic file systems.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '123', 'title' => ''], ], [ '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', - ], + 'schema' => ['description' => 'The secondary group IDs. Separate multiple group IDs with commas (,).'."\n" + .'>Not supported for Agentic file systems.', 'type' => 'string', 'required' => false, 'example' => '123,345', 'title' => ''], ], [ 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'title' => '接入点标签列表', - 'description' => 'The tags of the access point.'."\n", + 'title' => '', + 'description' => 'The list of access point tags.', 'type' => 'array', 'items' => [ - 'title' => '接入点标签列表', - 'description' => 'The tags of the access point.'."\n", + 'title' => '', + 'description' => 'The list of access point tags.', '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', - ], + 'Key' => ['title' => '', 'description' => 'The tag key.'."\n" + .'Limits:'."\n" + ."\n" + .'- Cannot be empty 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://.', 'type' => 'string', 'example' => 'TestKey', 'required' => false], + 'Value' => ['title' => '', 'description' => 'The tag value.'."\n" + .'Limits:'."\n" + ."\n" + .'- Cannot be empty or an empty string.'."\n" + .'- Can be up to 128 characters in length.'."\n" + .'- Cannot contain http:// or https://.', 'type' => 'string', 'example' => 'TestValue', 'required' => false], ], 'required' => false, + 'example' => '', ], 'required' => false, 'maxItems' => 21, + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'title' => '', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****'."\n", - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****'."\n"], 'AccessPoint' => [ - 'description' => 'The access point.'."\n", + 'description' => 'The access point.', '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****', - ], + 'AccessPointDomain' => ['description' => 'The domain name of the access point.', 'type' => 'string', 'example' => 'ap-ie15ydanoz.001014****-w****.cn-hangzhou.nas.aliyuncs.com', 'title' => ''], + 'AccessPointId' => ['description' => 'The access point ID.', 'type' => 'string', 'example' => 'ap-ie15yd****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidRequest', - 'errorMessage' => 'The request is invalid.', - ], + ['errorCode' => 'InvalidRequest', 'errorMessage' => 'The request is invalid.', 'description' => 'Invalid request'], ], 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' => 'InvalidProtocolType.NotSupported', 'errorMessage' => 'The specified protocol type does not supported.', 'description' => ''], + ['errorCode' => 'InvalidRamRole.NotExist', 'errorMessage' => 'The specified RAM role does not exist.', 'description' => 'The specified RAM role does not exist.'], + ['errorCode' => 'InvalidRamRole.NoPermission', 'errorMessage' => 'The specified RAM role does not have sufficient permission.', 'description' => 'The specified RAM role does not have sufficient permission.'], + ['errorCode' => 'OperationDenied.AccessPointCountsExceeded', 'errorMessage' => 'The maxium number of access point has reached its limits.', 'description' => 'The access point of the current file system has reached the upper limit.'], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidAccessGroup.NotFound', 'errorMessage' => 'The specified AccessGroup does not exist.', 'description' => 'The permission group that you specified does not exist or has been deleted.'], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidVpc.NotFound', 'errorMessage' => 'The specified Vpc is not found.', 'description' => 'The specified VPC does not exist. Create a VPC first.'], + ['errorCode' => 'InvalidVswitch.NotFound', 'errorMessage' => 'The specified VSwitch does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], + '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', + 'title' => 'Create an access point', + 'description' => '- When you invoke the CreateAccessPoint operation to create an access point, some resources are generated asynchronously. After the CreateAccessPoint operation succeeds, execute the [DescribeAccessPoints](~~2712239~~) or [DescribeAccessPoint](~~2712240~~) operation to query the access point status. Mount the file system only after the access point status becomes **Active**. Otherwise, the mount operation may fail.'."\n" + .'- Only General-purpose NAS NFS file systems support this feature.'."\n" + .'- If you enable the RAM policy (EnabledRam), configure the corresponding RAM permissions. For more information, see [Manage access points](~~2545998~~).', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateAccessPoint'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateAccessPoint', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateAccessRule' => [ + 'summary' => 'Creates a permission rule for a permission group.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'high', 'chargeType' => 'free', - 'abilityTreeCode' => '189621', - 'abilityTreeNodes' => [ - 'FEATUREnas5IJRRZ', - ], + 'abilityTreeCode' => '13928', + 'abilityTreeNodes' => ['FEATUREnas2SBOJD'], 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'AccessGroupName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '1ca404****', - ], + 'schema' => ['description' => 'The name of the permission group.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-test', 'title' => ''], ], [ - 'name' => 'AccessPointId', + 'name' => 'SourceCidrIp', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the access point.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-ie15yd****', - ], + 'schema' => ['description' => 'The IP address or CIDR block of the authorized address.'."\n" + ."\n" + .'The value must be a single IP address or a CIDR block.'."\n" + .'> Permission groups of the classic network type support only IP addresses.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '192.0.2.0/16', 'title' => ''], ], [ - 'name' => 'AccessPointName', + 'name' => 'RWAccessType', 'in' => 'query', 'schema' => [ - 'description' => 'The name of the access point.'."\n", + 'description' => 'The read and write permissions of the authorized address on the file system.'."\n" + ."\n" + .'Valid values:'."\n" + .'- RDWR (default): read and write.'."\n" + .'- RDONLY: read-only.', + 'enumValueTitles' => ['RDWR' => 'read and write.', 'RDONLY' => 'read and write.'], 'type' => 'string', 'required' => false, - 'example' => 'test', + 'default' => 'RDWR', + 'enum' => ['RDWR', 'RDONLY'], + 'example' => 'RDWR', + 'title' => '', ], ], [ - 'name' => 'AccessGroup', + 'name' => 'UserAccessType', 'in' => 'query', 'schema' => [ - 'description' => 'The name of the permission group.'."\n" + 'description' => 'The access permissions of the system user of the authorized address on the file system.'."\n" ."\n" - .'This parameter is required for a General-purpose File Storage NAS (NAS) file system.'."\n" + .'Valid values:'."\n" + .'- no_squash (default): allows access to the file system as the root user.'."\n" + .'- root_squash: maps the root user to the nobody user when the root user accesses the file system.'."\n" + .'- all_squash: maps all users to the nobody user regardless of the user identity.'."\n" ."\n" - .'The default permission group for virtual private clouds (VPCs) is named DEFAULT_VPC_GROUP_NAME.', + .'The nobody user is a default user in Linux. The nobody user can access only public content on the server and has low privileges and high security. Authorization is required for the system user to access the file system.', + 'enumValueTitles' => ['all_squash' => 'Maps all users to the nobody user regardless of the user identity.', 'no_squash' => 'Default value. Allows access to the file system as the root user.', 'root_squash' => 'Maps the root user to the nobody user when the root user accesses the file system.'], 'type' => 'string', 'required' => false, - 'example' => 'DEFAULT_VPC_GROUP_NAME', + 'default' => 'no_squash', + 'enum' => ['no_squash', 'root_squash', 'all_squash'], + 'example' => 'no_squash', + 'title' => '', ], ], [ - 'name' => 'EnabledRam', + 'name' => 'Priority', + 'in' => 'query', + 'schema' => ['description' => 'The priority of the permission rule.'."\n" + ."\n" + .'If an authorized address matches multiple rules, the rule with the highest priority takes effect.'."\n" + ."\n" + .'Valid values: 1 to 100. The value 1 indicates the highest priority.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'FileSystemType', 'in' => 'query', 'schema' => [ - 'description' => 'Specifies whether to enable the Resource Access Management (RAM) policy. Valid values:'."\n" + 'description' => 'The type of the file system.'."\n" ."\n" - .'* true: The RAM policy is enabled.'."\n" - .'* false (default): The RAM policy is disabled.'."\n" + .'Valid values:'."\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', + .'- standard (default): General-purpose NAS.'."\n" + .'- extreme: Extreme NAS.', + 'enumValueTitles' => ['standard' => 'General-purpose NAS.', 'extreme' => 'Extreme NAS.'], + 'type' => 'string', 'required' => false, - 'example' => 'false', + 'default' => 'standard', + 'enum' => ['standard', 'extreme'], + 'example' => 'standard', + 'title' => '', ], ], + [ + 'name' => 'Ipv6SourceCidrIp', + 'in' => 'query', + 'schema' => ['description' => 'The source IPv6 CIDR block.'."\n" + ."\n" + .'The value supports CIDR format and IPv6 format address range.'."\n" + ."\n" + .'> - The IPv6 feature is supported only by Extreme NAS file systems in regions in the Chinese mainland, and IPv6 must be enabled for the file system.'."\n" + .'>- Only VPC networks are supported.'."\n" + .'>- IPv4 and IPv6 are mutually exclusive.', 'type' => 'string', 'required' => false, 'example' => '2001:250:6000::***', 'title' => ''], + ], ], '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", - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'A323836B-5BC6-45A6-8048-60675C23****', 'title' => ''], + 'AccessRuleId' => ['description' => 'The ID of the permission rule.', 'type' => 'string', 'example' => '1', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'InvalidAccessPointId.NotFound', - 'errorMessage' => 'The access point id does not exist.', + 400 => [ + ['errorCode' => 'InvalidParam.Ipv6SourceCidrIp', 'errorMessage' => 'IPv6 address verification failed.', 'description' => 'IPv6 address verification failed.'], + ['errorCode' => 'InvalidParam.SourceCidrIp', 'errorMessage' => 'IPv4 address verification failed.', 'description' => 'IPv4 address verification failed.'], + ['errorCode' => 'InvalidParam.IPv4AndIPv6MutuallyExclusive', 'errorMessage' => 'You cannot configure IPv4 and IPv6 at the same time.', 'description' => 'You cannot configure IPv4 and IPv6 at the same time.'], + ['errorCode' => 'InvalidAccessGroup.NotsupportedIPv6', 'errorMessage' => 'The access group does not support IPv6.', 'description' => 'The access group does not support IPv6.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A323836B-5BC6-45A6-8048-60675C23****\\",\\n \\"AccessRuleId\\": \\"1\\"\\n}","type":"json"}]', + 'title' => 'Create a permission rule', + 'description' => 'A maximum of 300 rules can be added to a permission group.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-08-08T02:49:13.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateAccessRule'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateAccessRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], + ], ], - [ - 'errorCode' => 'InvalidAccessGroup.NotFound', - 'errorMessage' => 'The specified AccessGroup does not exist.', + ], + ], + ], + 'CreateAgenticSpace' => [ + 'summary' => 'Creates an Agentic space.', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '55589', + 'abilityTreeNodes' => ['FEATUREnasXEQXVN'], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '31a8e4****', 'title' => ''], + ], + [ + 'name' => 'Azone', + 'in' => 'query', + 'schema' => ['description' => 'The zone ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou-i', 'title' => ''], + ], + [ + 'name' => 'FileSystemPath', + 'in' => 'query', + 'schema' => ['description' => 'The absolute path of the file. Only first-level directories are supported.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '/path/', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The description of the AgenticSpace.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'- The description must be 2 to 128 characters in length.'."\n" + .'- The description must start with a letter or a Chinese character and cannot start with `http://` or `https://`.'."\n" + .'- The description can contain digits, colons (:), underscores (_), or hyphens (-).', 'type' => 'string', 'required' => false, 'example' => 'AgenticSpace Description', 'title' => ''], + ], + [ + 'name' => 'Quota', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The quota information.', + 'type' => 'object', + 'properties' => [ + 'FileCountLimit' => ['description' => 'The maximum number of files allowed by the quota. Valid values:'."\n" + ."\n" + .'- Minimum value: 10000.'."\n" + ."\n" + .'- Maximum value: 100000000.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '10000', 'title' => ''], + 'SizeLimit' => ['description' => 'The total capacity limit of the quota. Unit: bytes.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- Minimum value: 10737418240 (10 GiB).'."\n" + .'- Maximum value: 1099511627776000 (1024000 GiB).'."\n" + .'- Increment: 1073741824 (1 GiB).', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '10737418240', 'title' => ''], + ], + 'required' => true, + 'title' => '', + 'example' => '', ], - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run for this request. A dry run checks parameter validity and dependencies without actually modifying the instance or incurring fees.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: sends a dry run request without modifying the protocol service. The system checks whether required parameters are specified, whether the request format is valid, and whether business limit dependencies are met. If the check fails, the corresponding error is returned. If the check succeeds, HTTP status code 200 is returned.'."\n" + .'- false (default): sends a normal request. After the check is passed, the protocol service is directly modified.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + '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 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 RequestId of the API request as the ClientToken. The RequestId may differ for each API request.', 'type' => 'string', 'maxLength' => 64, 'minLength' => 1, 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], + 'AgenticSpaceId' => ['description' => 'The AgenticSpace ID. This is a globally unique identifier assigned by the system after the AgenticSpace (an independent workspace allocated to a single Agent end user in AgenticFS) is created.', 'type' => 'string', 'example' => 'agentic-229oypxjgpau2****', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => 'The FileSystemId parameter is not specified.'], + ['errorCode' => 'MissingFileSystemPath', 'errorMessage' => 'FileSystemPath is mandatory for this action.', 'description' => 'The FileSystemPath parameter is missing.'], + ['errorCode' => 'InvalidFilesystemType.NotSupport', 'errorMessage' => 'This Api does not support this fileSystem type.', 'description' => 'The current interface does not support this type of file system.'], + ['errorCode' => 'InvalidFilesystemVersion.NotSupport', 'errorMessage' => 'This Api does not support this fileSystem version.', 'description' => 'This Api does not support this fileSystem version.'], + ['errorCode' => 'InvalidRequest', 'errorMessage' => 'The request is invalid.', 'description' => 'Invalid request'], + ['errorCode' => 'Quota.Invalid.Limit', 'errorMessage' => 'Quota limit is invalid.', 'description' => 'Invalid quota.'], + ['errorCode' => 'Resource.Exceed.Limit', 'errorMessage' => 'Resource exceed limit.', 'description' => 'The number of resources exceeds the limit.'], + ['errorCode' => 'Resource.Check.Fail', 'errorMessage' => 'Resource check failed.', 'description' => 'Resource verification failed.'], + ['errorCode' => 'Fileset.Path.Duplicate', 'errorMessage' => 'Fileset path is duplicate.', 'description' => 'Fileset path is duplicate.'], + ['errorCode' => 'Fileset.Path.Nested', 'errorMessage' => 'Fileset path is nested.', 'description' => 'Fileset path is nested.'], + ['errorCode' => 'Fileset.Path.NotExist', 'errorMessage' => 'Fileset.Path.Not.Exist.', 'description' => 'Fileset parent directory path does not exist.'], + ['errorCode' => 'Fileset.Path.Exist', 'errorMessage' => 'Fileset already exist.', 'description' => 'Fileset path already exists.'], + ], + 403 => [ + ['errorCode' => 'OperationDenied.AlreadyExists', 'errorMessage' => 'The operation is denied due to IdirName already exists in parent path.', 'description' => 'The directory name already exists in the parent directory.'], + ['errorCode' => 'OperationDenied.TooManyFilesets', 'errorMessage' => 'The operation is denied due to too many fileset in filesystem.', 'description' => 'The number of fileset directories in the file system exceeds the threshold.'], + ['errorCode' => 'OperationDenied.TooManyDepths', 'errorMessage' => 'The operation is denied due to Fileset path too deep.', 'description' => 'The fileset directory path depth exceeds the threshold.'], + ['errorCode' => 'OperationDenied.NestedDir', 'errorMessage' => 'The operation is denied due to nested directory.', 'description' => 'The automatic update configuration cannot be created because nested directories exist.'], + ['errorCode' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => 'The conditions for this operation are not met.'], + ['errorCode' => 'OperationDenied.FilesetNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => 'The file system does not support Fileset.'], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidFileSystemPath.ParentNotFound', 'errorMessage' => 'The specified parent path does not exist.', 'description' => 'The specified parent directory does not exist.'], + ['errorCode' => 'InvalidFileSystemPath.NotDirectory', 'errorMessage' => 'The specified idir parent path is not directory.', 'description' => 'The specified parent directory is not a directory.'], + ['errorCode' => 'InvalidFileSystemPath.InvalidCharacters', 'errorMessage' => 'The specified fileset path contains invalid characters.', 'description' => 'The specified file system path contains invalid characters.'], + ['errorCode' => 'InvalidFilesetPath.InvalidParameter', 'errorMessage' => 'Fileset path is invalid.', 'description' => 'The specified fileset path is invalid.'], + ], ], - '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', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'http', - 'https', + 'gatewayOptions' => [ + 'gatewayProtocols' => [], ], + 'title' => 'Create an agentic space', + 'description' => 'Applicable to agentic-type file systems.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"AgenticSpaceId\\": \\"agentic-229oypxjgpau2****\\"\\n}","type":"json"}]', + ], + 'CreateAutoSnapshotPolicy' => [ + 'summary' => 'Creates an automatic snapshot policy.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '189598', - 'abilityTreeNodes' => [ - 'FEATUREnas0MLWQI', - 'FEATUREnas3DACY7', - 'FEATUREnas71NBOZ', - 'FEATUREnas5IJRRZ', - ], + 'abilityTreeCode' => '13929', + 'abilityTreeNodes' => ['FEATUREnas5QOAQE'], 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'RepeatWeekdays', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '174494****', - ], + 'schema' => ['description' => 'The days of the week on which automatic snapshots are created.'."\n" + ."\n" + .'Cycle: week.'."\n" + ."\n" + .'Valid values: 1 to 7, which represent Monday through Sunday.'."\n" + ."\n" + .'To create automatic snapshots on multiple days in a week, specify multiple values separated by commas (,). You can specify a maximum of 7 values.', 'type' => 'string', 'required' => true, 'example' => '1,2,3', 'title' => ''], ], [ - 'name' => 'AccessGroup', + 'name' => 'TimePoints', + 'in' => 'query', + 'schema' => ['description' => 'The time points at which automatic snapshots are created.'."\n" + ."\n" + .'Unit: hours.'."\n" + ."\n" + .'Valid values: 0 to 23, which represent the 24 time points from 00:00 to 23:00. For example, 1 indicates 01:00.'."\n" + ."\n" + .'To create multiple automatic snapshots within a day, specify multiple time points separated by commas (,). You can specify a maximum of 24 time points.', 'type' => 'string', 'required' => true, 'example' => '0,1,…,23', 'title' => ''], + ], + [ + 'name' => 'RetentionDays', + 'in' => 'query', + 'schema' => ['description' => 'The retention period of automatic snapshots.'."\n" + ."\n" + .'Unit: days.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- -1 (default): Automatic snapshots are permanently retained. When the snapshot quota is reached, the earliest automatic snapshots are automatically deleted.'."\n" + .'- 1 to 65536: Automatic snapshots are retained for the specified number of days. Snapshots are subject to automatic release after the retention period expires.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '65536', 'minimum' => '-1', 'default' => '-1', 'example' => '30', 'title' => ''], + ], + [ + '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 or a Chinese character.'."\n" + .'- The name can contain digits, colons (:), underscores (_), or hyphens (-). It cannot start with `http://` or `https://`.'."\n" + .'- Default value: empty.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + [ + 'name' => 'FileSystemType', 'in' => 'query', 'schema' => [ - 'description' => 'The name of the permission group.'."\n" - ."\n" - .'This parameter is required for a General-purpose NAS file system.'."\n" + 'description' => 'The type of the file system.'."\n" ."\n" - .'The default permission group for virtual private clouds (VPCs) is named DEFAULT_VPC_GROUP_NAME.'."\n", + .'Valid values: extreme (Extreme NAS).', + 'enumValueTitles' => ['extreme' => 'Extreme NAS.'], 'type' => 'string', - 'required' => false, - 'example' => 'DEFAULT_VPC_GROUP_NAME', + 'required' => true, + 'enum' => ['extreme'], + 'example' => 'extreme', + 'title' => '', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', 'title' => ''], + 'AutoSnapshotPolicyId' => ['description' => 'The ID of the automatic snapshot policy.', 'type' => 'string', 'example' => 'sp-extreme-233e6****', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\",\\n \\"AutoSnapshotPolicyId\\": \\"sp-extreme-233e6****\\"\\n}","type":"json"}]', + 'title' => 'Create an automatic snapshot policy', + 'description' => '<props="china">.'."\n" + ."\n" + .'- This feature is in free public preview. During the public preview, the [File Storage NAS Service-Level Agreement (SLA)](https://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud201803061139_99860.html?spm=a2c4g.11186623.0.0.5c895ff2YPLrwe) is not guaranteed.'."\n" + .'- Only Advanced Extreme NAS supports this feature.'."\n" + .'- You can create a maximum of 100 automatic snapshot policies per Alibaba Cloud account in each region.'."\n" + .'- If a file system contains a large amount of data and the time required to create an automatic snapshot exceeds the interval between two scheduled time points, the next time point is automatically skipped. For example, you set 09:00, 10:00, 11:00, and 12:00 as automatic snapshot time points. Because the file system contains a large amount of data, snapshot creation starts at 09:00 and completes at 10:20, taking 80 minutes. The system skips the 10:00 time point and creates the next automatic snapshot at 11:00.'."\n" + .'- Each file system supports a maximum of 128 automatic snapshots. After the snapshot quota is reached, the system automatically deletes the earliest automatic snapshots. Manual snapshots are not affected.'."\n" + .'- When you modify the retention period of an automatic snapshot policy, the change takes effect only for new snapshots. Existing snapshots retain their original retention period.'."\n" + .'- If an automatic snapshot is being created for a file system, you must wait until the automatic snapshot is complete before you can manually create a snapshot.'."\n" + .'- Automatic snapshot policies cannot be executed on file systems that are not in the Normal state.'."\n" + .'- Automatic snapshots follow a unified naming format: `auto_yyyyMMdd_X`. In this format, `auto` indicates an automatic snapshot, distinguishing it from manual snapshots. `yyyyMMdd` indicates the date when the snapshot is created, where `y` represents the year, `M` represents the month, and `d` represents the day. `X` indicates the sequence number of the automatic snapshot created on that day. For example, `auto_20201018_1` indicates the first automatic snapshot created on October 18, 2020.'."\n" + .'- A created automatic snapshot policy can be applied to any file system by calling ApplyAutoSnapshotPolicy, and the policy content can be modified by calling ModifyAutoSnapshotPolicy.'."\n" + ."\n" + .'</props>.'."\n" + ."\n" + .'<props="intl">.'."\n" + ."\n" + .'- This feature is in free public preview. During the public preview, the [File Storage NAS Service-Level Agreement (SLA)](https://www.alibabacloud.com/help/legal/latest/network-attached-storage-service-level-agreement) is not guaranteed.'."\n" + .'- Only Advanced Extreme NAS supports this feature.'."\n" + .'- You can create a maximum of 100 automatic snapshot policies per Alibaba Cloud account in each region.'."\n" + .'- If a file system contains a large amount of data and the time required to create an automatic snapshot exceeds the interval between two scheduled time points, the next time point is automatically skipped. For example, you set 09:00, 10:00, 11:00, and 12:00 as automatic snapshot time points. Because the file system contains a large amount of data, snapshot creation starts at 09:00 and completes at 10:20, taking 80 minutes. The system skips the 10:00 time point and creates the next automatic snapshot at 11:00.'."\n" + .'- Each file system supports a maximum of 128 automatic snapshots. After the snapshot quota is reached, the system automatically deletes the earliest automatic snapshots. Manual snapshots are not affected.'."\n" + .'- When you modify the retention period of an automatic snapshot policy, the change takes effect only for new snapshots. Existing snapshots retain their original retention period.'."\n" + .'- If an automatic snapshot is being created for a file system, you must wait until the automatic snapshot is complete before you can manually create a snapshot.'."\n" + .'- Automatic snapshot policies cannot be executed on file systems that are not in the Normal state.'."\n" + .'- Automatic snapshots follow a unified naming format: `auto_yyyyMMdd_X`. In this format, `auto` indicates an automatic snapshot, distinguishing it from manual snapshots. `yyyyMMdd` indicates the date when the snapshot is created, where `y` represents the year, `M` represents the month, and `d` represents the day. `X` indicates the sequence number of the automatic snapshot created on that day. For example, `auto_20201018_1` indicates the first automatic snapshot created on October 18, 2020.'."\n" + .'- A created automatic snapshot policy can be applied to any file system by calling ApplyAutoSnapshotPolicy, and the policy content can be modified by calling ModifyAutoSnapshotPolicy.'."\n" + ."\n" + .'</props>.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:04.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateAutoSnapshotPolicy'], + ], + ], + 'ramActions' => [ [ - 'name' => 'MaxResults', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateAutoSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + ], + 'CreateDataFlow' => [ + 'summary' => 'Creates a data flow between a CPFS General-purpose or CPFS for Lingjun 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 file system ID.'."\n" + ."\n" + .'- CPFS General-purpose: must start with `cpfs-`, such as cpfs-125487\\*\\*\\*\\*.'."\n" + ."\n" + .'- CPFS for Lingjun: must start with `bmcpfs-`, such as bmcpfs-0015\\*\\*\\*\\*.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cpfs-099394bd928c****', 'title' => ''], + ], + [ + 'name' => 'FsetId', + 'in' => 'query', + 'schema' => ['description' => 'The Fileset ID.'."\n" + .'> This parameter is required when the file system type is CPFS General-purpose.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'fset-1902718ea0ae****', 'title' => ''], + ], + [ + 'name' => 'SourceStorage', + 'in' => 'query', + 'schema' => ['description' => 'The access address of the source storage. Format: `<storage type>://[<account id>:]<path>`.'."\n" + ."\n" + .'Where:'."\n" + ."\n" + .'- storage type: only oss is supported.'."\n" + .'- account id: optional. The UID of the account that owns the source storage. This parameter is required when you use cross-account OSS.'."\n" + .'- path: the name of the OSS bucket. Limits:'."\n" + ."\n" + .' - Only lowercase letters, digits, and hyphens (-) are supported. The name must start and end with a lowercase letter or digit.'."\n" + ."\n" + .' - The maximum length is 128 characters.'."\n" + ."\n" + .' - UTF-8 encoding is used.'."\n" + ."\n" + .'> - The OSS bucket must be an existing bucket in the region.'."\n" + .'> - The account id parameter is supported only by CPFS for Lingjun 2.6.0 and later.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'maxLength' => 128, 'example' => 'oss://178321033379****:bucket-01', 'title' => ''], + ], + [ + 'name' => 'SourceSecurityType', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The security protection type of the source storage. If the source storage must be accessed through security protection, specify the security protection type. Valid values:'."\n" + ."\n" + .'- None (default): The source storage does not require security protection for access.'."\n" + .'- SSL: Access is protected by an SSL certificate.', 'type' => 'string', 'required' => false, 'example' => 'SSL', 'title' => ''], + ], + [ + 'name' => 'Throughput', 'in' => 'query', 'schema' => [ - 'description' => 'The number of results for each query.'."\n" + 'description' => 'The maximum transfer bandwidth of the data flow. Unit: MB/s. Valid values: '."\n" ."\n" - .'Valid values: 10 to 100. Default value: 10.'."\n", + .'- 600'."\n" + .'- 1200'."\n" + .'- 1500'."\n" + ."\n" + .'> The transfer bandwidth of the data flow must be less than the I/O bandwidth of the file system.'."\n" + .'> This parameter is required when the file system type is CPFS General-purpose.', + 'enumValueTitles' => [600 => '600MB/s ', 1200 => '1200MB/s ', 1500 => '1500MB/s ', 2000 => '2000MB/s '], 'type' => 'integer', - 'format' => 'int32', + 'format' => 'int64', 'required' => false, - 'minimum' => '1', - 'example' => '10', + 'docRequired' => false, + 'enum' => ['600', '1200', '1500', '2000'], + 'example' => '600', + 'title' => '', ], ], [ - 'name' => 'Tag', + 'name' => 'Description', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => 'The description of the data flow.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'- The description must be 2 to 128 characters in length.'."\n" + .'- The description must start with a letter.'."\n" + .'- The description cannot start with `http://` or `https://`.'."\n" + .'- The description can contain digits, colons (:), underscores (_), and hyphens (-).', 'type' => 'string', 'required' => false, 'example' => 'Bucket01 DataFlow', 'title' => ''], + ], + [ + 'name' => 'AutoRefreshs', 'in' => 'query', + 'allowEmptyValue' => false, 'style' => 'repeatList', 'schema' => [ - 'title' => '接入点标签列表', - 'description' => 'The tags of the access point.'."\n", + 'description' => 'The auto-refresh configuration collection.'."\n" + .'> This parameter takes effect only when the file system type is CPFS General-purpose.', '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', - ], + 'RefreshPath' => ['description' => 'The auto-refresh directory. CPFS General-purpose registers data modification events from the source storage and checks whether the source data in this directory has been updated, then automatically imports the updated data.'."\n" + ."\n" + .'The default value is empty, which means that data updates in the source storage are not automatically imported to CPFS General-purpose. You must manually create a task to import updates.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'- The path must be 2 to 1024 characters in length.'."\n" + .'- UTF-8 encoding is used.'."\n" + .'- The path must start and end with a forward slash (/).'."\n" + .'- The directory must be an existing directory in the CPFS General-purpose file system and must be located within the Fileset directory of the data flow.', 'type' => 'string', 'maxLength' => 1024, 'minLength' => 2, 'required' => false, 'example' => '/prefix1/prefix2/', 'title' => ''], ], 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 21, + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'NextToken', + 'name' => 'AutoRefreshPolicy', '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", + 'description' => 'The auto-refresh policy. Specifies the policy for importing data updates from the source storage to CPFS General-purpose after the source data is updated. Valid values:'."\n" + ."\n" + .'- None (default): Data updates in the source storage are not automatically imported to CPFS General-purpose. You can import data updates from the source storage by using a data flow task.'."\n" + .'- ImportChanged: Data updates in the source storage are automatically imported to CPFS General-purpose.'."\n" + .'> This parameter takes effect only when the file system type is CPFS General-purpose.', + 'enumValueTitles' => ['ImportChanged' => 'Data updates in the source storage are automatically imported to CPFS General-purpose.', 'None' => 'Data updates in the source storage are not automatically imported to CPFS General-purpose.'], 'type' => 'string', + 'default' => 'None', + 'enum' => ['None', 'ImportChanged'], 'required' => false, - 'example' => 'MTY4NzcxOTcwMjAzMDk2Nzc0MyM4MDM4****', + 'example' => 'None', + 'title' => '', ], ], + [ + 'name' => 'AutoRefreshInterval', + 'in' => 'query', + 'schema' => ['description' => 'The auto-refresh interval. CPFS General-purpose checks the directory for data updates at this interval. If data updates exist, an auto-refresh task is started. Unit: minutes.'."\n" + ."\n" + .'Valid values: 10 to 525600. Default value: 10.'."\n" + .'> This parameter takes effect only when the file system type is CPFS General-purpose.', 'type' => 'integer', 'format' => 'int64', 'maximum' => '525600', 'minimum' => '5', 'default' => '10', 'required' => false, 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run for this create request.'."\n" + ."\n" + .'A dry run checks parameter validity and resource availability without actually creating the instance or incurring charges.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: Sends a dry run request without creating the instance. The check items include required parameters, request format, business limits, and NAS inventory. If the check fails, the corresponding error is returned. If the check succeeds, HTTP status code 200 is returned, but FileSystemId is empty.'."\n" + .'- false (default): Sends a normal request and creates the instance after the check is passed.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'Ensures the idempotence of the request. Generate a parameter value from your client to ensure that the value is unique across different requests.'."\n" + ."\n" + .'ClientToken supports 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 RequestId of the API request as the ClientToken. The RequestId may differ for each API request.', 'type' => 'string', 'maxLength' => 64, 'minLength' => 1, 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], + ], + [ + 'name' => 'SourceStoragePath', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The access path within the source storage bucket. Limits:'."\n" + ."\n" + .' - The path must start and end with a forward slash (/).'."\n" + ."\n" + .'- The path is case-sensitive.'."\n" + ."\n" + .'- The path must be 1 to 1023 characters in length.'."\n" + ."\n" + .'- UTF-8 encoding is used.'."\n" + ."\n" + .'> This parameter is required when the file system type is CPFS for Lingjun.', 'type' => 'string', 'docRequired' => false, 'example' => '/prefix/', 'maxLength' => 1023, 'minLength' => 1, 'required' => false], + ], + [ + 'name' => 'FileSystemPath', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The directory in the CPFS for Lingjun file system. Limits:'."\n" + .'- The path must start and end with a forward slash (/).'."\n" + ."\n" + .'- The directory must be an existing directory in the CPFS for Lingjun file system.'."\n" + ."\n" + .'- The path must be 1 to 1023 characters in length.'."\n" + ."\n" + .'- UTF-8 encoding is used.'."\n" + ."\n" + .'> This parameter is required when the file system type is CPFS for Lingjun.', 'type' => 'string', 'example' => '/path/', 'maxLength' => 1023, 'minLength' => 1, 'required' => false], + ], ], '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', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0D****3E', 'title' => ''], + 'DataFlowId' => ['description' => 'The data flow ID.', 'type' => 'string', 'example' => 'df-194433a5be31****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidFilesystemType.NotSupport', - 'errorMessage' => 'The API operation does not support the file system type.', - ], + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFsetId', 'errorMessage' => 'FsetId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingSourceStorage', 'errorMessage' => 'SourceStorage is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingThroughput', 'errorMessage' => 'Throughput is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidFilesystemVersion.NotSupport', 'errorMessage' => 'This Api does not support this fileSystem version.', 'description' => 'This Api does not support this fileSystem version.'], + ['errorCode' => 'DataFlow.Bucket.RegionUnmatched', 'errorMessage' => 'The bucket and file system are not in the same region.', 'description' => 'The bucket is inconsistent with the filesystem region.'], ], 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.', + ['errorCode' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => ''], + ['errorCode' => 'OperationDenied.NoStock', 'errorMessage' => 'The operation is denied due to no stock.', 'description' => ''], + ['errorCode' => 'OperationDenied.DependFset', 'errorMessage' => 'The operation is denied due to invalid fileset state.', 'description' => ''], + ['errorCode' => 'OperationDenied.ConflictOperation', 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', 'description' => ''], + ['errorCode' => 'OperationDenied.DependMountpoint', 'errorMessage' => 'The operation is denied because no mount point is found.', 'description' => ''], + ['errorCode' => 'OperationDenied.FsetAlreadyInUse', 'errorMessage' => 'The Fset is already bound to another data flow.', 'description' => ''], + ['errorCode' => 'OperationDenied.AutoRefreshNotSupport', 'errorMessage' => 'The operation is denied. Auto refresh is not supported.', 'description' => ''], + ['errorCode' => 'OperationDenied.DependBucketTag', 'errorMessage' => 'The operation is denied. The OSS Bucket tag cpfs-dataflow is missing.', 'description' => ''], + ['errorCode' => 'OperationDenied.DataFlowNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], + ['errorCode' => 'InvalidOperation.DeletionProtection', 'errorMessage' => 'The operation is not allowed due to resource is protected by deletion protection.', 'description' => ''], + ['errorCode' => 'DataFlow.Bucket.AccessDenied', 'errorMessage' => 'Bucket access denied.', 'description' => 'Data flow authentication error.'], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidThroughput.OutOfBounds', 'errorMessage' => 'Throughput is out of bounds.', 'description' => ''], + ['errorCode' => 'InvalidDescription.InvalidFormat', 'errorMessage' => 'Description format is invalid.', 'description' => ''], + ['errorCode' => 'InvalidRefreshPath.InvalidParameter', 'errorMessage' => 'Refresh path is invalid.', 'description' => ''], + ['errorCode' => 'InvalidRefreshPath.Duplicated', 'errorMessage' => 'Refresh path is duplicated.', 'description' => ''], + ['errorCode' => 'InvalidRefreshPath.NotFound', 'errorMessage' => 'Refresh path does not exist.', 'description' => ''], + ['errorCode' => 'InvalidRefreshPolicy.InvalidParameter', 'errorMessage' => 'Refresh policy is invalid.', 'description' => ''], + ['errorCode' => 'InvalidRefreshInterval.OutOfBounds', 'errorMessage' => 'Refresh interval is out of bounds.', 'description' => ''], + ['errorCode' => 'InvalidSourceStorage.Unreachable', 'errorMessage' => 'Source storage cannot be accessed.', 'description' => ''], + ['errorCode' => 'InvalidSourceStorage.NotFound', 'errorMessage' => 'Source storage is not found.', 'description' => ''], + ['errorCode' => 'InvalidSourceStorage.NotSupport', 'errorMessage' => 'Source storage type is not supported.', 'description' => ''], + ['errorCode' => 'InvalidSourceStorage.PermissionDenied', 'errorMessage' => 'The source storage access permission is denied.', 'description' => ''], + ['errorCode' => 'InvalidSourceStorage.InvalidRegion', 'errorMessage' => 'Source storage region is invalid.', 'description' => ''], + ['errorCode' => 'InvalidSourceStorage.InvalidParameter', 'errorMessage' => 'Source storage has invalid parameters.', 'description' => ''], + ['errorCode' => 'InvalidSourceSecurityType.NotSupport', 'errorMessage' => 'The source security type is not supported.', 'description' => ''], + ['errorCode' => 'InvalidAutoRefresh.TooManyAutoRefreshes', 'errorMessage' => 'The number of auto refreshes exceeds the limit.', 'description' => ''], + ['errorCode' => 'InvalidSourceStorage.NeedVersioning', 'errorMessage' => 'Source storage must enable versioning.', 'description' => ''], + ['errorCode' => 'InvalidFsetId.NotFound', 'errorMessage' => 'The specified Fileset ID does not exist.', 'description' => ''], + ['errorCode' => 'DataFlow.Bucket.NotExist', 'errorMessage' => 'Bucket does not exist.', 'description' => 'The bucket does not exist.'], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0D****3E\\",\\n \\"DataFlowId\\": \\"df-194433a5be31****\\"\\n}","type":"json"}]', + 'title' => 'Create a data flow', + 'description' => '- This operation applies to the following products:'."\n" + ."\n" + .'| Product | File system ID format | Minimum version that supports data flows |'."\n" + .'|------|----------------|------------------------|'."\n" + .'| **CPFS General-purpose** | Starts with `cpfs-`, such as cpfs-125487\\*\\*\\*\\* | 2.2.0 and later |'."\n" + .'| **CPFS for Lingjun** | Starts with `bmcpfs-`, such as bmcpfs-0015\\*\\*\\*\\* | 2.4.0 and later |'."\n" + .'> CPFS General-purpose and CPFS for Lingjun share the same set of API operations, but differ in parameter values and feature support. Refer to the corresponding section based on the product type you use.'."\n" + ."\n" + .'- Basic operations'."\n" + .' - You can create a data flow only when the CPFS General-purpose or CPFS for Lingjun file system is in the Running state.'."\n" + .' - A maximum of **10** data flows can be created for a single CPFS General-purpose or CPFS for Lingjun file system.'."\n" + .' - Creating a data flow typically takes 2 to 5 minutes. You can call [DescribeDataFlows](~~336901~~) to check whether the data flow is created.'."\n" + ."\n" + .'- Permissions.'."\n" + ."\n" + .' When you create a data flow, Cloud Parallel File Storage associates the `AliyunServiceRoleForNasOssDataflow` and `AliyunServiceRoleForNasEventNotification` service-linked roles. For more information, see [CPFS service-linked roles](~~185138~~).'."\n" + ."\n" + .'- CPFS General-purpose usage notes.'."\n" + ."\n" + .' This section applies to CPFS General-purpose file systems whose IDs start with `cpfs-`.'."\n" + .' - Billing'."\n" + ."\n" + .' - Creating a data flow incurs charges based on the data flow bandwidth. For more information, see [CPFS General-purpose billing](~~111858~~).'."\n" + .' - When you use auto-refresh (AutoRefresh), EventBridge collects object modification events from the source OSS storage, which incurs fees. For more information, see [EventBridge billing](~~163752~~).'."\n" + ."\n" + .' - Data flow specifications'."\n" + .' - The data flow bandwidth (Throughput) supports three specifications: 600 MB/s, 1200 MB/s, and 1500 MB/s. The data flow bandwidth refers to the maximum transfer bandwidth that the data flow can achieve during data import or export.'."\n" + .' - Creating a data flow consumes one vSwitch IP address used by the Cloud Parallel File Storage General-purpose mount target. Make sure that sufficient vSwitch IP resources are available.'."\n" + .' - Inventory check: When DryRun is set to true, you can verify whether the resources required to create a data flow of the specified specification are available.'."\n" + ."\n" + .' - Fileset'."\n" + .' - The destination of a data flow is a Fileset in the CPFS General-purpose file system. A Fileset is a new directory tree structure in the CPFS General-purpose file system. It is a small file system within the parent file system that has an independent inode space and management capability.'."\n" + .' - The Fileset must already exist when you create a data flow, and it cannot be nested with other Filesets. Only one data flow can be created on a Fileset, corresponding to one source storage.'."\n" + .' - The maximum number of files in a Fileset is 1 million. If the number of files imported from an OSS bucket exceeds this limit, creating new files returns a `no space` error.'."\n" + .' > If data already exists in the Fileset, the existing data in the Fileset is cleared and replaced with data synchronized from OSS after the data flow is created.'."\n" + ."\n" + .' - Auto-refresh'."\n" + .' - After auto-refresh (AutoRefresh) is configured, when data in the source storage changes, the changed metadata is automatically synchronized to the Cloud Parallel File Storage General-purpose file system. The changed data is loaded on demand when a user accesses the file, or loaded by starting a data flow task to load data.'."\n" + .' - Auto-refresh relies on EventBridge to collect object modification events from the source OSS storage. You must first [activate EventBridge](~~182246~~).'."\n" + .' - The scope of automatic synchronization is a prefix, specified by the RefreshPath parameter. A maximum of 5 auto-refresh folders can be configured for a data flow.'."\n" + .' - The auto-refresh interval (AutoRefreshInterval) specifies the interval at which Cloud Parallel File Storage General-purpose checks whether data updates exist in the specified prefix of the source OSS bucket. If data updates exist, an automatic synchronization task is started. When the frequency of object modification events in the source OSS exceeds the processing capacity of the Cloud Parallel File Storage General-purpose data flow, automatic synchronization tasks accumulate, metadata updates are delayed, and the data flow status changes to `Misconfigured`. You can resolve this issue by upgrading the data flow specification or reducing the OSS modification frequency.'."\n" + .' - When automatic synchronization is configured for a prefix in a Cloud Parallel File Storage General-purpose data flow, an event bus is created on the user side, and an event rule is created for the prefix of the source OSS bucket. When an object modification occurs in the prefix of the source OSS bucket, an OSS event is generated in EventBridge and processed by the Cloud Parallel File Storage General-purpose data flow.'."\n" + .' > The event bus and event rules created by Cloud Parallel File Storage General-purpose in EventBridge have the description `Create for cpfs auto refresh`. Do not modify or delete the event bus or event rules. Otherwise, auto-refresh does not work properly. The data flow status changes to Normal only when auto-refresh is working properly.'."\n" + ."\n" + .' - Source storage'."\n" + .' - Only OSS is supported as source storage. The source storage (SourceStorage) of a data flow must be an OSS bucket.'."\n" + .' - Cloud Parallel File Storage General-purpose data flows support both encrypted and non-encrypted access to OSS. When you select encrypted (SSL) access to OSS, confirm that the encryption in transit settings of the OSS bucket support encrypted access.'."\n" + .' - If data flows of multiple Cloud Parallel File Storage General-purpose file systems, or multiple data flows of the same Cloud Parallel File Storage General-purpose file system, use the same OSS bucket as the source storage, enable versioning for the OSS bucket to prevent data conflicts when multiple Cloud Parallel File Storage General-purpose file systems export data to the same source. This procedure is required to avoid conflicts during the process.'."\n" + .' - Cross-region OSS data flows are not supported. The OSS bucket must be in the same region as the Cloud Parallel File Storage General-purpose file system.'."\n" + .' > Before creating a data flow, set a tag (key: cpfs-dataflow, value: true) on the source OSS bucket so that the Cloud Parallel File Storage General-purpose data flow can access the data in the bucket. Do not delete or modify this tag while the data flow is in use. Otherwise, the Cloud Parallel File Storage General-purpose data flow cannot access the data in the bucket.'."\n" + ."\n" + .'- CPFS for Lingjun usage notes.'."\n" + ."\n" + .' This section applies to CPFS for Lingjun file systems whose IDs start with `bmcpfs-`.'."\n" + ."\n" + .' - Source storage'."\n" + .' - Only OSS is supported as source storage. The source storage (SourceStorage) of a data flow must be an OSS bucket.'."\n" + .' - CPFS for Lingjun data flows support both encrypted and non-encrypted access to OSS. When you select encrypted (SSL) access to OSS, make sure that the encryption in transit of the OSS bucket supports encrypted access.'."\n" + .' - If data flows of multiple CPFS for Lingjun file systems, or multiple data flows of the same CPFS for Lingjun file system, use the same OSS bucket as the source storage, enable versioning for the OSS bucket to prevent data conflicts when multiple CPFS for Lingjun file systems export data to the same source.'."\n" + .' - Cross-region OSS data flows are not supported. The OSS bucket must be in the same region as the CPFS for Lingjun file system.'."\n" + .' - CPFS for Lingjun 2.6.0 and later support creating data flows with cross-account OSS.'."\n" + .' - The account ID parameter is required only when you use cross-account OSS.'."\n" + .' - When you use cross-account OSS, authorize the account first. For more information, see [Cross-account data flow authorization](~~2713462~~).'."\n" + .' > Before creating a data flow, set a tag (key: cpfs-dataflow, value: true) on the source OSS bucket so that the CPFS for Lingjun data flow can access the data in the bucket. Do not delete or modify this tag while the data flow is in use. Otherwise, the CPFS for Lingjun data flow cannot access the data in the bucket.'."\n" + ."\n" + .' - Data flow restrictions on file systems.'."\n" + ."\n" + .' - In the file system path associated with a data flow, you cannot rename a non-empty directory. Otherwise, a Permission Denied or directory not empty error is returned.'."\n" + .' - Use special characters in directory and file names with caution. The following characters are supported: uppercase and lowercase letters, digits, exclamation marks (!), hyphens (-), underscores (_), periods (.), asterisks (*), and parentheses (()).'."\n" + .' - Excessively long paths are not supported. The maximum path length supported by data flows is 1023 characters.'."\n" + ."\n" + .' - Data flow import restrictions.'."\n" + ."\n" + .' - After symlink files are imported to CPFS for Lingjun, they are converted to regular files that contain data, and the symlink information is lost.'."\n" + .' - If the OSS bucket has multiple versions, only the latest version is copied.'."\n" + .' - File names or subdirectory names longer than 255 bytes are not supported.'."\n" + .' - Data flow export restrictions'."\n" + ."\n" + .' - After symlink files are synchronized to OSS, the files pointed to by the symlinks are not synchronized. Instead, the symlinks become regular empty objects with no data.'."\n" + .' - Hardlink files are synchronized to OSS as regular files only.'."\n" + .' - Socket, Device, and Pipe files become regular empty objects with no data when exported to an OSS bucket.'."\n" + .' - Directory paths longer than 1023 characters are not supported.', + 'changeSet' => [ + ['createdAt' => '2024-09-09T01:49:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-05-31T02:47:37.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-29T02:03:34.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'], + ['createdAt' => '2021-11-23T06:33:57.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2021-11-23T06:33:57.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2021-11-23T06:33:57.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-10-28T08:34:23.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateDataFlow'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateDataFlow', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], ], - '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', - ], + 'CreateDataFlowSubTask' => [ + 'summary' => 'Creates a data streaming subtask.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '192492', - 'abilityTreeNodes' => [ - 'FEATUREnas5IJRRZ', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + '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, - 'example' => '31a8e4****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'bmcpfs-370lx1ev9ss27o0****', 'title' => ''], ], [ - 'name' => 'AccessPointId', + 'name' => 'DataFlowId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the dataflow.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'df-194433a5be31****', 'title' => ''], + ], + [ + 'name' => 'DataFlowTaskId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the dataflow task.'."\n" + ."\n" + .'> Only the IDs of data streaming tasks are supported.'."\n", 'type' => 'string', 'required' => true, 'example' => 'task-38aa8e890f45****', 'title' => ''], + ], + [ + '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, 'default' => 'false', 'example' => 'false', 'title' => ''], + ], + [ + '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****', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], + [ + 'name' => 'Condition', + 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'description' => 'The ID of the access point.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ap-ie15yd****', + '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', 'title' => ''], + 'Size' => ['description' => 'The file size. Unit: bytes.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '68', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', ], ], ], @@ -4237,218 +2884,71 @@ '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', - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'A70BEE5D-76D3-49FB-B58F-1F398211A5C3', 'title' => ''], + 'DataFlowSubTaskId' => ['description' => 'The ID of the data streaming task.'."\n", 'type' => 'string', 'example' => 'subTaskId-370kyfmyknxcyzw****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'InvalidAccessPointId.NotFound', - 'errorMessage' => 'The access point id does not exist.', - ], - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingDataFlowId', 'errorMessage' => 'DataFlowId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidFilesystemVersion.NotSupport', 'errorMessage' => 'This Api does not support this fileSystem version.', 'description' => 'This Api does not support this fileSystem version.'], + ], + 403 => [ + ['errorCode' => 'OperationDenied.InvalidState', 'errorMessage' => 'The operation is not permitted when the status is processing.', 'description' => 'The operation is not permitted when the status is processing.'], + ['errorCode' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => ''], + ['errorCode' => 'OperationDenied.DataFlowNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidParameter.InvalidFormat', 'errorMessage' => 'The EntryList format is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.SizeTooLarge', 'errorMessage' => 'The specified EntryList size exceeds 64 KB.', 'description' => ''], + ['errorCode' => 'InvalidDataFlow.NotFound', 'errorMessage' => 'The specified data flow does not exist.', 'description' => ''], + ['errorCode' => 'InvalidTaskAction.NotSupported', 'errorMessage' => 'The task action is not supported.', 'description' => ''], + ['errorCode' => 'InvalidTaskAction.PermissionDenied', 'errorMessage' => 'The task action is not allowed.', 'description' => ''], + ['errorCode' => 'InvalidSrcTaskId.NotFound', 'errorMessage' => 'The SrcTaskId is not found.', 'description' => ''], + ['errorCode' => 'InvalidDataType.NotSupported', 'errorMessage' => 'The data type is not supported.', 'description' => ''], + ['errorCode' => 'InvalidSrcTaskId.TaskIdInvalid', 'errorMessage' => 'Source task ID is invalid.', 'description' => ''], + ['errorCode' => 'InvalidSrcTaskId.TaskIdNotFound', 'errorMessage' => 'Source task ID is not found.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A70BEE5D-76D3-49FB-B58F-1F398211A5C3\\",\\n \\"DataFlowSubTaskId\\": \\"subTaskId-370kyfmyknxcyzw****\\"\\n}","type":"json"}]', + 'title' => 'CreateDataFlowSubTask', + 'description' => '- 仅CPFS智算版2.6.0 及以上版本支持。您可以在控制台文件系统详情页面查看版本信息。'."\n" + .' - 仅支持状态为Executing(执行中)的数据流动流式任务创建子任务。'."\n" + .'- 数据流动流式任务是异步执行的,您可通过DescribeDataFlowSubTasks查询流式任务执行状态。'."\n" + .'- 当数据流动任务类型为流式任务时,运行中状态仅代表可以创建流式导入任务或流式导出任务(并不代表导入或导出任务运行中)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDataFlowSubTask'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateDataFlowSubTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], - '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", + 'translator' => 'manual', ], - 'DeleteAccessPoint' => [ - 'summary' => 'Deletes an access point.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateDataFlowTask' => [ + 'summary' => 'Create a data flow task.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4457,87 +2957,342 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'create', 'riskType' => 'high', - 'chargeType' => 'free', - 'abilityTreeCode' => '189632', - 'abilityTreeNodes' => [ - 'FEATUREnas5IJRRZ', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'chargeType' => 'paid', + 'abilityTreeCode' => '49027', + 'abilityTreeNodes' => ['FEATUREnasPWYFYN'], ], 'parameters' => [ [ 'name' => 'FileSystemId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the file system.'."\n" + ."\n" + .'- CPFS General Purpose Edition: The ID must start with `cpfs-`, such as `cpfs-125487****`.'."\n" + ."\n" + .'- CPFS AI-Computing Edition: The ID must start with `bmcpfs-`, such as `bmcpfs-0015****`.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cpfs-099394bd928c****', 'title' => ''], + ], + [ + 'name' => 'DataFlowId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the data flow.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'df-194433a5be31****', 'title' => ''], + ], + [ + 'name' => 'SrcTaskId', + 'in' => 'query', + 'schema' => ['description' => 'If you specify `SrcTaskId`, enter the ID of a data flow task. The system copies the `TaskAction`, `DataType`, and `EntryList` parameter information from the specified task. You do not need to specify these parameters.'."\n" + ."\n" + .'> Data flow streaming tasks are not supported.', 'type' => 'string', 'required' => false, 'example' => 'task-29ee8e890f45****', 'title' => ''], + ], + [ + 'name' => 'TaskAction', + 'in' => 'query', + 'allowEmptyValue' => true, 'schema' => [ - 'description' => 'The ID of the file system.'."\n", + 'description' => 'The type of the data flow task.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- Import: Imports specified data from the source storage to the CPFS file system.'."\n" + ."\n" + .'- Export: Exports specified data from the CPFS file system to the source storage.'."\n" + ."\n" + .'- StreamImport: Imports a large amount of specified data from the source storage to the CPFS file system.'."\n" + ."\n" + .'- StreamExport: Exports a large amount of specified data from the CPFS file system to the source storage.'."\n" + ."\n" + .'- Evict: Releases the data blocks of a file from the CPFS file system. After the release, only the metadata of the file is retained. You can still query the file, but its data blocks are cleared and no longer occupy storage capacity. When you access the file data, it is loaded from the source storage on demand.'."\n" + ."\n" + .'- Inventory: Obtains the inventory of files managed by a data flow for the CPFS file system. This provides the cache status of files in the data flow.'."\n" + ."\n" + .'> CPFS AI-Computing Edition supports only `Import`, `Export`, `StreamImport`, and `StreamExport`. `StreamImport` and `StreamExport` are supported only by CPFS AI-Computing Edition V2.6.0 and later.', 'type' => 'string', - 'required' => true, - 'example' => '1ca404****', - 'maxLength' => 64, - 'minLength' => 3, + 'required' => false, + 'docRequired' => false, + 'enum' => ['Import', 'Export', 'Evict', 'Inventory', 'StreamImport', 'StreamExport'], + 'example' => 'Import', + 'title' => '', ], ], [ - 'name' => 'AccessPointId', + 'name' => 'DataType', 'in' => 'query', + 'allowEmptyValue' => true, 'schema' => [ - 'description' => 'The ID of the access point.'."\n", + 'description' => 'The data type that the data flow task operates on.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- Metadata: The metadata of the file, including attributes such as timestamp, ownership, and permissions. If you select `Metadata`, only the file metadata is imported. You can see the file, but when you access the file data, it is loaded from the source storage on demand.'."\n" + ."\n" + .'- Data: The data blocks of the file.'."\n" + ."\n" + .'- MetaAndData: The metadata and data blocks of the file.', 'type' => 'string', - 'required' => true, - 'example' => 'ap-ie15yd****'."\n", + 'required' => false, + 'docRequired' => false, + 'enum' => ['Metadata', 'Data', 'MetaAndData', ''], + 'example' => 'Metadata', + 'title' => '', ], ], + [ + 'name' => 'Directory', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The source directory of the data.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'- The length must be 1 to 1,023 characters.'."\n" + ."\n" + .'- The directory must be UTF-8 encoded.'."\n" + ."\n" + .'- The directory must start and end with a forward slash (`/`).'."\n" + ."\n" + .'- Only one directory can be specified at a time.'."\n" + ."\n" + .'- If `TaskAction` is `Export`, this directory must be a relative path within `FileSystemPath`.'."\n" + ."\n" + .'- If `TaskAction` is `Import`, this directory must be a relative path within `SourceStoragePath`.'."\n" + ."\n" + .'- If `TaskAction` is `StreamExport`, this directory must be a relative path within `FileSystemPath`.'."\n" + ."\n" + .'- If `TaskAction` is `StreamImport`, this directory must be a relative path within `SourceStoragePath`.'."\n" + ."\n" + .'> `StreamImport` and `StreamExport` are supported only by CPFS AI-Computing Edition V2.6.0 and later.', 'type' => 'string', 'maxLength' => 1023, 'required' => false, 'example' => '/path_in_cpfs/', 'title' => ''], + ], + [ + 'name' => 'EntryList', + 'in' => 'query', + 'schema' => ['description' => 'The list of files for the data flow task to execute.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'- The list must be UTF-8 encoded.'."\n" + ."\n" + .'- The total length of the file list must be less than 64 KB.'."\n" + ."\n" + .'- The file list must be in JSON format.'."\n" + ."\n" + .'- The path of a single file must be 1 to 1,023 characters in length and must start with a forward slash (`/`).'."\n" + ."\n" + .'- If `TaskAction` is `Import`, each element in the list represents an OSS Object name.'."\n" + ."\n" + .'- If `TaskAction` is `Export`, each element in the list represents a CPFS file path.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'maxItems' => 10, 'example' => '["/path_in_cpfs/file1", "/path_in_cpfs/file2"]', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run for this creation request.'."\n" + ."\n" + .'A dry run checks parameter validity and inventory without creating an instance or incurring charges.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: Sends a check request without creating the instance. The system checks for required parameters, request format, business limits, and NAS inventory. If the check fails, an error is returned. If the check passes, an HTTP 200 status code is returned, but `TaskId` is empty.'."\n" + ."\n" + .'- false (default): Sends a normal request and creates the instance after the check passes.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'A client-generated token that ensures the idempotence of the request. The token must be unique across different requests.'."\n" + ."\n" + .'`ClientToken` can contain only ASCII characters and must not 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 `RequestId` of the API request as the `ClientToken`. The `RequestId` may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], + ], + [ + 'name' => 'ConflictPolicy', + 'in' => 'query', + 'schema' => [ + 'description' => 'The conflict policy for files with the same name.'."\n" + .'Valid values:'."\n" + ."\n" + .'- SKIP\\_THE\\_FILE: Skips files with the same name.'."\n" + ."\n" + .'- KEEP\\_LATEST: Compares update times and keeps the latest version.'."\n" + ."\n" + .'- OVERWRITE\\_EXISTING: Forcibly overwrites files with the same name.'."\n" + ."\n" + .'> This parameter is required if the file system is a CPFS AI-Computing Edition instance.', + 'type' => 'string', + 'example' => 'SKIP_THE_FILE', + 'enum' => ['SKIP_THE_FILE', 'KEEP_LATEST', 'OVERWRITE_EXISTING'], + 'title' => '', + 'required' => false, + ], + ], + [ + 'name' => 'DstDirectory', + 'in' => 'query', + 'schema' => ['description' => 'The destination directory for the data flow task mapping.'."\n" + .'Limits:'."\n" + ."\n" + .'- The directory must start and end with a forward slash (`/`). The `/../` sequence is not supported.'."\n" + ."\n" + .'- The length must be 1 to 1,023 characters.'."\n" + ."\n" + .'- The directory must be UTF-8 encoded.'."\n" + ."\n" + .'- Only one directory can be specified at a time.'."\n" + ."\n" + .'- If `TaskAction` is `Export`, this directory must be a relative path within `SourceStoragePath`.'."\n" + ."\n" + .'- If `TaskAction` is `Import`, this directory must be a relative path within `FileSystemPath`.'."\n" + ."\n" + .'- If `TaskAction` is `StreamExport`, this directory must be a relative path within `SourceStoragePath`.'."\n" + ."\n" + .'- If `TaskAction` is `StreamImport`, this directory must be a relative path within `FileSystemPath`.'."\n" + ."\n" + .'> `StreamImport` and `StreamExport` are supported only by CPFS AI-Computing Edition V2.6.0 and later.', 'type' => 'string', 'required' => false, 'example' => '/path_in_cpfs/', 'title' => ''], + ], + [ + 'name' => 'CreateDirIfNotExist', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to automatically create the directory if it does not exist.'."\n" + .'Valid values:'."\n" + ."\n" + .'- true: Automatically creates the directory.'."\n" + ."\n" + .'- false (default): Does not automatically create the directory.'."\n" + ."\n" + .'> * This parameter takes effect only when `TaskAction` is set to `Import`.'."\n" + .'>'."\n" + .'> * This parameter is supported only by CPFS AI-Computing Edition V2.6.0 and later.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'Includes', + 'in' => 'query', + 'schema' => ['description' => 'Filters the subdirectories under the `Directory` parameter and transfers the content of the filtered subdirectories.'."\n" + ."\n" + .'> - This parameter takes effect only when the `Directory` parameter is specified.'."\n" + .'>'."\n" + .'> - The path of a single folder must be 1 to 1,023 characters in length and must start and end with a forward slash (`/`). The total length cannot exceed 3,000 characters.'."\n" + .'>'."\n" + .'> - This feature is supported only by CPFS AI-Computing Edition.', 'type' => 'string', 'required' => false, 'example' => '["/test/","/test1/"]', 'title' => ''], + ], + [ + 'name' => 'TransferFileListPath', + 'in' => 'query', + 'schema' => ['description' => 'Specifies an OSS directory. Data is synchronized based on the content of the CSV files in this directory. The following limits apply.'."\n" + ."\n" + .'- The path must start and end with a forward slash (`/`).'."\n" + ."\n" + .'- The path is case-sensitive.'."\n" + ."\n" + .'- The length must be between 1 and 1,023 characters.'."\n" + ."\n" + .'- The path must be UTF-8 encoded.'."\n" + ."\n" + .'> * `TransferFileListPath`, `Directory`, and `EntryList` are mutually exclusive. You can specify only one of them.'."\n" + .'>'."\n" + .'> * This parameter specifies an existing path in OSS. The `*.csv` files are stored in this path.'."\n" + .'>'."\n" + .'> * `TransferFileListPath` supports only the `Import` and `Export` features.'."\n" + .'>'."\n" + .'> * For an `Import` task, the files or directories specified in the CSV file are imported from OSS to the CPFS file system.'."\n" + .'>'."\n" + .'> * For an `Export` task, the files or directories specified in the CSV file are exported from the CPFS file system to OSS.'."\n" + .'>'."\n" + .'> * The CSV file must contain `Name` and `Type` columns. `Name` is the relative path. `Type` can be `dir` or `file`. If `Type` is `dir`, the `Name` value must end with a forward slash (`/`).'."\n" + .'>'."\n" + .'> * This feature is supported only by CPFS AI-Computing Edition.', 'type' => 'string', 'required' => false, 'example' => '/test_oss_path/', 'title' => ''], + ], ], '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****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', 'title' => ''], + 'TaskId' => ['description' => 'The Dataflow task ID.', 'type' => 'string', 'example' => 'task-38aa8e890f45****', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'InvalidAccessPointId.NotFound', - 'errorMessage' => 'The access point id does not exist.', - ], - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingDataFlowId', 'errorMessage' => 'DataFlowId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidFilesystemVersion.NotSupport', 'errorMessage' => 'This Api does not support this fileSystem version.', 'description' => 'This Api does not support this fileSystem version.'], + ], + 403 => [ + ['errorCode' => 'OperationDenied.InvalidState', 'errorMessage' => 'The operation is not permitted when the status is processing.', 'description' => 'The operation is not permitted when the status is processing.'], + ['errorCode' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => ''], + ['errorCode' => 'OperationDenied.DataFlowNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidParameter.InvalidFormat', 'errorMessage' => 'The EntryList format is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.SizeTooLarge', 'errorMessage' => 'The specified EntryList size exceeds 64 KB.', 'description' => ''], + ['errorCode' => 'InvalidDataFlow.NotFound', 'errorMessage' => 'The specified data flow does not exist.', 'description' => ''], + ['errorCode' => 'InvalidTaskAction.NotSupported', 'errorMessage' => 'The task action is not supported.', 'description' => ''], + ['errorCode' => 'InvalidTaskAction.PermissionDenied', 'errorMessage' => 'The task action is not allowed.', 'description' => ''], + ['errorCode' => 'InvalidSrcTaskId.NotFound', 'errorMessage' => 'The SrcTaskId is not found.', 'description' => ''], + ['errorCode' => 'InvalidDataType.NotSupported', 'errorMessage' => 'The data type is not supported.', 'description' => ''], + ['errorCode' => 'InvalidSrcTaskId.TaskIdInvalid', 'errorMessage' => 'Source task ID is invalid.', 'description' => ''], + ['errorCode' => 'InvalidSrcTaskId.TaskIdNotFound', 'errorMessage' => 'Source task ID is not found.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\",\\n \\"TaskId\\": \\"task-38aa8e890f45****\\"\\n}","type":"json"}]', + 'title' => 'CreateDataFlowTask', + 'description' => '- CPFS usage notes'."\n" + ."\n" + .' - Data flow is supported only on CPFS 2.2.0 and later. You can view the version information on the file system details page in the console.'."\n" + ."\n" + .' - Data flow tasks execute asynchronously. You can query the task status by calling the [DescribeDataFlowTasks](~~2402275~~) operation. Task duration depends on the amount of data. For large datasets, split the workload into multiple tasks.'."\n" + ."\n" + .' - You can create data flow tasks only on a data flow that is in the Running state.'."\n" + ."\n" + .' - Manually running a data flow task pauses the corresponding automatic data update task.'."\n" + ."\n" + .' - When you create an export task, ensure that the absolute path of each file to be exported from CPFS does not exceed 1,023 characters.'."\n" + ."\n" + .'- CPFS AI-Computing Edition usage notes'."\n" + ."\n" + .' - Data flow is supported only on CPFS AI-Computing Edition 2.4.0 and later. You can view the version information on the file system details page in the console.'."\n" + ."\n" + .' - Data flow tasks execute asynchronously. You can query the task status by calling the [DescribeDataFlowTasks](~~2402275~~) operation. Task duration depends on the amount of data. For large datasets, split the workload into multiple tasks.'."\n" + ."\n" + .' - You can create data flow tasks only on a data flow that is in the Running state.'."\n" + ."\n" + .' - When you create an export task, ensure that the absolute path of each file to be exported from CPFS AI-Computing Edition does not exceed 1,023 characters.'."\n" + ."\n" + .' - CPFS AI-Computing Edition supports two task types: batch tasks and streaming tasks. For more information, see [Task types](~~2845429~~).', + 'changeSet' => [ + ['createdAt' => '2024-09-09T01:49:11.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-02-29T02:03:33.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'], + ['createdAt' => '2021-10-28T08:34:23.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateDataFlowTask'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateDataFlowTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], - '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', - ], + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4550,9 +3305,7 @@ 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeCode' => '189884', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', - ], + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], @@ -4560,75 +3313,43 @@ [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '31a8e4****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'example' => '31a8e4****', 'title' => ''], ], [ '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', - ], + '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', 'title' => ''], ], [ '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', - ], + 'schema' => ['description' => 'The owner ID for the directory. Valid values: 0 to 4294967295.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1', 'title' => ''], ], [ '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', - ], + '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', 'title' => ''], ], [ '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', - ], + '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', 'title' => ''], ], [ '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', - ], + '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', 'title' => ''], ], ], 'responses' => [ @@ -4638,41 +3359,143 @@ '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****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****'], ], + 'example' => '', ], ], ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'InvalidProtocolType.NotSupported', - 'errorMessage' => 'The specified protocol type does not supported.', - ], + ['errorCode' => 'InvalidProtocolType.NotSupported', 'errorMessage' => 'The specified protocol type does not supported.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], + '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", + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateDir'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateDir', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], ], - 'CreateAccessGroup' => [ - 'summary' => 'Creates a permission group.', - 'methods' => [ - 'post', - 'get', + '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', ], - 'schemes' => [ - 'http', - 'https', + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], + ], + [ + '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/', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], + [ + '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****', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], ], + '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****'], + ], + 'example' => '', + ], + ], + ], + '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", + 'changeSet' => [ + ['createdAt' => '2025-02-20T02:33:20.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-08-08T07:16:28.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateFile'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateFile', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + ], + 'CreateFileSystem' => [ + 'summary' => 'Creates a file system.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4683,126 +3506,418 @@ 'systemTags' => [ 'operationType' => 'create', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '13927', - 'abilityTreeNodes' => [ - 'FEATUREnas2SBOJD', - ], + 'chargeType' => 'paid', + 'abilityTreeCode' => '13930', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], 'autoTest' => true, 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'AccessGroupName', + 'name' => 'FileSystemType', 'in' => 'query', 'schema' => [ - 'description' => 'The name of the permission group.'."\n" + 'description' => 'The type of the file system.'."\n" ."\n" - .'Limits:'."\n" + .'Valid values:'."\n" + .'- standard (default): General-purpose NAS file system.'."\n" + .'- extreme: Extreme NAS file system.'."\n" + .'- cpfs: Cloud Parallel File Storage (CPFS) (locally redundant).'."\n" + .'- cpfsse: Cloud Parallel File Storage (CPFS) SE (zone-redundant).', + 'enumValueTitles' => ['standard' => 'General-purpose NAS file system.', 'cpfs' => 'Cloud Paralleled File System (CPFS) (locally redundant)', 'cpfsse' => 'Cloud Paralleled File System (CPFS) SE (zone-redundant)', 'extreme' => 'Extreme NAS file system.'], + 'type' => 'string', + 'required' => false, + 'default' => 'standard', + 'enum' => ['standard', 'extreme', 'cpfs', 'cpfsse'], + 'example' => 'standard', + 'title' => '', + ], + ], + [ + 'name' => 'ChargeType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The billing method.'."\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" + .'Valid values:'."\n" ."\n" - .'The default permission group for virtual private clouds (VPCs) is named DEFAULT_VPC_GROUP_NAME.'."\n", + .'- PayAsYouGo (default): Pay-as-you-go.'."\n" + .'- Subscription: Subscription.', + 'enumValueTitles' => ['PayAsYouGo' => 'Pay-as-you-go.', 'Subscription' => 'Subscription.'], + 'type' => 'string', + 'required' => false, + 'default' => 'PayAsYouGo', + 'enum' => ['PayAsYouGo', 'Subscription'], + 'example' => 'PayAsYouGo', + 'title' => '', + ], + ], + [ + 'name' => 'Duration', + 'in' => 'query', + 'schema' => ['description' => 'The subscription duration.'."\n" + ."\n" + .'Unit: months. This parameter is required and takes effect only when ChargeType is set to Subscription.'."\n" + ."\n" + .'If a subscription instance is not renewed upon expiration, the instance is automatically released.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'Capacity', + 'in' => 'query', + 'schema' => ['description' => 'The capacity of the file system. Unit: GiB.'."\n" + .'This parameter is required and takes effect only when FileSystemType is set to extreme, cpfs, or cpfsse.'."\n" + ."\n" + .'For available values, see the actual specifications on the buy page:'."\n" + ."\n" + .'<props="china">'."\n" + ."\n" + .'- [Extreme NAS pay-as-you-go buy page](https://common-buy.aliyun.com/?commodityCode=nas_extreme_post#/buy)'."\n" + .'- [Parallel file system CPFS pay-as-you-go buy page](https://common-buy.aliyun.com/?commodityCode=nas_cpfs_post#/buy)'."\n" + ."\n" + .'</props>'."\n" + ."\n" + .'<props="intl">'."\n" + ."\n" + .'- [Extreme NAS pay-as-you-go buy page](https://common-buy-intl.alibabacloud.com/?commodityCode=nas_extpost_public_intl#/buy)'."\n" + ."\n" + .'- [Parallel file system CPFS pay-as-you-go buy page](https://common-buy-intl.alibabacloud.com/?spm=5176.nas_overview.0.0.7ea01dbft0dTui&commodityCode=nas_cpfspost_public_intl#/buy)'."\n" + .'</props>', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '100', 'title' => ''], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => ['description' => 'The maximum throughput of the file system.'."\n" + ."\n" + .'Unit: MB/s.'."\n" + ."\n" + .'For available specification values, see the actual specifications on the buy page.'."\n" + ."\n" + .'<props="china">'."\n" + ."\n" + .'[Parallel file system CPFS pay-as-you-go buy page](https://common-buy.aliyun.com/?commodityCode=nas_cpfs_post#/buy)'."\n" + ."\n" + .'</props>'."\n" + ."\n" + .'<props="intl">'."\n" + ."\n" + .'[Parallel file system CPFS pay-as-you-go buy page](https://common-buy-intl.alibabacloud.com/?spm=5176.nas_overview.0.0.7ea01dbft0dTui&commodityCode=nas_cpfspost_public_intl#/buy)'."\n" + ."\n" + .'</props>', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '150', 'title' => ''], + ], + [ + 'name' => 'StorageType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The storage type.'."\n" + ."\n" + .'- If FileSystemType is set to standard, valid values: Performance, Capacity, and Premium.'."\n" + .'- If FileSystemType is set to extreme, valid values: standard and advance.'."\n" + .'- If FileSystemType is set to cpfs, valid values: advance_100 (100 MB/s/TiB baseline), advance_200 (200 MB/s/TiB baseline), and economic.'."\n" + .'- If FileSystemType is set to cpfsse, valid values: advance_100 (100 MB/s/TiB baseline).', + 'enumValueTitles' => ['standard' => 'Standard Extreme NAS.', 'Capacity' => 'Capacity NAS.', 'advance_200' => 'Cloud Paralleled File System (CPFS) 200 MB/s/TiB baseline.', 'advance_100' => 'Cloud Paralleled File System (CPFS) 100 MB/s/TiB baseline.', 'Premium' => 'Premium NAS.', 'Performance' => 'Performance NAS.', 'economic' => 'Cloud Paralleled File System (CPFS) economy.', 'advance' => 'Advanced Extreme NAS.'], 'type' => 'string', 'required' => true, 'docRequired' => true, - 'example' => 'vpc-test', + 'enum' => ['Premium', 'Performance', 'Capacity', 'standard', 'advance', 'NasPlusSmartCache', 'advance_100', 'advance_200', 'economic', 'Agentic'], + 'example' => 'Performance', + 'title' => '', ], ], [ - 'name' => 'AccessGroupType', + 'name' => 'ZoneId', + 'in' => 'query', + 'schema' => ['description' => 'The zone ID.'."\n" + ."\n" + .'A zone is an independent physical area within a region that has its own power supply and network.'."\n" + ."\n" + .'If FileSystemType is set to standard, this parameter is optional. By default, an active zone that matches the conditional ProtocolType and StorageType is randomly selected.'."\n" + ."\n" + .'If FileSystemType is set to extreme or cpfs, this parameter is required.'."\n" + ."\n" + .'> - File systems and Elastic Computing Service (ECS) instances in different zones of the same region can communicate with each other.'."\n" + .'> - Place the file system and the ECS server in the same zone to avoid cross-zone latency.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'cn-hangzhou-b', 'title' => ''], + ], + [ + 'name' => 'ProtocolType', 'in' => 'query', 'schema' => [ - 'description' => 'The network type of the permission group. Valid value: **Vpc**.'."\n", + 'description' => 'The file transfer protocol type.'."\n" + ."\n" + .'- If FileSystemType is set to standard, valid values: NFS and SMB.'."\n" + .'- If FileSystemType is set to extreme, valid values: NFS.'."\n" + .'- If FileSystemType is set to cpfs, valid values: cpfs.'."\n" + .'- If FileSystemType is set to cpfsse, valid values: cpfs.', + 'enumValueTitles' => ['cpfs' => 'cpfs protocol.', 'SMB' => 'SMB protocol.', 'NFS' => 'NFS protocol.'], 'type' => 'string', 'required' => true, 'docRequired' => true, - 'example' => 'Vpc', - 'enum' => [ - 'Vpc', - 'VPC', - 'vpc', - ], + 'enum' => ['NFS', 'SMB', 'NASPLUS', 'cpfs'], + 'example' => 'NFS', + 'title' => '', ], ], [ - 'name' => 'Description', + 'name' => 'EncryptType', 'in' => 'query', 'schema' => [ - 'description' => 'The description of the permission group.'."\n" + 'description' => 'Specifies whether to encrypt the file system.'."\n" ."\n" - .'Limits:'."\n" + .'Uses keys managed by Key Management Service (KMS) to encrypt data stored on the file system. No decryption is required when reading or writing encrypted data.'."\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', + .'Valid values:'."\n" + ."\n" + .'- 0 (default): Not encrypted.'."\n" + .'- 1: NAS-managed key. Supported when FileSystemType is set to standard or extreme.'."\n" + .'- 2: Custom Key (KMS). Supported when FileSystemType is set to standard or extreme.'."\n" + ."\n" + .'> - Extreme NAS: The Custom Key (KMS) feature is supported in all regions except China (Hangzhou) Finance Cloud.'."\n" + .'> - General-purpose NAS: The Custom Key (KMS) feature is supported in all regions.', + 'enumValueTitles' => ['Not encrypted.', 'NAS-managed key.', 'Custom Key (KMS)'], + 'type' => 'integer', + 'format' => 'int32', 'required' => false, - 'example' => 'vpctestaccessgroup', + 'docRequired' => false, + 'default' => '0', + 'enum' => ['0', '1', '2'], + 'example' => '1', + 'title' => '', ], ], [ - 'name' => 'FileSystemType', + 'name' => 'SnapshotId', + 'in' => 'query', + 'schema' => ['description' => 'The snapshot ID.'."\n" + ."\n" + .'This parameter is supported only for Extreme NAS file systems with the Advanced storage type.'."\n" + .'> A file system created from a snapshot has the same version as the source file system of the snapshot. For example, if the source file system version is 1 and you want to create a version 2 file system, first create file system A from the snapshot, then create file system B that meets the version 2 configuration. Copy the data from file system A to file system B, and migrate your workloads to file system B after the copy is complete.', 'type' => 'string', 'required' => false, 'example' => 's-extreme-snapsho****', 'title' => ''], + ], + [ + 'name' => 'VpcId', + 'in' => 'query', + 'schema' => ['description' => 'The VPC ID.'."\n" + ."\n" + .'- If FileSystemType is set to cpfs or cpfsse, this parameter is required.'."\n" + .'- If FileSystemType is set to standard or extreme, this parameter is reserved and does not take effect. You do not need to configure it.', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp18cx9a7zoh0h9b4****', 'title' => ''], + ], + [ + 'name' => 'VSwitchId', + 'in' => 'query', + 'schema' => ['description' => 'The vSwitch ID.'."\n" + ."\n" + .'- If FileSystemType is set to cpfs, this parameter is required.'."\n" + .'- If FileSystemType is not set to cpfs, this parameter is reserved and does not take effect. You do not need to configure it.', 'type' => 'string', 'required' => false, 'example' => 'vsw-bp131dkqilvw5pnlt****', 'title' => ''], + ], + [ + '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" + .'- The description must start with a letter and cannot start with `http://` or `https://`.'."\n" + .'- The description can contain digits, colons (:), underscores (_), and hyphens (-).', 'type' => 'string', 'required' => false, 'example' => '此文件系统的描述。', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'Ensures the idempotence of the request. Generate a unique parameter value from your client. The ClientToken value 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 uses the RequestId of the API request as the ClientToken. The RequestId may vary for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], + ], + [ + 'name' => 'KmsKeyId', + 'in' => 'query', + 'schema' => ['description' => 'The KMS key ID.'."\n" + ."\n" + .'This parameter is required only when EncryptType is set to 2.', 'type' => 'string', 'required' => false, 'example' => 'fcbd****-62**-4a**-b605-c58cc1d5****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run for this request.'."\n" + ."\n" + .'A dry run checks parameter validity and resource availability without actually creating the instance or incurring charges.'."\n" + ."\n" + .'Valid values: '."\n" + .'- true: Sends a dry run request without creating the instance. The check items include required parameters, request format, service limits, and NAS inventory. If the check fails, the corresponding error is returned. If the check succeeds, HTTP status code 200 is returned, but FileSystemId is empty. '."\n" + .'- false (default): Sends a normal request. After the check succeeds, the instance is created.', 'type' => 'boolean', 'required' => false, 'default' => 'false', 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The resource group ID.'."\n" + ."\n" + .'You can view resource group IDs in the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups?).', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmwavnfdf****'."\n", 'title' => ''], + ], + [ + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The type of the file system.'."\n" - ."\n" - .'Valid values:'."\n" + 'description' => 'The tags.'."\n" ."\n" - .'* standard (default): General-purpose NAS file system.'."\n" - .'* extreme: Extreme NAS file system.', + .'Array length: 1 to 20. If the array contains multiple tag objects, the tag key (Key) must be unique.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag object.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'- The tag key cannot be empty.'."\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://`.', 'type' => 'string', 'required' => false, 'example' => 'nastest', 'title' => ''], + 'Value' => ['description' => 'The tag value.'."\n" + ."\n" + .'Limits:'."\n" + .'- The tag value cannot be empty.'."\n" + .'- The tag value can be up to 128 characters in length.'."\n" + .'- The tag value cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'testValue', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 21, + 'title' => '', + 'example' => '', + ], + ], + [ + 'name' => 'RedundancyType', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'title' => '', + 'description' => 'The storage redundancy type. This parameter takes effect only for CPFS SE.'."\n" + .'Valid values: ZRS.', + 'enumValueTitles' => ['ZRS' => 'Zone-redundant.'], 'type' => 'string', + 'example' => 'ZRS', + 'enum' => ['LRS', 'ZRS'], 'required' => false, - 'example' => 'standard', - 'default' => 'standard', - 'enum' => [ - 'standard', - 'extreme', - ], + ], + ], + [ + 'name' => 'RedundancyVSwitchIds', + 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'title' => '', + 'description' => 'The list of zone-redundant vSwitch IDs.'."\n" + .'If RedundancyType is set to ZRS, this parameter is required. You must specify three vSwitch IDs, each from a different zone.', + 'type' => 'array', + 'items' => ['title' => '', 'description' => 'The zone-redundant vSwitch ID list.', 'type' => 'string', 'example' => 'vsw-123xxx', 'required' => false], + 'required' => false, + 'maxItems' => 3, + 'minItems' => 0, + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response structure.', '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', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], + 'FileSystemId' => ['description' => 'The ID of the created file system.', 'type' => 'string', 'example' => '1ca404****', 'title' => ''], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 202 => [ + ['errorCode' => 'RequestAccepted', 'errorMessage' => 'The request has been accepted by the server.', 'description' => 'The request has been accepted by the server.'], + ], + 400 => [ + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The same client token was passed in to different parameters.', 'description' => 'The same client token was passed in to different parameters.'], + ['errorCode' => 'InvalidParameter.KmsServiceNotEnabled', 'errorMessage' => 'Key Management Service is not enabled.', 'description' => 'Key Management Service is not enabled.'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'The request is validated with DryRun flag set.', 'description' => '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.', 'description' => '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.', 'description' => '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.', 'description' => '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.', 'description' => '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.', 'description' => 'When parameter EncryptType equals 2, the parameter KmsKeyId is mandatory for your request.'], + ['errorCode' => 'InvalidParameter.InvalidKmsKeyId', 'errorMessage' => 'The specified KMS key ID is invalid.', 'description' => 'The specified KMS key ID is invalid.'], + ['errorCode' => 'InvalidParameter.KmsKeyIdNotFound', 'errorMessage' => 'The specified KMS key ID does not exist.', 'description' => 'The specified KMS key ID does not exist.'], + ], + 403 => [ + ['errorCode' => 'OperationDenied.InvalidState', 'errorMessage' => 'The operation is not permitted when the status is processing.', 'description' => 'The operation is not permitted when the status is processing.'], + ['errorCode' => 'InvalidFileSystem.AlreadyExisted', 'errorMessage' => 'The specified file system already exists.', 'description' => 'The specified file system already exists.'], + ['errorCode' => 'Resource.OutOfStock', 'errorMessage' => 'The inventory of the specified zone is insufficient.', 'description' => 'The inventory of the specified zone is insufficient.'], + ], ], - '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', + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"FileSystemId\\": \\"1ca404****\\"\\n}","type":"json"}]', + 'title' => 'Create a file system', + 'description' => '- Before you use this operation, make sure that you understand the billing of File Storage NAS. For more information, see [Billing](~~178365~~) and [Pricing](https://www.aliyun.com/price/product?#/nas/detail).'."\n" + ."\n" + .'- To create a file system instance, complete real-name verification. For more information, see [Real-name verification](~~48263~~).'."\n" + ."\n" + .'- When you call this operation, the system automatically creates the service-linked role required for the operation. For more information, see [Manage the service-linked role for NAS](~~208530~~).', + 'requestParamsDescription' => '**Notes on API idempotence:** '."\n" + .'Because the CreateFileSystem operation involves cloud resource creation and billing, the client may retry the request if a request timeout or internal server error occurs. Set the ClientToken parameter in the request to prevent duplicate orders caused by multiple retries.'."\n" + ."\n" + .'> Currently, this operation supports idempotence only when FileSystemType is set to extreme or cpfs. When FileSystemType is set to standard, this operation does not support idempotence.'."\n" + ."\n\n" + .'Details about the ClientToken parameter:'."\n" + .'- ClientToken is a unique, case-sensitive string generated by the client that contains no more than 64 ASCII characters. Example: ```ClientToken=123e4567-e89b-12d3-a456-42665544****``` '."\n" + .'- If you provide a ClientToken that has been used before but with different request parameters, NAS returns the IdempotentParameterMismatch error code.'."\n" + .'> The SignatureNonce, Timestamp, and Signature parameters must change on each retry. This is because NAS uses SignatureNonce to prevent replay attacks and Timestamp to mark the time of each request. Therefore, a new request must provide different SignatureNonce and Timestamp values, which also changes the Signature value.'."\n" + ."\n" + .'- After the ClientToken parameter is added: '."\n" + .' + If the response is HTTP 200, the retry returns the same result as the previous request without affecting your server-side state.'."\n" + .' + If the response is HTTP 4xx and the error message does not indicate a "try it later" type of message, the retry will never succeed. Troubleshoot the issue based on the error message and modify the request parameters before retrying.'."\n" + .' + If the response is HTTP 5xx, the request may have encountered a network timeout or internal server error. Resend the same request (with the same ClientToken and business request parameters) to confirm the result.'."\n" + ."\n" + .'- The ClientToken is valid for 30 days.', + 'changeSet' => [ + ['createdAt' => '2025-06-03T03:34:08.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-04-19T15:44:33.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-01-25T08:54:29.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-12-26T02:03:07.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-04-01T09:05:41.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateFileSystem'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateFileSystem', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'nas:EncryptedType', 'validationType' => 'always'], + ['conditionKey' => 'nas:FileSystemType', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/*'], + ], + ], + ], ], + ], + 'CreateFileset' => [ + 'summary' => 'Creates a fileset.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4811,46 +3926,107 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'high', + 'operationType' => 'create', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13936', - 'abilityTreeNodes' => [ - 'FEATUREnas2SBOJD', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeCode' => '55589', + 'abilityTreeNodes' => ['FEATUREnasPWYFYN', 'FEATUREnasXEQXVN'], ], 'parameters' => [ [ - 'name' => 'AccessGroupName', + 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the permission group to be deleted.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-test', - ], + '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-290w65p03ok64y*****', 'title' => ''], ], [ - 'name' => 'FileSystemType', + '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/', 'title' => ''], + ], + [ + '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, 'default' => 'false', 'example' => 'false', 'title' => ''], + ], + [ + '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, 'default' => 'false', 'example' => 'false', 'title' => ''], + ], + [ + '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' => '内部事务目录', 'title' => ''], + ], + [ + '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, 'maxLength' => 64, 'minLength' => 1, 'example' => '123e4567-e89b-12d3-a456-4266554*****', 'title' => ''], + ], + [ + 'name' => 'Quota', + 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'description' => 'The type of the file system.'."\n" - ."\n" - .'Valid values:'."\n" + 'description' => 'The quota information.'."\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', + .'> 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', 'title' => ''], + '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', 'title' => ''], ], + 'required' => false, + 'title' => '', + 'example' => '', ], ], ], @@ -4859,106 +4035,139 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '9E15E394-38A6-457A-A62A-D9797C9A****', - ], + 'RequestId' => ['description' => 'Request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], + 'FsetId' => ['description' => 'The fileset ID.'."\n", 'type' => 'string', 'example' => 'fset-1902718ea0ae****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingFileSystemPath', 'errorMessage' => 'FileSystemPath is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidFilesystemType.NotSupport', 'errorMessage' => 'This Api does not support this fileSystem type.', 'description' => 'The current interface does not support this type of file system.'], + ['errorCode' => 'InvalidFilesystemVersion.NotSupport', 'errorMessage' => 'This Api does not support this fileSystem version.', 'description' => 'This Api does not support this fileSystem version.'], + ['errorCode' => 'InvalidRequest', 'errorMessage' => 'The request is invalid.', 'description' => 'Invalid request'], + ['errorCode' => 'Quota.Invalid.Limit', 'errorMessage' => 'Quota limit is invalid.', 'description' => 'Invalid quota.'], + ['errorCode' => 'Resource.Exceed.Limit', 'errorMessage' => 'Resource exceed limit.', 'description' => 'The number of resources exceeds the limit.'], + ['errorCode' => 'Resource.Check.Fail', 'errorMessage' => 'Resource check failed.', 'description' => ''], + ['errorCode' => 'Fileset.Path.Duplicate', 'errorMessage' => 'Fileset path is duplicate.', 'description' => 'Fileset path is duplicate.'], + ['errorCode' => 'Fileset.Path.Nested', 'errorMessage' => 'Fileset path is nested.', 'description' => 'Fileset path is nested.'], + ['errorCode' => 'Fileset.Path.NotExist', 'errorMessage' => 'Fileset.Path.Not.Exist.', 'description' => 'Fileset parent directory path does not exist.'], + ['errorCode' => 'Fileset.Path.Exist', 'errorMessage' => 'Fileset already exist.', 'description' => 'Fileset path already exists.'], + ], + 403 => [ + ['errorCode' => 'OperationDenied.AlreadyExists', 'errorMessage' => 'The operation is denied due to IdirName already exists in parent path.', 'description' => ''], + ['errorCode' => 'OperationDenied.TooManyFilesets', 'errorMessage' => 'The operation is denied due to too many fileset in filesystem.', 'description' => ''], + ['errorCode' => 'OperationDenied.TooManyDepths', 'errorMessage' => 'The operation is denied due to Fileset path too deep.', 'description' => ''], + ['errorCode' => 'OperationDenied.NestedDir', 'errorMessage' => 'The operation is denied due to nested directory.', 'description' => ''], + ['errorCode' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => ''], + ['errorCode' => 'OperationDenied.FilesetNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidFileSystemPath.ParentNotFound', 'errorMessage' => 'The specified parent path does not exist.', 'description' => ''], + ['errorCode' => 'InvalidFileSystemPath.NotDirectory', 'errorMessage' => 'The specified idir parent path is not directory.', 'description' => ''], + ['errorCode' => 'InvalidFileSystemPath.InvalidCharacters', 'errorMessage' => 'The specified fileset path contains invalid characters.', 'description' => ''], + ['errorCode' => 'InvalidFilesetPath.InvalidParameter', 'errorMessage' => 'Fileset path is invalid.', 'description' => ''], + ], ], - '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', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"FsetId\\": \\"fset-1902718ea0ae****\\"\\n}","type":"json"}]', + 'title' => 'CreateFileset', + 'description' => '- CPFS使用说明'."\n" + ."\n" + .' - 仅支持CPFS 2.2.0及以上版本创建Fileset。您可以在控制台文件系统详情页面查看版本信息。'."\n" + .' - 单个CPFS文件系统最多支持创建10个Fileset。'."\n" + .' - 父目录必须是已存在的目录。'."\n" + .' - Fileset路径支持的最大深度为8层,根目录/为0层。例如,Fileset路径为/test/aaa/ccc/,则表示路径深度为3层。'."\n" + .' - 不支持Fileset中嵌套Fileset。即当父目录已指定为Fileset,其子目录不支持指定为Fileset。'."\n" + .' - Fileset最多支持100万个文件,如果文件数量超过此上限,添加新文件会返回`no space`错误信息。'."\n" + ."\n" + .'- CPFS智算版使用说明'."\n" + .' - 仅支持CPFS智算版 2.7.0及以上版本创建Fileset。您可以在控制台文件系统详情页面查看版本信息。'."\n" + .' - 单个CPFS文件系统最多支持创建500个Fileset。'."\n" + .' - Fileset路径必须为新路径,不能为已存在路径,Fileset 路径不支持重命名,不支持路径为软链接。'."\n" + .' - Fileset路径支持的最大深度为8层,根目录/为0层。例如,Fileset路径为/test/aaa/ccc/,则表示路径深度为3层。'."\n" + .' - Fileset路径为多层目录时,父目录必须是已存在的目录。'."\n" + .' - 不支持在 Fileset 中嵌套 Fileset,即当父目录已指定为Fileset,其子目录不支持指定为Fileset。一个 Fileset 路径只支持一个配额。'."\n" + .' - Fileset容量配额,最小起步10 GiB,扩容单位为1 GiB。'."\n" + .' - Fileset最多支持100亿个文件或目录,最小起步10000,扩容单位为1。'."\n" + .' - 修改目录配额时,设置的配额容量或文件数必须高于已使用容量或文件数。'."\n" + .' - 配额的统计有15分钟的延迟,当前的实际使用量15分钟之后才会生效。', + 'changeSet' => [ + ['createdAt' => '2024-10-24T08:25:57.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-05-31T02:47:38.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-04-24T07:13:54.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-10-28T08:36:25.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateFileset'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateFileset', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Fileset', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'CreateLDAPConfig' => [ + 'summary' => 'Creates LDAP configurations.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, + 'deprecated' => true, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13973', - 'abilityTreeNodes' => [ - 'FEATUREnas2SBOJD', - ], - 'autoTest' => true, + 'abilityTreeNodes' => ['FEATUREnasQ7YV89', 'FEATUREnas0GUIX5'], + 'autoTest' => false, + 'notSupportAutoTestReason' => 'cpfs1.0支持的功能,仅支持存量用户使用', 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'AccessGroupName', + 'name' => 'FileSystemId', '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', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'example' => '109c04****', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'URI', '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', - ], + 'schema' => ['description' => 'An LDAP URI.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ldap://ldap.example.example', 'title' => ''], ], [ - 'name' => 'FileSystemType', + 'name' => 'BindDN', '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', - ], - ], + 'schema' => ['description' => 'An LDAP entry.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'cn=alibaba,dc=com', 'title' => ''], + ], + [ + 'name' => 'SearchBase', + 'in' => 'query', + 'schema' => ['description' => 'An LDAP search base.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'dc=example', 'title' => ''], ], ], 'responses' => [ @@ -4966,139 +4175,254 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'ED2AE737-9D50-4CA4-B0DA-31BD610C****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '5B4511A7-C99E-4071-AA8C-32E2529D****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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", + 'errorCodes' => [], + 'staticInfo' => ['noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', 'returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5B4511A7-C99E-4071-AA8C-32E2529D****\\"\\n}","type":"json"}]', + 'title' => 'CreateLDAPConfig', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeAccessGroups' => [ - 'summary' => 'Queries permission groups.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateLDAPConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateLDAPConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'CreateLifecyclePolicy' => [ + 'summary' => 'Creates a lifecycle management policy.', + 'methods' => ['post', 'get', 'put'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'create', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '13945', - 'abilityTreeNodes' => [ - 'FEATUREnas2SBOJD', - ], + 'chargeType' => 'paid', + 'abilityTreeCode' => '13932', + 'abilityTreeNodes' => ['FEATUREnasZ6WBFV'], 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'AccessGroupName', + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '31a8e4****', 'title' => ''], + ], + [ + 'name' => 'LifecyclePolicyName', + 'in' => 'query', + 'schema' => ['description' => 'The Policy Name of the lifecycle management policy. The name must be 3 to 64 characters in length, start with an uppercase letter or lowercase letter, and can contain letters, digits, underscores (\\_), or hyphens (-).'."\n" + ."\n" + .'>This parameter is required for General-purpose NAS but not required for CPFS for Lingjun.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'lifecyclepolicy_01', 'title' => ''], + ], + [ + 'name' => 'Path', + 'in' => 'query', + 'schema' => ['description' => 'The absolute path of the directory associated with the lifecycle management policy. Only General-purpose NAS is supported.'."\n" + ."\n" + .'- General-purpose NAS supports associating only a single directory. The path must start with a forward slash (/) and must be an existing path in the mount target.'."\n" + ."\n" + .'> Only General-purpose NAS is supported. For General-purpose NAS, use Paths.N to associate multiple directories at the same time.'."\n" + .'>- Only one of Path and Paths can be specified.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '/pathway/to/folder', 'title' => ''], + ], + [ + 'name' => 'LifecycleRuleName', 'in' => 'query', 'schema' => [ - 'description' => 'The name of the permission group.'."\n" + 'description' => 'The management rule associated with the lifecycle management policy. Only General-purpose NAS is supported.'."\n" ."\n" - .'Limits:'."\n" + .'Valid values:'."\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", + .'- DEFAULT_ATIME_14: files that have not been accessed for 14 days.'."\n" + .'- DEFAULT_ATIME_30: files that have not been accessed for 30 days.'."\n" + .'- DEFAULT_ATIME_60: files that have not been accessed for 60 days.'."\n" + .'- DEFAULT_ATIME_90: files that have not been accessed for 90 days.'."\n" + .'- DEFAULT_ATIME_180: files that have not been accessed for 180 days. DEFAULT_ATIME_180 is supported only when StorageType is set to Archive.'."\n" + .'>- If an IA storage class policy has already been configured for the directory, the archive policy duration must be longer than the IA storage class policy duration.'."\n" + .'> - Only General-purpose NAS supports this parameter.', + 'enumValueTitles' => ['DEFAULT_ATIME_14' => 'files that have not been accessed for 14 days.', 'DEFAULT_ATIME_90' => 'files that have not been accessed for 90 days.', 'DEFAULT_ATIME_60' => 'files that have not been accessed for 60 days.', 'DEFAULT_ATIME_180' => 'files that have not been accessed for 180 days.', 'DEFAULT_ATIME_30' => 'files that have not been accessed for 30 days.'], 'type' => 'string', 'required' => false, - 'example' => 'DEFAULT_VPC_GROUP_NAME', + 'enum' => ['DEFAULT_ATIME_14', 'DEFAULT_ATIME_30', 'DEFAULT_ATIME_60', 'DEFAULT_ATIME_90', 'DEFAULT_ATIME_180'], + 'example' => 'DEFAULT_ATIME_14', + 'title' => '', ], ], [ - 'name' => 'PageSize', + 'name' => 'StorageType', 'in' => 'query', 'schema' => [ - 'description' => 'The number of permission groups returned per page.'."\n" + 'description' => 'The storage type.'."\n" + .'- InfrequentAccess: IA storage class.'."\n" + .'- Archive: Archive storage.'."\n" ."\n" - .'Valid values: 1 to 100.'."\n" + .'>General-purpose NAS supports InfrequentAccess and Archive. CPFS for Lingjun supports only InfrequentAccess.', + 'enumValueTitles' => ['Archive' => 'Archive storage.', 'InfrequentAccess' => 'IA storage class.'], + 'type' => 'string', + 'required' => true, + 'enum' => ['InfrequentAccess', 'Archive', 'Capacity', 'Performance'], + 'example' => 'InfrequentAccess', + 'title' => '', + ], + ], + [ + 'name' => 'Paths', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The absolute paths of directories associated with the lifecycle management policy.', + 'type' => 'array', + 'items' => ['description' => 'The absolute path of a directory associated with the lifecycle management policy.'."\n" ."\n" - .'Default value: 10.'."\n", - 'type' => 'integer', - 'format' => 'int32', + .'Multiple directories can be associated. The path must start with a forward slash (/) and must be an existing path in the mount target. Valid values of N: 1 to 10.'."\n" + .'>- This parameter is required for CPFS for Lingjun.', 'type' => 'string', 'required' => false, 'example' => '“/path1"', 'title' => ''], 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '2', - 'default' => '10', + 'example' => '"/path1", "/path2"', + 'maxItems' => 11, + 'title' => '', ], ], [ - 'name' => 'PageNumber', + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The description of the lifecycle policy.'."\n" + ."\n" + .'Format:'."\n" + .'The description must be 3 to 64 characters in length, start with a letter, and can contain letters, digits, underscores (\\_), or hyphens (-).'."\n" + .'>Only CPFS for Lingjun is supported.', 'type' => 'string', 'example' => '描述', 'required' => false], + ], + [ + 'name' => 'LifecyclePolicyType', 'in' => 'query', 'schema' => [ - 'description' => 'The page number.'."\n" - ."\n" - .'Pages start from page 1. Default value: 1.'."\n", - 'type' => 'integer', - 'format' => 'int32', + 'title' => '', + 'description' => 'The policy type.'."\n" + .'- Auto (default): automatic execution.'."\n" + .'- OnDemand: on-demand execution.', + 'enumValueTitles' => ['Auto' => 'automatic execution.', 'OnDemand' => 'on-demand execution.'], + 'type' => 'string', + 'example' => 'Auto', + 'default' => 'Auto', + 'enum' => ['Auto', 'OnDemand'], 'required' => false, - 'minimum' => '1', - 'example' => '1', ], ], [ - 'name' => 'UseUTCDateTime', + 'name' => 'TransitRules', 'in' => 'query', + 'allowEmptyValue' => false, + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Specifies whether the time to return is displayed in UTC.'."\n" - ."\n" - .'Valid values:'."\n" + 'title' => '', + 'description' => 'The file data transit rules. A maximum of one rule can be configured.'."\n" ."\n" - .'* true (default): The time is displayed in UTC.'."\n" - .'* false: The time is not displayed in UTC.'."\n", - 'type' => 'boolean', + .'>Supported only when LifecyclePolicyType is set to Auto for CPFS for Lingjun file systems.', + 'type' => 'array', + 'items' => [ + 'title' => '', + 'description' => 'The file data transit rule. A maximum of one rule can be configured.'."\n" + .'>Supported only when LifecyclePolicyType is set to Auto for CPFS for Lingjun file systems.', + 'type' => 'object', + 'properties' => [ + 'Attribute' => [ + 'title' => '', + 'description' => 'The rule attribute.'."\n" + ."\n" + .'Valid values:'."\n" + .'- Atime: the access time of the file.', + 'enumValueTitles' => ['Atime' => 'the access time of the file.'], + 'type' => 'string', + 'example' => 'Atime', + 'enum' => ['Atime'], + 'required' => false, + ], + 'Threshold' => ['title' => '', 'description' => 'The rule threshold.'."\n" + ."\n" + .'Valid values:'."\n" + .'- When Attribute is set to Atime, the value indicates the number of days since the file was last accessed. Valid values: 0 to 365.', 'type' => 'string', 'example' => '3', 'required' => false], + ], + 'required' => false, + 'example' => '', + ], 'required' => false, - 'minimum' => '1', - 'example' => 'true', - 'default' => 'true', + 'maxItems' => 1, + 'example' => '', ], ], [ - 'name' => 'FileSystemType', + 'name' => 'RetrieveRules', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The type of the file system.'."\n" - ."\n" - .'Valid values:'."\n" + 'title' => '', + 'description' => 'The file data retrieval rules. A maximum of one rule can be configured.'."\n" + .'>Only CPFS for Lingjun file systems are supported.'."\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', + .'>When LifecyclePolicyType is set to OnDemand, at least one of TransitRules or RetrieveRules must be specified.', + 'type' => 'array', + 'items' => [ + 'title' => '', + 'description' => 'The file data retrieval rule. A maximum of one rule can be configured.', + 'type' => 'object', + 'properties' => [ + 'Attribute' => [ + 'title' => '', + 'description' => 'The rule attribute. Valid values:'."\n" + .'- RetrieveType: the retrieval method.', + 'enumValueTitles' => ['RetrieveType' => 'the retrieval method.'], + 'type' => 'string', + 'example' => 'RetrieveType', + 'enum' => ['RetrieveType'], + 'required' => false, + ], + 'Threshold' => [ + 'title' => '', + 'description' => 'The rule threshold. Valid values:'."\n" + .'- RetrieveType'."\n" + .' - AfterVisit: supported when LifecyclePolicyType is set to Auto. Indicates best-effort recall on visit.'."\n" + .' - All: supported when LifecyclePolicyType is set to OnDemand. Indicates retrieving all data.', + 'enumValueTitles' => ['All' => 'retrieve all data.', 'AfterVisit' => 'best-effort recall on visit.'], + 'type' => 'string', + 'example' => 'All', + 'enum' => ['AfterVisit', 'All'], + 'required' => false, + ], + ], + 'required' => false, + 'example' => '', ], + 'required' => false, + 'maxItems' => 1, + 'example' => '', ], ], ], @@ -5107,117 +4431,79 @@ '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', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', 'title' => ''], + 'Success' => ['description' => 'The request status.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: The request was successful.'."\n" + .'- false: The request failed.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'LifecyclePolicyId' => ['title' => '', 'description' => 'The ID of the lifecycle policy.', 'type' => 'string', 'example' => 'lsp-bp1234567890ab****'], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationDenied.FileSystemNotSupportedForLifecycle', 'errorMessage' => 'The file system does not support lifecycle.', 'description' => 'The file system does not support lifecycle.'], + ['errorCode' => 'OperationDenied.EncryptedFileSystemNotSupportedForLifecycle', 'errorMessage' => 'The encrypted file system does not support lifecycle.', 'description' => 'The encrypted file system does not support lifecycle.'], + ['errorCode' => 'OperationDenied.LifecyclePolicyCountLimitExceeded', 'errorMessage' => 'The maximum number of LifecyclePolicies is exceeded.', 'description' => 'The maximum number of LifecyclePolicies is exceeded.'], + ['errorCode' => 'InvalidLifecyclePolicy.AlreadyExist', 'errorMessage' => 'The specified LifecyclePolicy already exists.', 'description' => 'The specified LifecyclePolicy already exists.'], + ['errorCode' => 'InvalidParameter.PathsNumberExceed', 'errorMessage' => 'The maximum number of Path.N for this operation is 10.', 'description' => '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.', 'description' => 'The API operation does not support the file system type.'], + ['errorCode' => 'InvalidParameter.PathOrPaths', 'errorMessage' => 'Either Path or Paths.N must be specified.', 'description' => 'Either Path or Paths.N must be specified.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'Lifecycle.Count.Exceeded', 'errorMessage' => 'The lifecycle policy count exceeds the max limit per type per filesystem.', 'description' => 'Lifecycle policy exceeds limit.'], + ], + 403 => [ + ['errorCode' => 'OperationDenied.NotSupportPaths.N', 'errorMessage' => 'Your request does not meet the gray condition. The Paths.N parameter is not supported.', 'description' => '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.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidParameter.PathNotExist', 'errorMessage' => 'The specified path does not exist.', 'description' => 'The specified path does not exist.'], + ], ], - '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', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\",\\n \\"Success\\": true,\\n \\"LifecyclePolicyId\\": \\"lsp-bp1234567890ab****\\"\\n}","type":"json"}]', + 'title' => 'Create a lifecycle management policy', + 'description' => '- Only General-purpose NAS file systems and CPFS for Lingjun support creating lifecycle management policies.'."\n" + .'- Each CPFS for Lingjun file system supports a maximum of 10 Auto-type and 100 OnDemand-type lifecycle management policies.'."\n" + .'- A maximum of 20 lifecycle management policies can be created for General-purpose NAS in each region.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateAccessRule' => [ - 'summary' => 'Creates a rule for a permission group.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2025-05-08T06:05:41.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-03-19T01:52:49.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-03-25T10:51:46.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-04-08T08:36:16.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateLifecyclePolicy'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateLifecyclePolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'LifecyclePolicy', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], + ], + 'CreateLifecycleRetrieveJob' => [ + 'summary' => 'Creates a data retrieval task.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5227,139 +4513,138 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'create', - 'riskType' => 'high', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13928', - 'abilityTreeNodes' => [ - 'FEATUREnas2SBOJD', - ], + 'abilityTreeCode' => '19616', + 'abilityTreeNodes' => ['FEATUREnasPWYFYN'], 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'AccessGroupName', + 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the permission group.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-test', - ], + 'schema' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '31a8e4****', 'title' => ''], ], [ - 'name' => 'SourceCidrIp', + 'name' => 'Paths', 'in' => 'query', + 'style' => 'repeatList', '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" + 'description' => 'The list of directories or file paths to retrieve. You can specify up to 10 paths.', + 'type' => 'array', + 'items' => ['description' => 'The directory or file to retrieve.'."\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', + .'The path must start with a forward slash (/) and must be an existing path in the mount target.', 'type' => 'string', 'required' => false, 'example' => '/pathway/doc1', 'title' => ''], + 'required' => true, + 'example' => 'Paths.1=/pathway/doc1,Paths.2=/pathway/doc2', + 'maxItems' => 11, + 'title' => '', ], ], [ - 'name' => 'RWAccessType', + 'name' => 'StorageType', 'in' => 'query', + 'allowEmptyValue' => true, '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.', + 'description' => 'The storage class. Valid values:'."\n" + .'- InfrequentAccess (default): IA storage class.'."\n" + .'- Archive: Archive storage class.', + 'enumValueTitles' => ['Archive' => 'Archive storage class.', 'InfrequentAccess' => 'IA storage class.'], 'type' => 'string', + 'default' => 'InfrequentAccess', + 'enum' => ['InfrequentAccess', 'Archive'], 'required' => false, - 'example' => 'RDWR', - 'default' => 'RDWR', - 'enum' => [ - 'RDWR', - 'RDONLY', - ], + 'example' => 'InfrequentAccess', + 'title' => '', ], ], - [ - 'name' => 'UserAccessType', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ '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', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', 'title' => ''], + 'JobId' => ['description' => 'The data retrieval task ID.', 'type' => 'string', 'example' => 'lrj-nfstest-ia-160****853-hshvw', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationDenied.FileSystemNotSupportedForLifecycle', 'errorMessage' => 'The file system does not support lifecycle.', 'description' => 'The file system does not support lifecycle.'], + ['errorCode' => 'OperationDenied.EncryptedFileSystemNotSupportedForLifecycle', 'errorMessage' => 'The encrypted file system does not support lifecycle.', 'description' => 'The encrypted file system does not support lifecycle.'], + ['errorCode' => 'OperationDenied.LifecycleRetrieveJobCountLimitExceeded', 'errorMessage' => 'The maximum number of LifecycleRetrieveJobs is exceeded.', 'description' => 'The maximum number of LifecycleRetrieveJobs is exceeded.'], + ], + 404 => [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidParameter.PathNotExist', 'errorMessage' => 'The specified path does not exist.', 'description' => 'The specified path does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\",\\n \\"JobId\\": \\"lrj-nfstest-ia-160****853-hshvw\\"\\n}","type":"json"}]', + 'title' => 'Create a data retrieval task', + 'description' => '- Only General-purpose NAS file systems support this feature.'."\n" + .'- Each Alibaba Cloud account can have up to 20 running data retrieval tasks in the same region.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-03-25T11:38:02.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-04-08T08:36:16.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateLifecycleRetrieveJob'], + ], + ], + 'ramActions' => [ [ - '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', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateLifecycleRetrieveJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], ], ], + ], + ], + 'CreateLogAnalysis' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'FileSystemType', + '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 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', - ], - ], + 'schema' => ['description' => 'The region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Ipv6SourceCidrIp', + 'name' => 'FileSystemId', '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::***', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '174494xxxx', 'title' => ''], ], ], 'responses' => [ @@ -5367,120 +4652,149 @@ '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', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '5B4511A7-C99E-4071-AA8C-32E2529DA963', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + ['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.', 'description' => '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.', 'description' => 'The API operation does not support the file system type.'], + ], + 404 => [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], ], ], - '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', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'CreateLogAnalysis', + 'summary' => 'Dumps the logs of a General-purpose NAS file system to Simple Log Service.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteAccessRule' => [ - 'summary' => 'Deletes a rule from a permission group.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2021-04-01T09:05:41.000Z', 'description' => 'OpenAPI offline'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLogAnalysis'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateLogAnalysis', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], ], + '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":""}]', + ], + 'CreateMountTarget' => [ + 'summary' => 'Creates a mount target.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'high', + 'operationType' => 'create', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13937', - 'abilityTreeNodes' => [ - 'FEATUREnas2SBOJD', - ], - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', + 'abilityTreeCode' => '13934', + 'abilityTreeNodes' => ['FEATUREnasOIBEFL'], ], 'parameters' => [ [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => ['description' => 'The file system ID.'."\n" + ."\n" + .'- General-purpose NAS: 31a8e4\\*\\*\\*\\*.'."\n" + ."\n" + .'- Extreme NAS: The ID must start with `extreme-`, such as extreme-0015\\*\\*\\*\\*.'."\n" + ."\n" + .'- Cloud Parallel File Storage (CPFS): The ID must start with `cpfs-`, such as cpfs-125487\\*\\*\\*\\*.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '174494****', 'title' => ''], + ], + [ 'name' => 'AccessGroupName', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the permission group.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-test', - ], + 'schema' => ['description' => 'The name of the permission group.'."\n" + ."\n" + .'This parameter is required if the file system is a General-purpose NAS or Extreme NAS file system.'."\n" + ."\n" + .'Default permission group: DEFAULT_VPC_GROUP_NAME (the default permission group for VPCs).', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'vpc-test', 'title' => ''], ], [ - 'name' => 'AccessRuleId', + 'name' => 'NetworkType', 'in' => 'query', 'schema' => [ - 'description' => 'The rule ID.'."\n", + 'description' => 'The network type of the mount target. Set the value to **Vpc**, which indicates a virtual private cloud (VPC).', + 'enumValueTitles' => ['Vpc' => 'VPC.', 'vpc' => 'VPC.', 'VPC' => 'VPC.'], 'type' => 'string', 'required' => true, 'docRequired' => true, - 'example' => '1', + 'enum' => ['Vpc', 'vpc', 'VPC'], + 'example' => 'Vpc', + 'title' => '', ], ], [ - 'name' => 'FileSystemType', + 'name' => 'VpcId', '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', - ], - ], + 'schema' => ['description' => 'The VPC ID.'."\n" + ."\n" + .'This parameter is required and valid only when the network type is VPC.'."\n" + .'For example:'."\n" + .'If NetworkType is set to VPC, VpcId is required.', 'type' => 'string', 'required' => false, 'example' => 'vpc-2zesj9afh3y518k9o****', 'title' => ''], + ], + [ + 'name' => 'VSwitchId', + 'in' => 'query', + 'schema' => ['description' => 'The vSwitch ID.'."\n" + ."\n" + .'This parameter is required and valid only when the network type is VPC.'."\n" + .'For example:'."\n" + .'If NetworkType is set to VPC, VSwitchId is required.', 'type' => 'string', 'required' => false, 'example' => 'vsw-2zevmwkwyztjuoffg****', 'title' => ''], + ], + [ + 'name' => 'SecurityGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The security group ID.', 'type' => 'string', 'required' => false, 'example' => 'sg-bp1fg655nh68xyz9****', 'title' => ''], + ], + [ + 'name' => 'EnableIpv6', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to create an IPv6 mount target.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: creates an IPv6 mount target.'."\n" + .'- false (default): does not create an IPv6 mount target.'."\n" + ."\n" + .'> IPv6 is supported only by Extreme NAS file systems in all regions in the Chinese mainland. The file system must have IPv6 enabled.', 'type' => 'boolean', 'required' => false, 'default' => 'false', 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to check for existing mount targets. Only CPFS file systems are supported.'."\n" + ."\n" + .'A dry run checks parameter validity and inventory without actually creating a mount target or incurring fees.'."\n" + ."\n" + .'- true: sends a dry run request without creating a mount target. The check items include required parameters, request format, business limits, and CPFS inventory. If the check fails, the corresponding error is returned. If the check passes, `200 HttpCode` is returned, but `MountTargetDomain` is empty.'."\n" + .'- false (default): sends a normal request. After the check passes, a mount target is created.', 'type' => 'boolean', 'required' => false, 'docRequired' => false, 'default' => 'false', 'example' => 'false', 'title' => ''], ], ], 'responses' => [ @@ -5488,473 +4802,746 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5B4511A7-C99E-4071-AA8C-32E2529D****', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '70EACC9C-D07A-4A34-ADA4-77506C42****', 'title' => ''], + 'MountTargetDomain' => ['description' => 'The IPv4 mount target.', 'type' => 'string', 'example' => '174494b666-x****.cn-hangzhou.nas.aliyuncs.com', 'title' => ''], + 'MountTargetExtra' => [ + 'description' => 'The mount target information.', + 'type' => 'object', + 'properties' => [ + 'DualStackMountTargetDomain' => ['description' => 'The dual-stack mount target that supports both IPv4 and IPv6.', 'type' => 'string', 'example' => '174494b666-x****.dualstack.cn-hangzhou.nas.aliyuncs.com', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 202 => [ + ['errorCode' => 'RequestAccepted', 'errorMessage' => 'The request has been accepted by the server.', 'description' => 'The request has been accepted by the server.'], + ], + 400 => [ + ['errorCode' => 'InvalidFileSystem.NotsupportedIPv6', 'errorMessage' => 'The file system does not support IPv6.', 'description' => '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.', 'description' => ''], + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The same client token was passed in to different parameters.', 'description' => '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.', 'description' => '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.', 'description' => ''], + ['errorCode' => 'InvalidParameter.ConflictVpcCidr', 'errorMessage' => 'The specified VPC CIDR conflicts with the server.', 'description' => 'The specified VPC CIDR conflicts with the server.'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'The request is validated with DryRun flag set.', 'description' => '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.', 'description' => '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.', 'description' => 'The operation is not permitted when the status is processing.'], + ['errorCode' => 'InvalidRamRole.NotExist', 'errorMessage' => 'The specified RAM role does not exist.', 'description' => 'The specified RAM role does not exist.'], + ['errorCode' => 'InvalidRamRole.NoPermission', 'errorMessage' => 'The specified RAM role does not have sufficient permission.', 'description' => 'The specified RAM role does not have sufficient permission.'], + ['errorCode' => 'InvalidMountTarget.AlreadyExisted', 'errorMessage' => 'The specified mount target already exists.', 'description' => 'The specified mount target already exists.'], + ['errorCode' => 'Resource.OutOfStock', 'errorMessage' => 'The inventory of the specified zone is insufficient.', 'description' => '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.', 'description' => 'The maximum number of mount target in the specified file system is exceeded.'], + ], + [ + ['errorCode' => 'InvalidParameter.VswNotFound', 'errorMessage' => 'The specified VSwitch does not exist.', 'description' => ''], + ['errorCode' => 'InvalidParameter.VpcNotFound', 'errorMessage' => 'The specified VPC does not exist.', 'description' => 'The specified VPC does not exist.'], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ], ], - '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", + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'Create a mount target', + 'description' => '- When you call the CreateMountTarget operation to create a mount target, some resources are generated asynchronously. After the CreateMountTarget operation succeeds, first invoke the DescribeMountTargets operation to query the mount target status. Execute the file system mount operation only after the mount target status changes to **Active**. Otherwise, the mount operation may fail.'."\n" + .'- Invoking this operation triggers the automatic creation of the service-linked role required for the operation. For more information, see [Manage the service-linked role for NAS](~~208530~~).', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyAccessRule' => [ - 'summary' => 'Modifies a rule in a permission group.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-09-25T02:15:16.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-04-01T09:05:41.000Z', 'description' => 'OpenAPI offline'], + ['createdAt' => '2021-04-01T09:05:41.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateMountTarget'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateMountTarget', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:Vpc', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ], + ], + ], ], + ], + 'CreateProtocolMountTarget' => [ + 'summary' => 'Creates an export directory for a protocol service.', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'high', + 'operationType' => 'create', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13974', - 'abilityTreeNodes' => [ - 'FEATUREnas2SBOJD', - ], + 'abilityTreeCode' => '124954', + 'abilityTreeNodes' => ['FEATUREnasQ7YV89', 'FEATUREnas0GUIX5'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'AccessGroupName', + 'name' => 'ProtocolServiceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the permission group.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-test', - ], + 'schema' => ['description' => 'The ID of the protocol service.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ptc-197ed6a00f2b****', 'title' => ''], ], [ - 'name' => 'AccessRuleId', + 'name' => 'FileSystemId', 'in' => 'query', 'schema' => [ - 'description' => 'The rule ID.'."\n", + 'description' => 'The ID of the file system.', 'type' => 'string', 'required' => true, 'docRequired' => true, - 'example' => '1', + 'enum' => [], + 'example' => 'cpfs-099394bd928c****', + 'title' => '', ], ], [ - 'name' => 'SourceCidrIp', + 'name' => 'VpcId', '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.**.**', - ], + 'allowEmptyValue' => true, + 'schema' => ['description' => 'The ID of the VPC for the protocol service export.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'vpc-2vct297b8157bth9z****', 'title' => ''], ], [ - 'name' => 'RWAccessType', + 'name' => 'VSwitchId', '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', - ], - ], + 'allowEmptyValue' => true, + 'schema' => ['description' => 'The ID of the vSwitch for the protocol service export.'."\n" + ."\n" + .'If the storage redundancy type of the file system is not zone-redundant storage (ZRS), this parameter is required when VpcId is specified.'."\n" + .'> The vSwitch must be in the same zone as the target CPFS file system.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'vsw-2vc3c2lybvdllxyq4****', 'title' => ''], ], [ - 'name' => 'UserAccessType', + 'name' => 'FsetId', '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', - ], - ], + 'schema' => ['description' => 'The ID of the fileset to export.'."\n" + ."\n" + .'Limits:'."\n" + .'- The fileset must already exist.'."\n" + .'- Only one export directory can be created for each fileset.'."\n" + .'- You must specify one and only one of FsetId and Path.', 'type' => 'string', 'required' => false, 'example' => 'fset-1902718ea0ae****', 'title' => ''], ], [ - 'name' => 'Priority', + 'name' => 'Path', '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', - ], + 'schema' => ['description' => 'The path of the CPFS directory to export.'."\n" + ."\n" + .'Limits:'."\n" + .'- The directory must already exist on the CPFS file system.'."\n" + .'- Only one export can be created for each directory.'."\n" + .'- You must specify one and only one of FsetId and Path.'."\n" + ."\n" + .'Format:'."\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 `/`.', 'type' => 'string', 'maxLength' => 1024, 'minLength' => 1, 'required' => false, 'example' => '/', 'title' => ''], ], [ - 'name' => 'FileSystemType', + 'name' => 'AccessGroupName', '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', - ], - ], + 'schema' => ['description' => 'The name of the permission group.'."\n" + ."\n" + .'Default value: DEFAULT_VPC_GROUP_NAME.', 'type' => 'string', 'default' => 'DEFAULT_VPC_GROUP_NAME', 'required' => false, 'example' => 'DEFAULT_VPC_GROUP_NAME', 'title' => ''], ], [ - 'name' => 'Ipv6SourceCidrIp', + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the protocol service export directory. This parameter is displayed as **Export Directory Name** in the console.'."\n" + ."\n" + .'Limits:'."\n" + .'- The description must be 2 to 128 characters in length and can contain letters and Chinese characters.'."\n" + .'- The description must start with a letter or a Chinese character and cannot start with `http://` or `https://`.'."\n" + .'- The description can contain digits, colons (:), underscores (_), and hyphens (-).', 'type' => 'string', 'required' => false, 'example' => '此导出目录的描述', 'title' => ''], + ], + [ + '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 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 RequestId of the API request as the ClientToken. The RequestId may differ for each API request.', 'type' => 'string', 'maxLength' => 64, 'minLength' => 1, 'required' => false, 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run for this request. A dry run checks parameter validity, dependencies, and other conditions without actually creating the instance or incurring charges.'."\n" + ."\n" + .'Valid values:'."\n" + .'- true: sends a dry run request without creating the export directory. The dry run checks whether required parameters are specified, whether the request format is valid, and whether business limit dependencies are met. If the check fails, the corresponding error is returned. If the check succeeds, HTTP status code 200 is returned, but ExportId is empty.'."\n" + ."\n" + .'- false (default): sends a normal request. After the check succeeds, the instance is created.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'VSwitchIds', 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', '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" + 'title' => '', + 'description' => 'The list of vSwitch IDs for the protocol service export.', + 'type' => 'array', + 'items' => ['title' => '', 'description' => 'The list of vSwitch IDs for the protocol service export.'."\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', + .'If the storage redundancy type of the file system is zone-redundant storage (ZRS), and VpcId is specified, you must specify vSwitch IDs in three different zones within the VPC.', 'type' => 'string', 'required' => false, 'example' => 'vsw-123xxx'], 'required' => false, - 'example' => 'fe80::3d4a:80fd:f05d:****', + 'maxItems' => 3, + 'minItems' => 0, + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '6299428C-3861-435D-AE54-9B330A00****', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], + 'ExportId' => ['description' => 'The ID of the protocol service export directory.', 'type' => 'string', 'example' => 'exp-19abf5beab8d****', 'title' => ''], ], - 'description' => '', + 'example' => '', ], ], ], '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.', + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingProtocolServiceId', 'errorMessage' => 'ProtocolServiceId is mandatory for this action.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Instance.IncorrectStatus', 'errorMessage' => 'The specified instance is in an incorrect status.', 'description' => ''], + ['errorCode' => 'InvalidVSwitchId.IpShortage', 'errorMessage' => 'The specified vswitch ip shortage.', 'description' => ''], + ['errorCode' => 'InvalidFset.InUse', 'errorMessage' => 'Fset already used by other export.', 'description' => ''], + ['errorCode' => 'MntPathConflict.InvalidParam', 'errorMessage' => 'FilesetId and Path must and can only be specified one.', 'description' => ''], + ['errorCode' => 'OperationDenied.TooManyDepth', 'errorMessage' => 'The operation is denied due to Fsets path too deep.', 'description' => ''], + ['errorCode' => 'OperationDenied.InvalidPtcStatus', 'errorMessage' => 'The operation is denied due to invalid protocol service status.', 'description' => ''], + ['errorCode' => 'OperationDenied.InvalidState', 'errorMessage' => 'The operation is denied due to invalid file system state.', 'description' => ''], + ['errorCode' => 'OperationDenied.CrossVPCExceedLimit', 'errorMessage' => 'Cross vpc mount exceed limit.', 'description' => ''], + ['errorCode' => 'OperationDenied.NoMountTargetQuota', 'errorMessage' => 'No mount target quota on this protocol service.', 'description' => ''], + ['errorCode' => 'OperationDenied.NotSupported', 'errorMessage' => 'The operation is denied due to not supported.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidProtocolService.NotFound', 'errorMessage' => 'The specified protocol service does not exist.', 'description' => ''], + ['errorCode' => 'InvalidVpcId.ConflictVpcCidr', 'errorMessage' => 'Vpc cidr conflict with file system', 'description' => ''], + ['errorCode' => 'InvalidFsetId.NotFound', 'errorMessage' => 'The specified fileset ID does not exist.', 'description' => ''], + ['errorCode' => 'Fset.IncorrectStatus', 'errorMessage' => 'The specified fset is in an incorrect status.', 'description' => ''], + ['errorCode' => 'InvalidFileSystemPath.InvalidCharacters', 'errorMessage' => 'The specified fileset path contains invalid characters.', 'description' => ''], + ['errorCode' => 'InvalidAccessGroupName.NotFound', 'errorMessage' => 'The specified access group does not exist.', 'description' => ''], + ['errorCode' => 'InvalidAccessGroupName.NotAccessRule', 'errorMessage' => 'There has no rule in access group.', 'description' => ''], + ['errorCode' => 'InvalidDescription.InvalidFormat', 'errorMessage' => 'Description format is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.VpcNotFound', 'errorMessage' => 'The specified VPC does not exist.', 'description' => 'The specified VPC does not exist.'], + ['errorCode' => 'InvalidParameter.VswNotFound', 'errorMessage' => 'The specified VSwitch does not exist.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"ExportId\\": \\"exp-19abf5beab8d****\\"\\n}","type":"json"}]', + 'title' => 'Create a protocol service export directory', + 'description' => '- This operation is applicable only to Cloud Parallel File Storage (CPFS) file systems.'."\n" + ."\n" + .'- Before you begin'."\n" + .' '."\n" + .' The CPFS file system must be in the Running state and a protocol service must be created.'."\n" + .'- Other information'."\n" + .' - The VPC CIDR block of the protocol service export cannot overlap with the VPC CIDR block of the file system.'."\n" + .' - The VPC CIDR blocks of multiple exports on the same protocol service cannot overlap with each other.'."\n" + .' - You can create up to 10 export directories for a single protocol service.'."\n" + .' - Creating a protocol service export directory consumes IP addresses from the specified vSwitch (up to 32 IP addresses). Make sure that the target vSwitch has sufficient IP address resources.', + 'changeSet' => [ + ['createdAt' => '2022-04-28T09:25:04.000Z', 'description' => 'OpenAPI offline'], + ['createdAt' => '2022-04-28T09:25:04.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateProtocolMountTarget'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateProtocolMountTarget', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], ], ], ], - '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', - ], + 'CreateProtocolService' => [ + 'summary' => 'Creates a protocol service for a Cloud Parallel File Storage (CPFS) file system. The creation process takes approximately 5 to 10 minutes.', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'create', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '13946', - 'abilityTreeNodes' => [ - 'FEATUREnas2SBOJD', - ], + 'chargeType' => 'paid', + 'abilityTreeCode' => '124566', + 'abilityTreeNodes' => ['FEATUREnas155MFA'], 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'AccessGroupName', + 'name' => 'FileSystemId', 'in' => 'query', 'schema' => [ - 'description' => 'The name of the permission group.'."\n", + 'description' => 'The file system ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, - 'example' => 'vpc-test', + 'enum' => [], + 'example' => 'cpfs-099394bd928c****', + 'title' => '', ], ], [ - 'name' => 'AccessRuleId', + 'name' => 'ProtocolSpec', 'in' => 'query', 'schema' => [ - 'description' => 'The rule ID.'."\n", + 'description' => 'The specification of the protocol service.'."\n" + ."\n" + .'Valid values: General (default).', + 'enumValueTitles' => ['CL2' => 'Cache L2.', 'General' => 'General.', 'CL1' => 'Cache L1.'], 'type' => 'string', - 'required' => false, - 'example' => '1', + 'required' => true, + 'docRequired' => true, + 'enum' => ['CL2', 'General', 'CL1'], + 'example' => 'General', + 'title' => '', ], ], [ - 'name' => 'PageSize', + 'name' => 'Throughput', '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', - ], + 'schema' => ['description' => 'The bandwidth of the protocol service.'."\n" + ."\n" + .'Unit: MB/s.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '8000', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'ProtocolType', 'in' => 'query', + 'schema' => ['description' => 'The protocol type of the protocol service.'."\n" + ."\n" + .'Valid values: NFS (default). Only NFSv3 access is supported.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'NFS', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the protocol service. This value is displayed as "Protocol service name" 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 or Chinese character and cannot start with `http://` or `https://`.'."\n" + .'- The description can contain digits, colons (:), underscores (_), and hyphens (-).', 'type' => 'string', 'required' => false, 'example' => '此协议服务的描述。', 'title' => ''], + ], + [ + 'name' => 'VpcId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => 'The VPC ID of the protocol service. The VPC must be the same as the VPC of the file system.'."\n" + ."\n" + .'If the storage redundancy type of the file system is zone-redundant storage (ZRS), do not set this parameter. Otherwise, this parameter is required.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'vpc-2vct297b8157bth9z****', 'title' => ''], + ], + [ + 'name' => 'VSwitchId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => 'The vSwitch ID of the protocol service.'."\n" + ."\n" + .'If the storage redundancy type of the file system is zone-redundant storage (ZRS), do not set this parameter. Otherwise, this parameter is required.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'vsw-2vc3c2lybvdllxyq4****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run for this request.'."\n" + ."\n" + .'A dry run checks parameter validity and dependencies without actually creating the instance or incurring charges.'."\n" + ."\n" + .'Valid values:'."\n" + .'- true: Sends a check request without creating the protocol service. The check items include whether required parameters are specified, the request format, and business limit dependencies. If the check fails, the corresponding error is returned. If the check passes, HTTP status code 200 is returned, but ProtocolServiceId is empty.'."\n" + .'- false (default): Sends a normal request. After the check passes, the instance is directly created.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + '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 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 RequestId of the API request as the ClientToken. The RequestId may differ for each API request.', 'type' => 'string', 'maxLength' => 64, 'minLength' => 1, 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ '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', + 'title' => '', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****'], + 'ProtocolServiceId' => ['description' => 'The protocol service cluster ID.', 'type' => 'string', 'example' => 'ptc-197ed6a00f2b****', 'title' => ''], + ], + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingVpcId', 'errorMessage' => 'VpcId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingVSwitchId', 'errorMessage' => 'VSwitchId is mandatory for this action.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'InvalidProtocolSpec.NotSupported', 'errorMessage' => 'The specified protocol spec does not supported.', 'description' => ''], + ['errorCode' => 'InvalidNetworkType.NotSupported', 'errorMessage' => 'The specified network type does not supported.', 'description' => ''], + ['errorCode' => 'Instance.IncorrectStatus', 'errorMessage' => 'The specified instance is in an incorrect status.', 'description' => ''], + ['errorCode' => 'OperationDenied.ProtocolServiceExceedLimit', 'errorMessage' => 'The protocol service amount exceed file system limit.', 'description' => ''], + ['errorCode' => 'PermissionDenied.CapacityTooLow', 'errorMessage' => 'Capacity of file system too low to subscribe protocol service.', 'description' => ''], + ['errorCode' => 'PermissionDenied.ThroughputInvalid', 'errorMessage' => 'Standard protocol service should not specified throughput.', 'description' => ''], + ['errorCode' => 'PermissionDenied.ThroughputTooSmall', 'errorMessage' => 'Throughput of protocol service too small.', 'description' => ''], + ['errorCode' => 'PermissionDenied.ThroughputExceed', 'errorMessage' => 'Throughput of protocol service must less than throughput of file system.', 'description' => ''], + ['errorCode' => 'InvalidProtocolType.NotSupported', 'errorMessage' => 'The specified protocol type does not supported.', 'description' => ''], + ['errorCode' => 'InvalidVSwitchId.IpShortage', 'errorMessage' => 'The specified vswitch ip shortage.', 'description' => ''], + ['errorCode' => 'InvalidFset.InUse', 'errorMessage' => 'Fset already used by other export.', 'description' => ''], + ['errorCode' => 'InvalidFileSystemPath.InvalidCharacters', 'errorMessage' => 'The specified filesystem path contains invalid characters.', 'description' => ''], + ['errorCode' => 'MntPathConflict.InvalidParam', 'errorMessage' => 'FilesetId and Path must and can only be specified one.', 'description' => ''], + ['errorCode' => 'OperationDenied.TooManyDepth', 'errorMessage' => 'The operation is denied due to Fsets path too deep.', 'description' => ''], + ['errorCode' => 'OperationDenied.InvalidState', 'errorMessage' => 'The operation is denied due to invalid file system state.', 'description' => ''], + ['errorCode' => 'OperationDenied.NoProtocolServiceQuota', 'errorMessage' => 'No protocol service quota.', 'description' => ''], + ['errorCode' => 'OperationDenied.NotSupported', 'errorMessage' => 'The operation is denied due to not supported.', 'description' => ''], + ['errorCode' => 'PermissionDenied.CLThroughputInvalid', 'errorMessage' => 'Throughput of caching protocol service is invalid.', 'description' => ''], + ['errorCode' => 'InvalidVpcId.CrossVpcNotSupport.', 'errorMessage' => 'Cross VPC not support.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidParameter.VpcNotFound', 'errorMessage' => 'The specified VPC does not exist.', 'description' => 'The specified VPC does not exist.'], + ['errorCode' => 'InvalidParameter.VswNotFound', 'errorMessage' => 'The specified VSwitch does not exist.', 'description' => ''], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidDescription.InvalidFormat', 'errorMessage' => 'Description format is invalid.', 'description' => ''], + ['errorCode' => 'InvalidVpcId.ConflictVpcCidr', 'errorMessage' => 'Vpc cidr conflict with file system', 'description' => ''], + ['errorCode' => 'InvalidAccessGroupName.NotFound', 'errorMessage' => 'The specified access group does not exist.', 'description' => ''], + ['errorCode' => 'InvalidAccessGroupName.NotAccessRule', 'errorMessage' => 'There has no rule in access group.', 'description' => ''], + ['errorCode' => 'OperationDenied.NoStock', 'errorMessage' => 'The operation is denied due to no stock.', 'description' => ''], + ['errorCode' => 'PathNotExistInFileSystem.InvalidParam', 'errorMessage' => 'Given path does not exist in file system.', 'description' => ''], + ['errorCode' => 'InvalidFsetId.NotFound', 'errorMessage' => 'The specified Fileset ID does not exist.', 'description' => ''], + ['errorCode' => 'InvalidParameter.VpcVswitchMismatch', 'errorMessage' => 'Given vSwitch mismatch with given VPC.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"ProtocolServiceId\\": \\"ptc-197ed6a00f2b****\\"\\n}","type":"json"}]', + 'title' => 'Create a protocol service', + 'description' => '- This operation is applicable only to CPFS file systems.'."\n" + .'- Only CPFS 2.3.0 and later support protocol services. You can call the [DescribeFileSystems](~~163314~~) operation to query the version of the file system.'."\n" + ."\n" + .'- Protocol service specifications.'."\n" + ."\n" + .' Protocol services include two Protocol Types: General and Cache. Compared with the General type, the Cache type provides hot spot data caching. When the cache is hit, the bandwidth of the Cache type protocol service can exceed the bandwidth of the CPFS file system and reach the maximum bandwidth configured for the protocol service.'."\n" + .' '."\n" + .' - General: Provides NFS protocol access and [folder-level mount targets](~~427175~~) for CPFS. You do not need to configure a POSIX client cluster management. This feature is free of charge.'."\n" + .' - Cache: Provides server-side in-memory caching based on the LRU policy in addition to the General type capabilities. When data is cached in memory, CPFS can provide higher internal network bandwidth. The Cache type protocol service is available in two specifications: Cache L1 and Cache L2, which differ in internal network bandwidth and memory cache size.'."\n" + ."\n" + .' > The Cache type protocol service is a paid service and is in invitational preview. For information about the billing of the Cache type protocol service, see [Billable items](~~111858~~). If you have any feedback or questions, join the DingTalk user group (group ID: 31045006299) to communicate with CPFS engineers.'."\n" + ."\n" + .'- Protocol type.'."\n" + ."\n" + .' Only NFSv3 is supported.'."\n" + ."\n" + .'- Prerequisites.'."\n" + ."\n" + .' The CPFS file system must be created and in the Running state.'."\n" + ."\n" + .'- Other information.'."\n" + ."\n" + .' - Only one protocol service can be created for each CPFS file system.'."\n" + ."\n" + .' - Creating a protocol service consumes IP addresses on the specified vSwitch (up to 32 IP addresses). Make sure that the target vSwitch has sufficient IP address resources.', + 'changeSet' => [ + ['createdAt' => '2022-04-28T09:25:04.000Z', 'description' => 'OpenAPI offline'], + ['createdAt' => '2022-04-28T09:25:04.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateProtocolService'], + ], + ], + 'ramActions' => [ [ - 'name' => 'FileSystemType', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateProtocolService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], + ], + ], + 'CreateRecycleBinDeleteJob' => [ + 'summary' => 'Creates a task 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 file system ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], + ], + [ + 'name' => 'FileId', + 'in' => 'query', + 'schema' => ['description' => 'The FileId 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 deleted data.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '104', 'title' => ''], + ], + [ + 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['description' => 'Ensures the idempotence of the request.'."\n" + ."\n" + .'Generate a parameter value from your client to ensure that the value is unique among different requests. The value of ClientToken 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 ClientToken, the system automatically uses the RequestId of the API request as the ClientToken. The RequestId may vary for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ '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', + 'title' => '', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****'], + 'JobId' => ['description' => 'The task ID.', 'type' => 'string', 'example' => '8C****C54', 'title' => ''], ], + 'example' => '', ], ], ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingFileId', 'errorMessage' => 'FileId is mandatory for this action.', 'description' => 'FileId is mandatory for this action. '], + ['errorCode' => 'InvalidParameter.KMSKeyId.KMSUnauthorized', 'errorMessage' => 'KMS is not authorized.', 'description' => 'KMS is not authorized.'], + ['errorCode' => 'InvalidParameter.KMSKeyId.CMKNotEnabled', 'errorMessage' => 'The CMK needs to be enabled.', 'description' => 'The CMK needs to be enabled.'], + ], + 403 => [ + ['errorCode' => 'OperationDenied.Conflict', 'errorMessage' => 'The operation is in conflict with (% JobId). Please try again later.', 'description' => '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.', 'description' => 'The maximum number of running job is one. Please try again later.'], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidFileId.NotFound', 'errorMessage' => 'The specified FileId(%FileId) does not exist.', 'description' => 'The specified FileId (%FileId) does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"JobId\\": \\"8C****C54\\"\\n}","type":"json"}]', + 'title' => 'Permanently delete a file or directory from the recycle bin', + 'description' => '- Only General-purpose NAS file systems support this feature.'."\n" + .'- The recycle bin must be enabled.'."\n" + .'- Mount the file system by using NFS or SMB (mount the file system on an ECS instance in the same VPC), and then delete the target file in the mount directory to move it to the recycle bin.'."\n" + .'- When you permanently delete a directory, the contents of the directory are recursively deleted.'."\n" + .'- Only one permanent deletion task can be run at a time for a single file system. While a file or directory is being permanently deleted, you cannot initiate a new restoration or cleanup task.', + 'changeSet' => [ + ['createdAt' => '2021-06-02T07:10:56.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateRecycleBinDeleteJob'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:CreateRecycleBinDeleteJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], + ], + ], + '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****', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], + [ + '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****', 'title' => ''], + ], + ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", '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' => '', - ], - ], - ], - ], + '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', 'title' => ''], ], - 'description' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingTargetFileId', 'errorMessage' => 'TargetFileId is mandatory for this action.', 'description' => 'TargetFileId is mandatory for this action.'], + ['errorCode' => 'MissingFileId', 'errorMessage' => 'FileId is mandatory for this action.', 'description' => 'FileId is mandatory for this action. '], + ['errorCode' => 'InvalidParameter.KMSKeyId.KMSUnauthorized', 'errorMessage' => 'KMS is not authorized.', 'description' => 'KMS is not authorized.'], + ['errorCode' => 'InvalidParameter.KMSKeyId.CMKNotEnabled', 'errorMessage' => 'The CMK needs to be enabled.', 'description' => 'The CMK needs to be enabled.'], + ], + 403 => [ + ['errorCode' => 'OperationDenied.RecycleBinDisabled', 'errorMessage' => 'The operation is denied because the recycle bin is disabled.', 'description' => '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.', 'description' => '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.', 'description' => '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.', 'description' => 'The specified TargetFileId (% TargetFileId) is not directory.'], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidFileId.NotFound', 'errorMessage' => 'The specified FileId(%FileId) does not exist.', 'description' => 'The specified FileId (%FileId) does not exist.'], + ['errorCode' => 'InvalidTargetFileId.NotFound', 'errorMessage' => 'The specified TargetFileId(%TargetFileId) does not exist.', 'description' => 'The specified TargetFileId(%TargetFileId) does not exist.'], + ], ], - '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' => ' ', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"JobId\\": \\"rb-10****491ff-r-162****165400\\"\\n}","type":"json"}]', + 'title' => 'CreateRecycleBinRestoreJob', + 'description' => '- 仅通用型NAS文件系统支持该功能。'."\n" + .'- 单个文件系统一次只能执行一个文件恢复或清理任务。正在恢复文件时,无法发起新的文件恢复或清理任务。'."\n" + .'- 单个恢复任务只能恢复一个文件或目录,恢复指定目录会递归恢复目录下的所有文件。'."\n" + .'- 文件被恢复后会进行数据整理,数据整理期间读请求性能稍有下降。', + 'changeSet' => [ + ['createdAt' => '2021-06-02T07:10:56.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateRecycleBinRestoreJob'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateRecycleBinRestoreJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], + ], + 'translator' => 'manual', ], 'CreateSnapshot' => [ 'summary' => 'Creates a snapshot.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5967,9 +5554,7 @@ 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '13935', - 'abilityTreeNodes' => [ - 'FEATUREnas5QOAQE', - ], + 'abilityTreeNodes' => ['FEATUREnas5QOAQE'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], @@ -5977,66 +5562,41 @@ [ '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****', - ], + '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****', 'title' => ''], ], [ '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', - ], + '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', 'title' => ''], ], [ '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', - ], + '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', 'title' => ''], ], [ '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', - ], + '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', 'title' => ''], ], ], 'responses' => [ @@ -6044,24 +5604,16 @@ '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****', - ], + 'SnapshotId' => ['description' => 'The snapshot ID.'."\n", 'type' => 'string', 'example' => 's-extreme-snapsho****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], + '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" @@ -6076,17 +5628,32 @@ 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteSnapshot' => [ - 'summary' => 'Deletes a snapshot or cancels a snapshot that is being created.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:02.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateSnapshot'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateSnapshot', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Snapshot', 'arn' => 'acs:nas:{#regionId}:{#accountId}:snapshot/*'], + ], + ], + ], + ], + ], + 'DeleteAccessGroup' => [ + 'summary' => 'Delete an existing access group.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6098,23 +5665,33 @@ 'operationType' => 'delete', 'riskType' => 'high', 'chargeType' => 'free', - 'abilityTreeCode' => '13944', - 'abilityTreeNodes' => [ - 'FEATUREnas5QOAQE', - ], + 'abilityTreeCode' => '13936', + 'abilityTreeNodes' => ['FEATUREnas2SBOJD'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'SnapshotId', + 'name' => 'AccessGroupName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the access group to delete.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-test', 'title' => ''], + ], + [ + 'name' => 'FileSystemType', 'in' => 'query', 'schema' => [ - 'description' => 'The snapshot ID.'."\n", + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + .'- standard (default): General-purpose NAS'."\n" + .'- extreme: Extreme NAS', + 'enumValueTitles' => ['standard' => 'General-purpose NAS', 'extreme' => 'Extreme NAS'], 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 's-extreme-snapsho****', + 'required' => false, + 'default' => 'standard', + 'enum' => ['standard', 'extreme'], + 'example' => 'standard', + 'title' => '', ], ], ], @@ -6123,182 +5700,167 @@ '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****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '9E15E394-38A6-457A-A62A-D9797C9A****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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.', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9E15E394-38A6-457A-A62A-D9797C9A****\\"\\n}","type":"json"}]', + 'title' => 'Delete access group', + 'description' => 'The default access group (DEFAULT\\_VPC\\_GROUP\\_NAME) cannot be deleted.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeSnapshots' => [ - 'summary' => 'Queries the information about one or more snapshots of a file system.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:02.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteAccessGroup'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteAccessGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], + ], + ], + ], ], + ], + 'DeleteAccessPoint' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', + 'operationType' => 'delete', + 'riskType' => 'high', 'chargeType' => 'free', - 'abilityTreeCode' => '13961', - 'abilityTreeNodes' => [ - 'FEATUREnas5QOAQE', - ], + 'abilityTreeCode' => '189632', + 'abilityTreeNodes' => ['FEATUREnas5IJRRZ'], '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****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'example' => '1ca404****', 'maxLength' => 64, 'minLength' => 3, 'title' => ''], ], [ - 'name' => 'SnapshotIds', + 'name' => 'AccessPointId', '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****', - ], + 'schema' => ['description' => 'The ID of the access point.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ap-ie15yd****'."\n", 'title' => ''], ], - [ - 'name' => 'SnapshotName', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The snapshot name.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', + 'title' => '', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****'], + ], + 'example' => '', ], ], + ], + 'errorCodes' => [ + 404 => [ + ['errorCode' => 'InvalidAccessPointId.NotFound', 'errorMessage' => 'The access point id does not exist.', 'description' => 'The specified APid does not exist.'], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DeleteAccessPoint', + 'summary' => 'Deletes an access point.', + '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", + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteAccessPoint'], + ], + ], + 'ramActions' => [ [ - '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', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteAccessPoint', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","type":"json"}]', + ], + 'DeleteAccessRule' => [ + 'summary' => 'Deletes a permission rule from a permission group.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Status', + '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 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', - ], - ], + 'schema' => ['description' => 'The name of the permission group.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-test', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'AccessRuleId', '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', - ], + 'schema' => ['description' => 'The ID of the permission rule.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'FileSystemType', 'in' => 'query', 'schema' => [ - 'description' => 'The page number.'."\n" + 'description' => 'The type of the file system.'."\n" ."\n" - .'Pages start from page 1. Default value: 1.'."\n", - 'type' => 'integer', - 'format' => 'int32', + .'Valid values:'."\n" + ."\n" + .'- standard (default): General-purpose NAS.'."\n" + .'- extreme: Extreme NAS.', + 'enumValueTitles' => ['standard' => 'General-purpose NAS.', 'extreme' => 'Extreme NAS.'], + 'type' => 'string', 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', + 'default' => 'standard', + 'enum' => ['standard', 'extreme'], + 'example' => 'standard', + 'title' => '', ], ], ], @@ -6307,339 +5869,148 @@ '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' => '', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5B4511A7-C99E-4071-AA8C-32E2529D****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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.', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5B4511A7-C99E-4071-AA8C-32E2529D****\\"\\n}","type":"json"}]', + 'title' => 'Delete a permission rule', + 'description' => 'Rules in the default permission group (DEFAULT_VPC_GROUP_NAME) cannot be deleted.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateAutoSnapshotPolicy' => [ - 'summary' => 'Creates an automatic snapshot policy.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-02-26T07:03:21.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteAccessRule'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteAccessRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], + ], + ], + ], ], + ], + 'DeleteAgenticSpace' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13929', - 'abilityTreeNodes' => [ - 'FEATUREnas5QOAQE', - ], - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', + 'abilityTreeCode' => '55630', + 'abilityTreeNodes' => ['FEATUREnasXEQXVN'], ], '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', + 'name' => 'FileSystemId', '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', - ], + 'schema' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], ], [ - 'name' => 'RetentionDays', + 'name' => 'AgenticSpaceId', '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', - ], + 'schema' => ['description' => 'AgenticSpace Id。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'agentic-229oypxjgpau2****', 'title' => ''], ], [ - 'name' => 'AutoSnapshotPolicyName', + 'name' => 'DryRun', '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', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run for this request.'."\n" + ."\n" + .'A dry run checks parameter validity and resource availability without actually creating or deleting instances, and incurs no fees.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: Sends a dry run request without deleting the instance. The check items include required parameters, request format, service limits, and NAS resource availability. If the check fails, the corresponding error is returned. If the check passes, HTTP status code 200 is returned, but FileSystemId is empty.'."\n" + .'- false (default): Sends a normal request and deletes the instance after the check is passed.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'FileSystemType', + 'name' => 'ClientToken', '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', - ], - ], + '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 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 RequestId of the API request as the ClientToken. The RequestId may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], '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****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => 'The FileSystemId parameter is not specified.'], + ['errorCode' => 'MissingFsetId', 'errorMessage' => 'FsetId is mandatory for this action.', 'description' => 'The Fileset ID parameter is not specified.'], + ['errorCode' => 'InvalidFilesetId.NotFound', 'errorMessage' => 'Invalid FilesetId.', 'description' => 'Fileset does not exist'], + ], + 403 => [ + ['errorCode' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => 'The conditions for this operation are not met.'], + ['errorCode' => 'OperationDenied.FilesetNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => 'The file system does not support Fileset.'], + ['errorCode' => 'InvalidOperation.DeletionProtection', 'errorMessage' => 'The operation is not allowed due to resource is protected by deletion protection.', 'description' => 'The instance has deletion protection enabled and cannot be released through the console or API.'], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidFsetId.NotFound', 'errorMessage' => 'The specified Fileset ID does not exist.', 'description' => 'The specified fileset does not exist.'], + ], + 429 => [ + ['errorCode' => 'Throttling.Api', 'errorMessage' => 'Request was denied due to api flow control.', 'description' => 'The request is throttled.'], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => 'Delete an agentic space', + 'summary' => 'Deletes an Agentic space.', + 'description' => 'Applicable to agentic file systems.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","type":"json"}]', + 'gatewayOptions' => [ + 'gatewayProtocols' => [], ], - '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', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6652,9 +6023,7 @@ 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeCode' => '13938', - 'abilityTreeNodes' => [ - 'FEATUREnas5QOAQE', - ], + 'abilityTreeNodes' => ['FEATUREnas5QOAQE'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], @@ -6662,15 +6031,9 @@ [ '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****', - ], + '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****', 'title' => ''], ], ], 'responses' => [ @@ -6678,21 +6041,17 @@ '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****', - ], + '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****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], + '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" @@ -6701,17 +6060,32 @@ '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', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:02.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteAutoSnapshotPolicy'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteAutoSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteDataFlow' => [ + 'summary' => 'Deletes a dataflow.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6720,245 +6094,341 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', + 'operationType' => 'delete', + 'riskType' => 'high', 'chargeType' => 'free', - 'abilityTreeCode' => '13975', - 'abilityTreeNodes' => [ - 'FEATUREnas5QOAQE', - ], + 'abilityTreeCode' => '49024', + 'abilityTreeNodes' => ['FEATUREnasPWYFYN'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'AutoSnapshotPolicyId', + 'name' => 'FileSystemId', '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****', - ], + '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****', 'title' => ''], ], [ - 'name' => 'AutoSnapshotPolicyName', + 'name' => 'DataFlowId', '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', - ], + 'schema' => ['description' => 'The ID of the dataflow.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'df-194433a5be31****', 'title' => ''], ], [ - 'name' => 'RepeatWeekdays', + 'name' => 'DryRun', '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', - ], + '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, 'default' => 'false', 'example' => 'false', 'title' => ''], ], [ - 'name' => 'RetentionDays', + '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, 'maxLength' => 64, 'minLength' => 1, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ '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', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingDataFlowId', 'errorMessage' => 'DataFlowId is mandatory for this action.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'OperationDenied.InvalidState', 'errorMessage' => 'The operation is not permitted when the status is processing.', 'description' => 'The operation is not permitted when the status is processing.'], + ['errorCode' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => ''], + ['errorCode' => 'OperationDenied.ConflictOperation', 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', 'description' => ''], + ['errorCode' => 'OperationDenied.DataFlowNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], + ], [ - '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', + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidDataFlow.NotFound', 'errorMessage' => 'The specified data flow does not exist.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","type":"json"}]', + 'title' => 'DeleteDataFlow', + 'description' => '- 仅CPFS 2.2.0及以上版本、智算CPFS 2.4.0及以上版本支持数据流动。您可以在控制台文件系统详情页面查看版本信息。'."\n" + .'- 仅支持删除`Running`、`Stopped`状态的数据流动。'."\n" + .'- 删除后,数据流动相关的资源会被释放,且无法恢复。如需数据流动,请您重新创建。', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:02.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-10-28T08:34:23.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteDataFlow'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteDataFlow', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], ], + 'translator' => 'manual', + ], + '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****', 'title' => ''], + ], + ], '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****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '9E15E394-38A6-457A-A62A-D9797C9A****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationDenied.LifecyclePolicyAssociated', 'errorMessage' => 'The specified FileSystem has LifecyclePolicy associated.', 'description' => 'The specified file system has a life cycle policy associated. Please delete the life cycle policy first and then delete the file system.'], + ['errorCode' => 'OperationDenied.LifecycleRecycleBinTieringJobAssociated', 'errorMessage' => 'The specified FileSystem has LifecycleRecycleBinTieringJob associated.', 'description' => ''], + ], ], - '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.', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9E15E394-38A6-457A-A62A-D9797C9A****\\"\\n}","type":"json"}]', + 'title' => 'DeleteFileSystem', + 'description' => '- 仅当文件系统的挂载点数目为0时,支持删除文件系统实例。'."\n" + .'- 当文件系统未创建生命周期策略时,支持删除文件系统实例。'."\n" + .'- 文件系统实例一旦删除,数据将不可恢复,请谨慎操作。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ApplyAutoSnapshotPolicy' => [ - 'summary' => 'Applies an automatic snapshot policy to one or more file systems.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:02.000Z', 'description' => 'Response parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteFileSystem'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteFileSystem', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'DeleteFileset' => [ + 'summary' => 'Deletes a fileset.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13918', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeCode' => '55630', + 'abilityTreeNodes' => ['FEATUREnasPWYFYN'], ], 'parameters' => [ [ - 'name' => 'AutoSnapshotPolicyId', + 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the automatic snapshot policy.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'sp-extreme-233e6****', - ], + 'schema' => ['description' => 'The file system ID.'."\n" + ."\n" + .'- CPFS: The ID must start with `cpfs-`, such as cpfs-099394bd928c****.'."\n" + ."\n" + .'- CPFS for Lingjun: The ID must start with `bmcpfs-`, such as bmcpfs-290w65p03ok64ya****.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'bmcpfs-290w65p03ok64ya****', 'title' => ''], ], [ - 'name' => 'FileSystemIds', + 'name' => 'FsetId', '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****', - ], + 'schema' => ['description' => 'The fileset ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'fset-1902718ea0ae****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run for this deletion request.'."\n" + ."\n" + .'A dry run checks parameter validity and resource availability without actually deleting the instance.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: Sends a check request without deleting the instance. The check items include whether required parameters are specified, the request format, and business limitations. If the check fails, the corresponding error is returned. If the check passes, HTTP status code 200 is returned.'."\n" + ."\n" + .'- false (default): Sends a normal request. After the check passes, the instance is directly deleted.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + '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 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 RequestId of the API request as the ClientToken. The RequestId may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingFsetId', 'errorMessage' => 'FsetId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidFilesetId.NotFound', 'errorMessage' => 'Invalid FilesetId.', 'description' => 'Fileset does not exist'], + ], + 403 => [ + ['errorCode' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => ''], + ['errorCode' => 'OperationDenied.FilesetNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], + ['errorCode' => 'InvalidOperation.DeletionProtection', 'errorMessage' => 'The operation is not allowed due to resource is protected by deletion protection.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidFsetId.NotFound', 'errorMessage' => 'The specified Fileset ID does not exist.', 'description' => ''], + ], + 429 => [ + ['errorCode' => 'Throttling.Api', 'errorMessage' => 'Request was denied due to api flow control.', 'description' => 'The request is throttled.'], + ], ], - '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', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\"\\n}","type":"json"}]', + 'title' => 'Delete a fileset', + 'description' => '- Only CPFS 2.2.0 and later and CPFS for Lingjun 2.7.0 and later support fileset deletion. After a fileset is deleted, all data in the directory is permanently deleted and cannot be recovered. Proceed with caution.'."\n" + .'- If deletion protection is enabled, disable it before you delete the fileset.'."\n" + .'- All filesets on the target file system must be in the CREATED desired state before you can perform the deletion.'."\n" + .'- Deleting a CPFS general-purpose fileset immediately releases disk space. Deleting a CPFS for Lingjun fileset gradually releases disk space. Deleted data cannot be recovered. Proceed with caution.', + 'changeSet' => [ + ['createdAt' => '2024-10-24T08:25:57.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-05-31T02:47:37.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-10-28T08:36:25.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteFileset'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteFileset', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Fileset', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], + ], + 'DeleteLDAPConfig' => [ + 'summary' => '{"summary1":""}', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, + 'deprecated' => true, 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'high', + 'operationType' => 'delete', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13920', - 'abilityTreeNodes' => [ - 'FEATUREnas5QOAQE', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeNodes' => ['FEATUREnasQ7YV89', 'FEATUREnas0GUIX5'], + 'autoTest' => false, + 'notSupportAutoTestReason' => 'cpfs1.0支持的功能,仅支持存量用户使用', + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'FileSystemIds', + 'name' => 'FileSystemId', '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****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'example' => '1ca404a348', 'title' => ''], ], ], 'responses' => [ @@ -6966,115 +6436,81 @@ '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****', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '5B4511A7-C99E-4071-AA8C-32E2529DA963', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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.', + 'errorCodes' => [], + 'staticInfo' => ['noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', 'returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5B4511A7-C99E-4071-AA8C-32E2529DA963\\"\\n}","type":"json"}]', + 'title' => '{"title1":"DeleteLDAPConfig"}', + 'description' => '# 说明'."\n" + .'本接口只支持CPFS并行文件系统。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeAutoSnapshotPolicies' => [ - 'summary' => 'Queries automatic snapshot policies.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteLDAPConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteLDAPConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'DeleteLifecyclePolicy' => [ + 'summary' => 'Deletes a lifecycle policy.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '13947', - 'abilityTreeNodes' => [ - 'FEATUREnas5QOAQE', - ], + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'paid', + 'abilityTreeCode' => '13941', + 'abilityTreeNodes' => ['FEATUREnasZ6WBFV'], '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', + 'name' => 'FileSystemId', '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', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '31a8e4****', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'LifecyclePolicyName', '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', - ], + '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', 'title' => ''], ], [ - 'name' => 'FileSystemType', + 'name' => 'LifecyclePolicyId', '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', - ], - ], + 'schema' => ['description' => 'The ID of the lifecycle policy. Required for the CPFS for Lingjun file systems.'."\n", 'type' => 'string', 'example' => 'lc-xxx', 'title' => '', 'required' => false], ], ], 'responses' => [ @@ -7082,235 +6518,152 @@ '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' => '', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the request was successful.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true'."\n" + .'* false', 'type' => 'boolean', 'example' => 'true', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\",\\n \\"Success\\": true\\n}","type":"json"}]', + 'title' => 'DeleteLifecyclePolicy', + 'description' => '仅通用型NAS文件系统和CPFS智算版支持该功能。', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:01.000Z', 'description' => 'Error codes changed'], ], - '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', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteLifecyclePolicy'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteLifecyclePolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'LifecyclePolicy', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'DeleteLogAnalysis' => [ + 'summary' => 'Disables log dumping for a General-purpose NAS file system.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13948', - 'abilityTreeNodes' => [ - 'FEATUREnas5QOAQE', - ], + 'abilityTreeCode' => '13942', + 'abilityTreeNodes' => ['FEATUREnas0MLWQI', 'FEATUREnas3DACY7', 'FEATUREnas71NBOZ', 'FEATUREnasA0C6YC'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'FileSystemIds', + 'name' => 'RegionId', '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****', - ], + 'schema' => ['description' => 'The region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'AutoSnapshotPolicyIds', + 'name' => 'FileSystemId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '174494xxxx', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ '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****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '70EACC9C-D07A-4A34-ADA4-77506C42B023', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DeleteLogAnalysis', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLogAnalysis'], + ], + ], + 'ramActions' => [ [ - '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', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteLogAnalysis', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], ], ], + ], + '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":""}]', + ], + 'DeleteMountTarget' => [ + 'summary' => 'Deletes a mount target.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'PageSize', + '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 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', - ], + '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****', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'MountTargetDomain', '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', - ], + 'schema' => ['description' => 'The domain name of the mount target.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '174494b666-x****.cn-hangzhou.nas.aliyuncs.com', 'title' => ''], ], ], 'responses' => [ @@ -7318,80 +6671,48 @@ '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****', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '5BC5CB97-9F28-42FE-84A4-0CD0DF42****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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.', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5BC5CB97-9F28-42FE-84A4-0CD0DF42****\\"\\n}","type":"json"}]', + 'title' => 'DeleteMountTarget', + 'description' => '删除挂载点后,无法恢复,请谨慎操作。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ResetFileSystem' => [ - 'summary' => 'Rolls back a file system to a snapshot of the file system.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:01.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteMountTarget'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteMountTarget', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], + ], + 'translator' => 'manual', + ], + 'DeleteProtocolMountTarget' => [ + 'summary' => 'Deletes an export directory of a protocol service.', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7400,78 +6721,112 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'high', - 'chargeType' => 'paid', - 'abilityTreeCode' => '13984', - 'abilityTreeNodes' => [ - 'FEATUREnas5QOAQE', - 'FEATUREnas6KFX9N', - ], + '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-197ed6a00f2b****', 'title' => ''], + ], + [ '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****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cpfs-099394bd928c****', 'title' => ''], ], [ - 'name' => 'SnapshotId', + 'name' => 'ExportId', 'in' => 'query', - 'schema' => [ - 'description' => 'The snapshot ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 's-extreme-snapsho****', - ], + 'schema' => ['description' => 'The ID of the export directory.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'exp-19abf5beab8d****', 'title' => ''], + ], + [ + '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****', 'title' => ''], + ], + [ + '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', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****'], ], - 'description' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingExportId', 'errorMessage' => 'ExportId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingProtocolServiceId', 'errorMessage' => 'ProtocolServiceId is mandatory for this action.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Instance.IncorrectStatus', 'errorMessage' => 'The specified instance is in an incorrect status.', 'description' => ''], + ['errorCode' => 'OperationDenied.InvalidMntStatus', 'errorMessage' => 'The operation is denied due to invalid protocol mount targte status.', 'description' => ''], + ['errorCode' => 'OperationDenied.InvalidPtcStatus', 'errorMessage' => 'The operation is denied due to invalid protocol service status.', 'description' => ''], + ['errorCode' => 'OperationDenied.InvalidState', 'errorMessage' => 'The operation is denied due to invalid file system state.', 'description' => ''], + ['errorCode' => 'OperationDenied.NotSupported', 'errorMessage' => 'The operation is denied due to not supported.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidProtocolService.NotFound', 'errorMessage' => 'The specified protocol service does not exist.', 'description' => ''], + ], ], - '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', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","type":"json"}]', + 'title' => 'DeleteProtocolMountTarget', + 'description' => '该接口仅适用于CPFS文件系统。', + 'changeSet' => [ + ['createdAt' => '2022-04-28T09:25:04.000Z', 'description' => 'OpenAPI offline'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteProtocolMountTarget'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteProtocolMountTarget', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'DeleteProtocolService' => [ + 'summary' => 'Deletes a protocol service of a Cloud Parallel File Storage (CPFS) file system.', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7480,178 +6835,114 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '13986', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', - ], + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'paid', + 'abilityTreeCode' => '124951', + 'abilityTreeNodes' => ['FEATUREnasQ7YV89', 'FEATUREnas0GUIX5', 'FEATUREnasRXWLI5'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'ResourceType', + 'name' => 'ProtocolServiceId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the protocol service.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ptc-197ed6a00f2b****', 'title' => ''], + ], + [ + 'name' => 'FileSystemId', 'in' => 'query', 'schema' => [ - 'description' => 'The resource type. Set the value to filesystem.'."\n", + 'description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, - 'example' => 'filesystem', + 'enum' => [], + 'example' => 'cpfs-099394bd928c****', + 'title' => '', ], ], [ - 'name' => 'ResourceId', + 'name' => 'ClientToken', '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, - ], + '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, 'maxLength' => 64, 'minLength' => 1, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'DryRun', '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, - ], + '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, 'default' => 'false', 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****'], ], - 'description' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingProtocolServiceId', 'errorMessage' => 'ProtocolServiceId is mandatory for this action.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'OperationDenied.KeyValueNotNull', - 'errorMessage' => 'The key value cannot be null.', - ], + ['errorCode' => 'Instance.IncorrectStatus', 'errorMessage' => 'The specified instance is in an incorrect status.', 'description' => ''], + ['errorCode' => 'OperationDenied.InvalidPtcStatus', 'errorMessage' => 'The operation is denied due to invalid protocol service status.', 'description' => ''], + ['errorCode' => 'OperationDenied.InvalidState', 'errorMessage' => 'The operation is denied due to invalid file system state.', 'description' => ''], + ['errorCode' => 'OperationDenied.NotSupported', 'errorMessage' => 'The operation is denied due to not supported.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidProtocolService.NotFound', 'errorMessage' => 'The specified protocol service does not exist.', 'description' => ''], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","type":"json"}]', + 'title' => 'DeleteProtocolService', + 'description' => '- 该接口仅适用于CPFS文件系统。'."\n" + .'- 删除协议服务时,会同时删除协议服务中的导出目录。', + 'changeSet' => [ + ['createdAt' => '2022-04-28T09:25:04.000Z', 'description' => 'OpenAPI offline'], ], - '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', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteProtocolService'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteProtocolService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'DeleteSnapshot' => [ + 'summary' => 'Deletes a specified snapshot or cancels a snapshot task that is being created.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7661,507 +6952,860 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'delete', - 'riskType' => 'none', + 'riskType' => 'high', 'chargeType' => 'free', - 'abilityTreeCode' => '13987', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', - ], + 'abilityTreeCode' => '13944', + 'abilityTreeNodes' => ['FEATUREnas5QOAQE'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'ResourceType', + 'name' => 'SnapshotId', 'in' => 'query', + 'schema' => ['description' => 'The snapshot ID. Set this parameter to the snapshot ID obtained after a snapshot is successfully created for an Advanced Extreme NAS file system.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 's-extreme-snapsho****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The resource type.'."\n" - ."\n" - .'Set the value to filesystem.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'filesystem', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n" + ."\n" + .'A request ID is returned regardless of whether the call is successful.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","type":"json"}]', + 'title' => 'Delete a snapshot or cancel a snapshot task that is being created', + 'description' => '<props="china">.'."\n" + ."\n" + .'- This feature is in free public preview. During the public preview, the [File Storage NAS Service-Level Agreement (SLA)](https://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud201803061139_99860.html?spm=a2c4g.11186623.0.0.5c895ff2YPLrwe) is not guaranteed.'."\n" + .'- Only Advanced Extreme NAS file systems support this feature.'."\n" + ."\n" + .'</props>'."\n" + .'<props="intl">.'."\n" + ."\n" + .'- This feature is in free public preview. During the public preview, the [File Storage NAS Service-Level Agreement (SLA)](https://www.alibabacloud.com/help/legal/latest/network-attached-storage-service-level-agreement) is not guaranteed.'."\n" + .'- Only Advanced Extreme NAS file systems support this feature.'."\n" + ."\n" + .'</props>.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:01.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteSnapshot'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteSnapshot', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + ], + 'DescribeAccessGroups' => [ + 'summary' => 'Queries permission group information.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'All', + '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" + ."\n" + .'- The name must start with a letter and can contain letters, digits, underscores (_), or hyphens (-).', 'type' => 'string', 'required' => false, 'example' => 'DEFAULT_VPC_GROUP_NAME', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of permission groups on each page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'example' => '2', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number of the list.'."\n" + ."\n" + .'Start value (default value): 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'UseUTCDateTime', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether the returned time is displayed in UTC.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true (default): The returned time is displayed in UTC.'."\n" + .'- false: The returned time is not displayed in UTC.', 'type' => 'boolean', 'required' => false, 'minimum' => '1', 'default' => 'true', 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'FileSystemType', '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" + 'description' => 'The type of the file system.'."\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', + .'- standard (default): General-purpose NAS.'."\n" + .'- extreme: Extreme NAS.'."\n" + .'- cpfs: Cloud Parallel File Storage (CPFS).', + 'enumValueTitles' => ['standard' => 'General-purpose NAS.', 'cpfs' => 'Cloud Paralleled File System.', 'extreme' => 'Extreme NAS.'], + 'type' => 'string', 'required' => false, - 'example' => 'false', + 'default' => 'standard', + 'enum' => ['standard', 'extreme', 'cpfs'], + 'example' => 'standard', + 'title' => '', ], ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'repeatList', + ], + 'responses' => [ + 200 => [ '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****', + 'type' => 'object', + 'properties' => [ + 'AccessGroups' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AccessGroup' => [ + 'description' => 'The collection of permission group information.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AccessGroupName' => ['description' => 'The name of the permission group.', 'type' => 'string', 'example' => 'DEFAULT_VPC_GROUP_NAME', 'title' => ''], + 'Description' => ['description' => 'The description of the permission group.', 'type' => 'string', 'example' => 'This is a test access group.', 'title' => ''], + 'CreateTime' => ['description' => 'The time when the permission group was created.'."\n" + ."\n" + .'The time follows the ISO 8601 standard and is returned in the yyyy-MM-ddTHH:mm:ssZ format.', 'type' => 'string', 'example' => '2020-01-05T16:00:00Z', 'title' => ''], + 'AccessGroupType' => ['description' => 'The type of the permission group. The value **Vpc** indicates a virtual private cloud (VPC).', 'type' => 'string', 'example' => 'Vpc', 'title' => ''], + 'RuleCount' => ['description' => 'The number of permission rules in the permission group.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'MountTargetCount' => ['description' => 'The number of mount targets to which the permission group is applied.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'FileSystemType' => ['description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- standard (default): General-purpose NAS.'."\n" + .'- extreme: Extreme NAS.'."\n" + .'- cpfs: Cloud Parallel File Storage (CPFS).', 'type' => 'string', 'example' => 'standard', 'title' => ''], + 'RegionId' => ['description' => 'The region ID.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'TotalCount' => ['description' => 'The total number of permission groups.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2514F97E-FFF0-4A1F-BF04-729CEAC6****', 'title' => ''], + 'PageSize' => ['description' => 'The number of permission groups on each page.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], ], - 'required' => true, - 'example' => '03e08484f0', - 'maxItems' => 51, + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'Query permission group information', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-02-26T07:03:21.000Z', 'description' => 'Response parameters changed, Error codes changed'], + ['createdAt' => '2023-11-03T07:39:49.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-04-28T09:24:33.000Z', 'description' => 'Request parameters changed, Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAccessGroups'], + ], + ], + 'ramActions' => [ [ - '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', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeAccessGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], ], - 'required' => false, - 'example' => 'nastest', - 'maxItems' => 21, ], ], ], + ], + '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 file system ID.', 'type' => 'string', 'required' => true, 'example' => '31a8e4****', 'title' => ''], + ], + [ + 'name' => 'AccessPointId', + 'in' => 'query', + 'schema' => ['description' => 'The access point ID.', 'type' => 'string', 'required' => true, 'example' => 'ap-ie15yd****', 'title' => ''], + ], + ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'required' => true, 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****'], + 'AccessPoint' => [ + 'description' => 'The access point information.', + 'type' => 'object', + 'properties' => [ + 'ARN' => ['description' => 'The access point ARN.', 'type' => 'string', 'example' => 'acs:nas:cn-hangzhou:178321033379****:accesspoint/ap-ie15yd****', 'title' => ''], + 'AccessGroup' => ['description' => 'The permission group name.', 'type' => 'string', 'example' => 'test'."\n", 'title' => ''], + 'AccessPointId' => ['description' => 'The access point ID.', 'type' => 'string', 'example' => 'ap-ie15yd****'."\n", 'title' => ''], + 'AccessPointName' => ['description' => 'The access point name.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'CreateTime' => ['description' => 'The time when the access point was created.', 'type' => 'string', 'example' => '1709619668276167', 'title' => ''], + 'DomainName' => ['description' => 'The access point domain name.', 'type' => 'string', 'example' => 'ap-ie15ydanoz.001014****-w****.cn-hangzhou.nas.aliyuncs.com', 'title' => ''], + 'EnabledRam' => ['description' => 'Indicates whether the RAM policy is enabled.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'FileSystemId' => ['description' => 'The file system ID.', 'type' => 'string', 'example' => '31a8e4****', 'title' => ''], + 'ModifyTime' => ['description' => 'The time when the access point was last modified.', 'type' => 'string', 'example' => '1709619668276167', 'title' => ''], + 'RootPathPermission' => [ + 'description' => 'The permissions for creating the root directory.', + 'type' => 'object', + 'properties' => [ + 'OwnerGroupId' => ['description' => 'The file group ID.', 'type' => 'integer', 'format' => 'int32', 'example' => '123', 'title' => ''], + 'OwnerUserId' => ['description' => 'The file owner ID.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'Permission' => ['description' => 'The POSIX permissions.', 'type' => 'string', 'example' => '0755', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'PosixUser' => [ + 'description' => 'The POSIX user.', + 'type' => 'object', + 'properties' => [ + 'PosixGroupId' => ['description' => 'The POSIX user group ID.', 'type' => 'integer', 'format' => 'int32', 'example' => '12', 'title' => ''], + 'PosixUserId' => ['description' => 'The POSIX user ID.', 'type' => 'integer', 'format' => 'int32', 'example' => '123', 'title' => ''], + 'PosixSecondaryGroupIds' => [ + 'description' => 'The secondary user group ID.', + 'type' => 'array', + 'items' => ['description' => 'The secondary user group ID.', 'type' => 'integer', 'format' => 'int32', 'example' => '[123,123]', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + 'RootPath' => ['description' => 'The root directory.', 'type' => 'string', 'example' => '/', 'title' => ''], + 'RootPathStatus' => ['description' => 'The current root directory status.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- 0: The root path status is unknown.'."\n" + .'- 1: The root path does not exist. It may have been deleted by the user.'."\n" + .'- 2: The root path status is normal.', 'type' => 'string', 'example' => '2', 'title' => ''], + 'Status' => ['description' => 'The current access point status.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- Active: active'."\n" + .'- Inactive: inactive'."\n" + .'- Pending: being created'."\n" + .'- Deleting: being deleted', 'type' => 'string', 'example' => 'Active', 'title' => ''], + 'VSwitchId' => ['description' => 'The vSwitch ID.', 'type' => 'string', 'example' => 'vsw-2zevmwkwyztjuoffg****', 'title' => ''], + 'VpcId' => ['description' => 'The VPC ID.'."\n" + ."\n" + .'The VPC must be the same as the VPC of the Elastic Computing Service (ECS) server to which you want to mount the file system.', 'type' => 'string', 'example' => 'vpc-2zesj9afh3y518k9o****', 'title' => ''], + 'Tags' => [ + 'title' => '', + 'description' => 'The list of access point tags.', + 'type' => 'array', + 'items' => [ + 'title' => '', + 'description' => 'The list of access point tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '', 'description' => 'The tag key.', 'type' => 'string', 'example' => 'TestKey'], + 'Value' => ['title' => '', 'description' => 'The tag value.', 'type' => 'string', 'example' => 'TestValue'], + ], + 'example' => '', + ], + 'example' => '', + ], + 'RegionId' => ['description' => 'The region ID.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'AgenticSpaceId' => ['description' => 'AgenticSpace Id。', 'type' => 'string', 'example' => 'agentic-229oypxjgpau2****', 'title' => ''], + 'CreateTimeUtc' => ['description' => 'The time when the AgenticSpace was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format.', 'type' => 'string', 'example' => '2026-06-10T10:08:08Z', 'title' => ''], + 'ModifyTimeUtc' => ['description' => 'The time when the AgenticSpace was last modified. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format.', 'type' => 'string', 'example' => '2026-06-10T10:08:08Z', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + 404 => [ + ['errorCode' => 'InvalidAccessPointId.NotFound', 'errorMessage' => 'The access point id does not exist.', 'description' => 'The specified APid does not exist.'], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], ], ], - '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', + '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 \\"AgenticSpaceId\\": \\"agentic-229oypxjgpau2****\\",\\n \\"CreateTimeUtc\\": \\"2026-06-10T10:08:08Z\\",\\n \\"ModifyTimeUtc\\": \\"2026-06-10T10:08:08Z\\"\\n }\\n}","type":"json"}]', + 'title' => 'Query access point details', + 'description' => 'Only General-purpose NAS NFS file systems support this feature.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeAccessPoint'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeAccessPoint', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeAccessPoints' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, + 'deprecated' => true, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13971', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', - ], + 'abilityTreeCode' => '189598', + 'abilityTreeNodes' => ['FEATUREnas0MLWQI', 'FEATUREnas3DACY7', 'FEATUREnas71NBOZ', 'FEATUREnas5IJRRZ'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'ResourceType', + 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The resource type. Set the value to filesystem.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'filesystem', - ], + 'schema' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => false, 'example' => '174494****', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'AccessGroup', '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==', - ], + 'schema' => ['description' => 'The permission group name.'."\n" + ."\n" + .'This parameter is required if the file system is a General-purpose NAS file system.'."\n" + ."\n" + .'Default permission group: DEFAULT_VPC_GROUP_NAME (the default VPC permission group).', 'type' => 'string', 'required' => false, 'example' => 'DEFAULT_VPC_GROUP_NAME', 'title' => ''], ], [ - 'name' => 'ResourceId', + 'name' => 'MaxResults', '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, - ], + 'schema' => ['description' => 'The number of results for each query.'."\n" + ."\n" + .'Valid values: 10 to 100. Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '10', 'title' => ''], ], [ 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The details about the tags.'."\n", + 'title' => '', + 'description' => 'The list of access point tags.', 'type' => 'array', 'items' => [ + 'title' => '', + 'description' => 'The list of access point tags.', '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', - ], + 'Key' => ['title' => '', '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://.', 'type' => 'string', 'example' => 'TestKey', 'required' => false], + 'Value' => ['title' => '', '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://.', 'type' => 'string', 'example' => 'TestValue', 'required' => false], ], 'required' => false, + 'example' => '', ], 'required' => false, 'maxItems' => 21, + 'example' => '', ], ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => 'The query token. Set the value to the NextToken value returned in the previous API call.', 'type' => 'string', 'required' => false, 'example' => 'MTY4NzcxOTcwMjAzMDk2Nzc0MyM4MDM4****', 'title' => ''], + ], ], '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' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'required' => true, 'example' => '6299428C-3861-435D-AE54-9B330A00****'], + 'AccessPoints' => [ + 'description' => 'The access point information.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ARN' => ['description' => 'The access point ARN.', 'type' => 'string', 'example' => 'acs:nas:cn-hangzhou:178321033379****:accesspoint/ap-ie15yd****', 'title' => ''], + 'AccessGroup' => ['description' => 'The permission group name.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'AccessPointId' => ['description' => 'The access point ID.', 'type' => 'string', 'example' => 'ap-ie15y*****'."\n", 'title' => ''], + 'AccessPointName' => ['description' => 'The access point name.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'CreateTime' => ['description' => 'The time when the access point was created.', 'type' => 'string', 'example' => '1709619668276167', 'title' => ''], + 'DomainName' => ['description' => 'The domain name of the access point.', 'type' => 'string', 'example' => 'ap-ie15ydanoz.001014****-w****.cn-hangzhou.nas.aliyuncs.com', 'title' => ''], + 'EnabledRam' => ['description' => 'Indicates whether the RAM policy is enabled.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'FileSystemId' => ['description' => 'The file system ID.', 'type' => 'string', 'example' => '31a8e4****'."\n", 'title' => ''], + 'ModifyTime' => ['description' => 'The time when the access point was last modified.', 'type' => 'string', 'example' => '1709619668276167', 'title' => ''], + 'PosixUser' => [ + 'description' => 'The POSIX user.', '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', + 'PosixGroupId' => ['description' => 'The POSIX group ID.', 'type' => 'integer', 'format' => 'int32', 'example' => '12', 'title' => ''], + 'PosixUserId' => ['description' => 'The POSIX user ID.', 'type' => 'integer', 'format' => 'int32', 'example' => '123', 'title' => ''], + 'PosixSecondaryGroupIds' => [ + 'description' => 'The secondary group ID.', + 'type' => 'array', + 'items' => ['description' => 'The secondary group ID.', 'type' => 'integer', 'format' => 'int32', 'example' => '[123,123]', 'title' => ''], + 'title' => '', + 'example' => '', ], - 'TagKey' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'test1', + ], + 'title' => '', + 'example' => '', + ], + 'RootPath' => ['description' => 'The root directory.', 'type' => 'string', 'example' => '/', 'title' => ''], + 'RootPathPermission' => [ + 'description' => 'The root directory permissions.', + 'type' => 'object', + 'properties' => [ + 'OwnerGroupId' => ['description' => 'The file group ID of the owner.', 'type' => 'integer', 'format' => 'int64', 'example' => '12', 'title' => ''], + 'OwnerUserId' => ['description' => 'The user ID of the owner.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''], + 'Permission' => ['description' => 'The POSIX permission.', 'type' => 'string', 'example' => '0755', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'RootPathStatus' => ['description' => 'The current root directory status.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- 0: The root path status is unknown.'."\n" + .'- 1: The root path does not exist. It may have been deleted by the user.'."\n" + .'- 2: The root path status is normal.', 'type' => 'string', 'example' => '2', 'title' => ''], + 'Status' => ['description' => 'The current access point status.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- Active: available.'."\n" + .'- Inactive: unavailable.'."\n" + .'- Pending: being created.'."\n" + .'- Deleting: being deleted.'."\n" + ."\n" + .'> You can mount a file system only when the status is Active.', 'type' => 'string', 'example' => 'Active', 'title' => ''], + 'VSwitchId' => ['description' => 'The vSwitch ID.', 'type' => 'string', 'example' => 'vsw-2zevmwkwyztjuoffg****'."\n", 'title' => ''], + 'VpcId' => ['description' => 'The VPC ID.', 'type' => 'string', 'example' => 'vpc-2zesj9afh3y518k9o****'."\n", 'title' => ''], + 'Tags' => [ + 'title' => '', + 'description' => 'The list of access point tags.', + 'type' => 'array', + 'items' => [ + 'title' => '', + 'description' => 'The list of access point tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '', 'description' => 'The tag key.', 'type' => 'string', 'example' => 'TestKey'], + 'Value' => ['title' => '', 'description' => 'The tag value.', 'type' => 'string', 'example' => 'TestValue'], ], + 'example' => '', ], + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], + 'NextToken' => ['description' => 'The query token. Set the value to the NextToken value returned in the previous API call.', 'type' => 'string', 'example' => 'MTY4NzcxOTcwMjAzMDk2Nzc0MyM4MDM4****'."\n", 'title' => ''], + 'TotalCount' => ['description' => 'The total number of access points.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'InvalidFilesystemType.NotSupport', 'errorMessage' => 'The API operation does not support the file system type.', 'description' => 'The API operation does not support the file system type.'], + ], + 403 => [ + ['errorCode' => 'InvalidProtocolType.NotSupported', 'errorMessage' => 'The specified protocol type does not supported.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidAccessGroup.NotFound', 'errorMessage' => 'The specified AccessGroup does not exist.', 'description' => 'The permission group that you specified does not exist or has been deleted.'], ], ], 'staticInfo' => [ + 'substitutions' => ['NAS::2017-06-26::ListAccessPoints'], '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', + 'title' => 'Query access point information', + 'summary' => 'Queries access point information.', + 'description' => 'Only General-purpose NAS NFS file systems support this feature.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeAccessPoints'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeAccessPoints', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + '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"}]', + ], + 'DescribeAccessRules' => [ + 'summary' => 'Queries the information about rules in a permission group.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'high', + 'operationType' => 'list', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13985', - 'abilityTreeNodes' => [ - 'FEATUREnasXEQXVN', - ], + 'abilityTreeCode' => '13946', + 'abilityTreeNodes' => ['FEATUREnas2SBOJD'], 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'AccessGroupName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '1ca404****', - ], + 'schema' => ['description' => 'The name of the permission group.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'classic-test', 'title' => ''], ], [ - 'name' => 'Path', + 'name' => 'AccessRuleId', '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', - ], + 'schema' => ['description' => 'The rule ID.'."\n", 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'QuotaType', + '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', 'default' => '10', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The number of the page to return.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'FileSystemType', 'in' => 'query', 'schema' => [ - 'description' => 'The type of the quota.'."\n" + 'description' => 'The type of the file system.'."\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", + .'* standard: General-purpose Apsara File Storage NAS (NAS) file system'."\n" + .'* extreme: Extreme NAS file system.'."\n", 'type' => 'string', - 'required' => true, - 'example' => 'Accounting', - 'enum' => [ - 'Accounting', - 'Enforcement', + 'required' => false, + 'default' => 'standard', + 'enum' => ['standard', 'extreme'], + 'example' => 'standard', + 'title' => '', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => ['description' => 'The total number of rules.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '86D89E82-4297-4343-8E1E-A2495B35****', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + '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', 'title' => ''], + 'SourceCidrIp' => ['description' => 'The IP address or CIDR block of the authorized object.'."\n", 'type' => 'string', 'example' => '10.0.*.*/**', 'title' => ''], + 'Ipv6SourceCidrIp' => ['description' => 'The IPv6 address or CIDR block of the authorized object.'."\n", 'type' => 'string', 'example' => '2001:250:6000::***', 'title' => ''], + '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 permission.'."\n", 'type' => 'string', 'example' => 'RDWR', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + 'FileSystemType' => ['description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* standard: General-purpose Apsara File Storage NAS (NAS) file system.'."\n" + .'* extreme: Extreme NAS file system.'."\n", 'type' => 'string', 'example' => 'standard', 'title' => ''], + 'AccessGroupName' => ['description' => 'The name of the permission group.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], + 'RegionId' => ['description' => 'The region ID.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeAccessRules', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-02-26T07:03:20.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeAccessRules'], + ], + ], + 'ramActions' => [ [ - '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', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeAccessRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], ], ], ], + ], + 'translator' => 'manual', + ], + 'DescribeAgenticSpaces' => [ + 'summary' => 'Queries an Agentic space.', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'UserId', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '55590', + 'abilityTreeNodes' => ['FEATUREnasPWYFYN'], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', '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', - ], + 'schema' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], ], [ - 'name' => 'SizeLimit', + 'name' => 'Filters', 'in' => 'query', + 'style' => 'repeatList', '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', + 'description' => 'The collection of filter key information.', + 'type' => 'array', + 'items' => [ + 'description' => 'The filter key information.', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The name of the filter key. Valid values:'."\n" + .'- AgenticSpaceIds', + 'type' => 'string', + 'enum' => ['AgenticSpaceIds'], + 'required' => false, + 'example' => 'AgenticSpaceIds', + 'title' => '', + ], + 'Value' => ['description' => 'The value of the filter key. Wildcards are not supported.'."\n" + .'- AgenticSpaceIds: only a single ID is supported.', 'type' => 'string', 'required' => false, 'example' => '06229oypxjgox0u****', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'maximum' => '10000000', - 'minimum' => '0', - 'example' => '1024', + 'docRequired' => false, + 'maxItems' => 5, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'FileCountLimit', + 'name' => 'NextToken', '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', - ], + 'schema' => ['description' => 'The query token. Set this parameter to the NextToken value returned in the previous API call.', 'type' => 'string', 'required' => false, 'example' => 'MTc3OTkzNTA0Mjg0NTc1MDI4OCM0MDQ0MzA****=', 'title' => ''], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The number of results per query.'."\n" + ."\n" + .'Valid values: 10 to 100. Default value: 20.', 'type' => 'integer', 'format' => 'int64', 'maximum' => '100', 'minimum' => '10', 'default' => '20', 'required' => false, 'example' => '20', 'title' => ''], ], ], 'responses' => [ @@ -8169,129 +7813,151 @@ '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', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', 'title' => ''], + 'NextToken' => ['description' => 'The query token. Set this parameter to the NextToken value returned in the previous API call.', 'type' => 'string', 'example' => 'MTc2NTg1MTUyMzA1OTczNTc1OCM0NjQxMzQ****=', 'title' => ''], + 'AgenticSpaces' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AgenticSpace' => [ + 'description' => 'The AgenticSpace information.', + 'type' => 'array', + 'items' => [ + 'description' => 'The AgenticSpace information.', + 'type' => 'object', + 'properties' => [ + 'FileSystemId' => ['description' => 'The file system ID.', 'type' => 'string', 'example' => '0322djegiekcia5****', 'title' => ''], + 'AgenticSpaceId' => ['description' => 'AgenticSpace Id。', 'type' => 'string', 'example' => 'agentic-229oypxjgpau2****', 'title' => ''], + 'Description' => ['description' => 'The description of the AgenticSpace.', 'type' => 'string', 'example' => 'Description', 'title' => ''], + 'FileSystemPath' => ['description' => 'The absolute path of the file.', 'type' => 'string', 'example' => '/test/', 'title' => ''], + 'Azone' => ['description' => 'The zone ID.', 'type' => 'string', 'example' => 'cn-hangzhou-i', 'title' => ''], + 'Status' => ['description' => 'The status of the AgenticSpace. Valid values:'."\n" + .'- Running', 'type' => 'string', 'example' => 'Running', 'title' => ''], + 'CreateTimeUtc' => ['description' => 'The time when the AgenticSpace was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format.', 'type' => 'string', 'example' => '2026-06-10T10:08:08Z', 'title' => ''], + 'UpdateTimeUtc' => ['description' => 'The time when the AgenticSpace was last updated. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format.', 'type' => 'string', 'example' => '2026-06-10T10:08:08Z', 'title' => ''], + 'Quota' => [ + 'description' => 'The quota information.', + 'type' => 'object', + 'properties' => [ + 'FileCountLimit' => ['description' => 'The file count limit of the quota. Valid values:'."\n" + ."\n" + .'- Minimum value: 10,000.'."\n" + ."\n" + .'- Maximum value: 100,000,000.', 'type' => 'integer', 'format' => 'int64', 'example' => '10000000', 'title' => ''], + 'SizeLimit' => ['description' => 'The total capacity limit of the quota. Unit: bytes.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- Minimum value: 10,737,418,240 (10 GiB).'."\n" + .'- Maximum value: 1,099,511,627,776,000 (1,024,000 GiB).'."\n" + .'- Increment: 1,073,741,824 (1 GiB).', 'type' => 'integer', 'format' => 'int64', 'example' => '10737418240', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'FileCountUsage' => ['description' => 'The file count usage.', 'type' => 'integer', 'format' => 'int64', 'example' => '100', 'title' => ''], + 'SpaceUsage' => ['description' => 'The capacity usage. Unit: bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '1024', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'InvalidParameter.DirPathNotExist', - 'errorMessage' => 'The Dir Path does not exist', - ], + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => 'The FileSystemId parameter is not specified.'], + ['errorCode' => 'InvalidParameter.SortOrder', 'errorMessage' => 'Invalid sort order.', 'description' => 'Parameter SortOrder error.'], + ['errorCode' => 'InvalidParameter.SortOrderField', 'errorMessage' => 'Invalid sort order field.', 'description' => 'Parameter SortOrderField error.'], + ], + 403 => [ + ['errorCode' => 'OperationDenied.FilesetNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => 'The file system does not support Fileset.'], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidFilterParam', 'errorMessage' => 'The specified Filter.N.Key is invalid.', 'description' => 'The specified Filter.N.Key parameter is invalid.'], + ['errorCode' => 'InvalidFilterValue', 'errorMessage' => 'The specified Filter.N.Value is invalid.', 'description' => 'The specified Filter.N.Value parameter is invalid.'], + ['errorCode' => 'InvalidParameter.InvalidNextToken', 'errorMessage' => 'The specified NextToken is invaild.', 'description' => ''], + ['errorCode' => 'InvalidParameter.InvalidMaxResults', 'errorMessage' => 'The specified MaxResults is invalid.', 'description' => 'The specified MaxResults is invalid.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query an agentic space', + 'description' => 'Applies to agentic-type file systems.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - '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' => ' ', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\",\\n \\"NextToken\\": \\"MTc2NTg1MTUyMzA1OTczNTc1OCM0NjQxMzQ****=\\",\\n \\"AgenticSpaces\\": {\\n \\"AgenticSpace\\": [\\n {\\n \\"FileSystemId\\": \\"0322djegiekcia5****\\",\\n \\"AgenticSpaceId\\": \\"agentic-229oypxjgpau2****\\",\\n \\"Description\\": \\"Description\\",\\n \\"FileSystemPath\\": \\"/test/\\",\\n \\"Azone\\": \\"cn-hangzhou-i\\",\\n \\"Status\\": \\"Running\\",\\n \\"CreateTimeUtc\\": \\"2026-06-10T10:08:08Z\\",\\n \\"UpdateTimeUtc\\": \\"2026-06-10T10:08:08Z\\",\\n \\"Quota\\": {\\n \\"FileCountLimit\\": 10000000,\\n \\"SizeLimit\\": 10737418240\\n },\\n \\"FileCountUsage\\": 100,\\n \\"SpaceUsage\\": 1024\\n }\\n ]\\n }\\n}","type":"json"}]', ], - 'CancelDirQuota' => [ - 'summary' => 'Cancels the directory quota of a file system.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeAutoSnapshotPolicies' => [ + 'summary' => 'Queries automatic snapshot policies.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'high', + 'operationType' => 'list', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13921', - 'abilityTreeNodes' => [ - 'FEATUREnasM1TG05', - ], + 'abilityTreeCode' => '13947', + 'abilityTreeNodes' => ['FEATUREnas5QOAQE'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'AutoSnapshotPolicyId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '1ca404****', - ], + 'schema' => ['description' => 'The ID of the automatic snapshot policy.'."\n", 'type' => 'string', 'required' => false, 'example' => 'sp-extreme-233e6****', 'title' => ''], ], [ - 'name' => 'Path', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The absolute path of a directory.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '/data/sub1', - ], + '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', 'title' => ''], ], [ - 'name' => 'UserType', + 'name' => 'PageNumber', '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', - ], - ], + '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', 'title' => ''], ], [ - 'name' => 'UserId', + 'name' => 'FileSystemType', '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" + 'description' => 'The type of the file system.'."\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", + .'Valid value: extreme, which indicates Extreme File Storage NAS (NAS) file systems.', 'type' => 'string', 'required' => false, - 'example' => '500', + 'example' => 'extreme', + 'enum' => ['extreme'], + 'title' => '', ], ], ], @@ -8300,46 +7966,106 @@ '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', + 'TotalCount' => ['description' => 'The total number of automatic snapshot policies.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + 'AutoSnapshotPolicyName' => ['description' => 'The name of the automatic snapshot policy.'."\n", 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + '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', 'title' => ''], + 'AutoSnapshotPolicyId' => ['description' => 'The ID of the automatic snapshot policy.'."\n", 'type' => 'string', 'example' => 'sp-extreme-233e6****', 'title' => ''], + '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', 'title' => ''], + 'FileSystemNums' => ['description' => 'The number of file systems to which the automatic snapshot policy applies.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the automatic snapshot policy.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'FileSystemType' => ['description' => 'The type of the file system.'."\n", 'type' => 'string', 'example' => 'extreme', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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.', + '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' => ' ', - ], - 'DescribeDirQuotas' => [ - 'summary' => 'Queries the directory quotas of a file system.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-05-10T08:49:35.000Z', 'description' => 'Request parameters changed, Response parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeAutoSnapshotPolicies'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeAutoSnapshotPolicies', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + ], + 'DescribeAutoSnapshotTasks' => [ + 'summary' => 'Queries automatic snapshot tasks.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8351,65 +8077,55 @@ 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13950', - 'abilityTreeNodes' => [ - 'FEATUREnasXEQXVN', - ], + 'abilityTreeCode' => '13948', + 'abilityTreeNodes' => ['FEATUREnas5QOAQE'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'FileSystemIds', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '1ca404****', - ], + '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****', 'title' => ''], ], [ - 'name' => 'Path', + '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****', 'title' => ''], + ], + [ + 'name' => 'FileSystemType', 'in' => 'query', 'schema' => [ - 'description' => 'The absolute path of a directory.'."\n" + 'description' => 'The type of the file system.'."\n" ."\n" - .'If you do not specify this parameter, all directories for which quotas are created are returned.'."\n", + .'Valid value: extreme, which indicates Extreme NAS file systems.'."\n", 'type' => 'string', - 'required' => false, - 'example' => '/data/sub1', + 'required' => true, + 'example' => 'extreme', + 'enum' => ['extreme'], + 'title' => '', ], ], [ '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', - ], + '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', 'title' => ''], ], [ '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', - ], + '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', 'title' => ''], ], ], 'responses' => [ @@ -8417,533 +8133,792 @@ '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' => '', + 'TotalCount' => ['description' => 'The total number of automatic snapshot tasks.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '9', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + '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****', 'title' => ''], + 'AutoSnapshotPolicyId' => ['description' => 'The ID of the automatic snapshot policy.'."\n", 'type' => 'string', 'example' => 'sp-extreme-233e6****', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], - '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' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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.', + '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' => ' ', - ], - 'CreateLifecyclePolicy' => [ - 'summary' => 'Creates a lifecycle policy.', - 'methods' => [ - 'post', - 'get', - 'put', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:00.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeAutoSnapshotTasks'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeAutoSnapshotTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + ], + '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' => 'write', - 'deprecated' => false, + 'operationType' => 'read', + 'deprecated' => true, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'list', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeCode' => '13932', - 'abilityTreeNodes' => [ - 'FEATUREnasZ6WBFV', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'chargeType' => 'free', + 'abilityTreeCode' => '13949', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], + 'autoTest' => false, + 'notSupportAutoTestReason' => '废弃接口', + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '31a8e4****', - ], + 'schema' => ['description' => 'The ID of the region where the file system resides.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'LifecyclePolicyName', + 'name' => 'FileSystemId', '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', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cpfs-123458****', 'title' => ''], ], [ - 'name' => 'Path', + 'name' => 'ClientIP', 'in' => 'query', + 'schema' => ['description' => 'The IP address of the client.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.0.0', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ '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', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'A70BEE5D-76D3-49FB-B58F-1F398211A5C3', 'title' => ''], + 'Clients' => ['description' => 'The IDs of clients and the status of each client. This parameter contains a JSON object, for example, {"client1": "EVICTING","client2":"EVICTED"}.'."\n" + ."\n" + .'Available client statuses include:'."\n" + ."\n" + .'* EVICTING indicates that a client is being removed'."\n" + .'* EVICTED indicates that a client is removed'."\n" + .'* ACCEPTING indicates that the write access to the file system is being granted to a client'."\n" + .'* ACCEPTABLE indicates that the write access to the file system is granted to a client'."\n", 'type' => 'string', 'example' => '{"client1": "EVICTING","client2":"EVICTED"}', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'staticInfo' => ['noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', 'returnType' => 'synchronous'], + 'title' => 'DescribeBlackListClients', + 'description' => 'The API operation is available only for CPFS file systems.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-03-12T11:38:28.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeBlackListClients'], + ], + ], + 'ramActions' => [ [ - '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', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeBlackListClients', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], + ], + '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":""}]', + ], + 'DescribeDataFlowSubTasks' => [ + 'summary' => 'Queries data flow subtasks in batches.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'StorageType', + '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 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', - ], - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'bmcpfs-370lx1ev9ss27o0****'."\n", 'title' => ''], ], [ - 'name' => 'Paths', + 'name' => 'Filters', 'in' => 'query', + 'allowEmptyValue' => false, 'style' => 'repeatList', 'schema' => [ - 'description' => 'The absolute paths of the directories associated with the lifecycle policy.'."\n", + 'description' => 'The filter that is used to query data streaming tasks.'."\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', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The filter name.'."\n" + ."\n" + .'Valid value:'."\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, + 'enum' => ['DataFlowIds', 'DataFlowTaskIds', 'DataFlowSubTaskIds', 'Status', 'SrcFilePath', 'DstFilePath'], + 'example' => 'DataFlowSubTaskIds', + 'title' => '', + ], + '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-194433a512a2****,df-234533a5be31****`.'."\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. For example, `task-29ee8e890f45****` or `task-29ee8e890f45****,task-38ae8e890f45****`.'."\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. For example, `subTaskId-370kyfmyknxcyzw****` or `subTaskId-247kyfmyknxcyzw****,subTaskId-256kyfmyknxcyzw****`.'."\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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'subTaskId-370kyfmyknxcyzw****'."\n", 'title' => ''], + ], 'required' => false, - 'example' => '“/path1", "/path2"', + 'description' => '', + 'title' => '', + 'example' => '', ], 'required' => false, - 'example' => '"/path1", "/path2"', - 'maxItems' => 11, + 'maxItems' => 12, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'Description', + 'name' => 'NextToken', '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", - ], + '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=', 'title' => ''], ], [ - 'name' => 'LifecyclePolicyType', + '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', 'default' => '20', 'example' => '20', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ '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', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], + '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==', 'title' => ''], + '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", 'title' => ''], + 'DataFlowId' => ['description' => 'The ID of the dataflow.'."\n", 'type' => 'string', 'example' => 'df-194433a5be31****'."\n", 'title' => ''], + 'DataFlowTaskId' => ['description' => 'The ID of the dataflow task.'."\n", 'type' => 'string', 'example' => 'task-38aa8e890f45****', 'title' => ''], + 'DataFlowSubTaskId' => ['description' => 'The ID of the data streaming task.'."\n", 'type' => 'string', 'example' => 'subTaskId-370kyfmyknxcyzw****'."\n", 'title' => ''], + '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", 'title' => ''], + '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", 'title' => ''], + 'Status' => ['description' => 'The status of the data streaming task. The following information is displayed:'."\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' => 'FAILED', 'title' => ''], + 'Progress' => ['description' => 'The progress of the data streaming task. Valid values: 0 to 10000.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10000', 'title' => ''], + 'CreateTime' => ['description' => 'The time when the data streaming task was created.'."\n", 'type' => 'string', 'example' => '2024-07-01 19:59:29', 'title' => ''], + 'StartTime' => ['description' => 'The time when the data streaming task started.'."\n", 'type' => 'string', 'example' => '2024-07-03 10:43:16', 'title' => ''], + 'EndTime' => ['description' => 'The time when the data streaming task ended.'."\n", 'type' => 'string', 'example' => '2024-07-04 11:14:22', 'title' => ''], + 'ErrorMsg' => ['description' => 'The error message returned when the task failed.'."\n" + ."\n" + .'> If this parameter is not returned or the return value is empty, no error occurs.'."\n", 'type' => 'string', 'example' => 'file does not exist', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + 'ActualBytes' => ['description' => 'The actual amount of data for which the data flow task is complete. Unit: bytes.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '68', 'title' => ''], + 'AverageSpeed' => ['description' => 'The average flow velocity. Unit: bytes/s.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '34', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'FileDetail' => [ + 'description' => 'The information about the file.'."\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' => '1725897600000000000', 'title' => ''], + 'Size' => ['description' => 'The file size. Unit: bytes.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '68', 'title' => ''], + 'Checksum' => ['description' => 'The checksum. Format example: crc64:123456.'."\n", 'type' => 'string', 'example' => 'crc64:850309505450944****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidFilesystemVersion.NotSupport', 'errorMessage' => 'This Api does not support this fileSystem version.', 'description' => 'This Api does not support this fileSystem version.'], + ], + 403 => [ + ['errorCode' => 'OperationDenied.DataFlowNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidParameter.InvalidNextToken', 'errorMessage' => 'The specified NextToken is invaild.', 'description' => ''], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidDataFlow.NotFound', 'errorMessage' => 'The specified data flow does not exist.', 'description' => ''], + ['errorCode' => 'InvalidParameter.InvalidMaxResults', 'errorMessage' => 'The specified MaxResults is invalid.', 'description' => ''], + ['errorCode' => 'InvalidFilterParam', 'errorMessage' => 'The specified Filter.N.Key is invalid.', 'description' => ''], + ], + ], + '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' => '仅CPFS智算版2.6.0 及以上版本支持。您可以在控制台文件系统详情页面查看版本信息。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDataFlowSubTasks'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeDataFlowSubTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], ], + ], + 'translator' => 'manual', + ], + 'DescribeDataFlowTasks' => [ + 'summary' => 'Retrieves data flow task details.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'TransitRules', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '49028', + 'abilityTreeNodes' => ['FEATUREnasPWYFYN'], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => ['description' => 'The file system ID.'."\n" + ."\n" + .'- CPFS General-purpose: The ID must start with `cpfs-`, such as cpfs-099394bd928c\\*\\*\\*\\*.'."\n" + ."\n" + .'- CPFS for AI Computing: The ID must start with `bmcpfs-`, such as bmcpfs-290w65p03ok64ya\\*\\*\\*\\*.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'bmcpfs-290w65p03ok64ya****'."\n", 'title' => ''], + ], + [ + 'name' => 'Filters', '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", + 'description' => 'A collection of filters.', '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" + 'Key' => [ + 'description' => 'The filter key.'."\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" + .'- DataFlowIds: Filters by data flow ID.'."\n" ."\n" - .'Valid values:'."\n" + .'- TaskIds: Filters by data flow task ID.'."\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" + .'- Originator: Filters by originator.'."\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" + .'- TaskActions: Filters by data flow task type.'."\n" ."\n" - .'* RetrieveType'."\n" + .'- DataTypes: Filters by data type.'."\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", + .'- Status: Filters by status.'."\n" + ."\n" + .'- CreateTimeBegin: Filters data flow tasks created after the specified time.'."\n" + ."\n" + .'- CreateTimeEnd: Filters data flow tasks created before the specified time.'."\n" + ."\n" + .'- StartTimeBegin: Filters data flow tasks that started after the specified time.'."\n" + ."\n" + .'- StartTimeEnd: Filters data flow tasks that started before the specified time.'."\n" + ."\n" + .'- EndTimeBegin: Filters data flow tasks that ended after the specified time.'."\n" + ."\n" + .'- EndTimeEnd: Filters data flow tasks that ended before the specified time.', 'type' => 'string', + 'enum' => ['DataFlowIds', 'TaskIds', 'Originator', 'TaskActions', 'DataTypes', 'Status', 'CreateTimeBegin', 'CreateTimeEnd', 'StartTimeBegin', 'StartTimeEnd', 'EndTimeBegin', 'EndTimeEnd'], 'required' => false, - 'example' => 'All', - 'enum' => [ - 'AfterVisit', - 'All', - ], + 'example' => 'DataFlowIds', + 'title' => '', ], + 'Value' => ['description' => 'The filter value. This parameter does not support wildcards.'."\n" + ."\n" + .'- When `Key` is `DataFlowIds`, specify one or more data flow IDs. You can specify up to 10 data flow IDs, separated by commas. For example, `df-194433a5be31****` or `df-194433a512a2****,df-234533a5be31****`.'."\n" + ."\n" + .'- When `Key` is `TaskId`, specify one or more data flow task IDs. You can specify up to 10 data flow task IDs, separated by commas. For example, `task-38aa8e890f45****` or `task-38aa8e890f45****,task-29ae8e890f45****`.'."\n" + ."\n" + .'- When `Key` is `TaskActions`, specify the data flow task type. Valid values are **Import**, **Export**, **Evict**, **Inventory**, **StreamImport**, and **StreamExport**. You can specify multiple values. CPFS for AI Computing supports only Import, Export, StreamImport, and StreamExport. StreamImport and StreamExport are available only in CPFS for AI Computing 2.6.0 and later.'."\n" + ."\n" + .'- When `Key` is `DataTypes`, specify the data type of the data flow task. Valid values are MetaAndData, Metadata, and Data. You can specify multiple values.'."\n" + ."\n" + .'- When `Key` is `Originator`, specify the originator of the data flow task. Valid values are User and System.'."\n" + ."\n" + .'- When `Key` is `Status`, specify the status of the data flow task. Valid values are Pending, Executing, Failed, Completed, Canceling, and Canceled. You can specify multiple values.'."\n" + ."\n" + .'- When `Key` is `CreateTimeBegin`, specify the earliest creation time. Use the `yyyy-MM-ddTHH:mmZ` format.'."\n" + ."\n" + .'- When `Key` is `CreateTimeEnd`, specify the latest creation time. Use the `yyyy-MM-ddTHH:mmZ` format.'."\n" + ."\n" + .'- When `Key` is `StartTimeBegin`, specify the earliest start time. Use the `yyyy-MM-ddTHH:mmZ` format.'."\n" + ."\n" + .'- When `Key` is `StartTimeEnd`, specify the latest start time. Use the `yyyy-MM-ddTHH:mmZ` format.'."\n" + ."\n" + .'- When `Key` is `EndTimeBegin`, specify the earliest end time. Use the `yyyy-MM-ddTHH:mmZ` format.'."\n" + ."\n" + .'- When `Key` is `EndTimeEnd`, specify the latest end time. Use the `yyyy-MM-ddTHH:mmZ` format.', 'type' => 'string', 'required' => false, 'example' => 'df-194433a5be31****', 'title' => ''], ], 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 1, + 'maxItems' => 12, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => 'The pagination token for the next page of results. If the response is truncated, use this token in your next request to retrieve the subsequent page.', 'type' => 'string', 'required' => false, 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', 'title' => ''], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The maximum number of results to return per page.'."\n" + ."\n" + .'Valid values: 10 to 100.'."\n" + ."\n" + .'Default value: 20.', 'type' => 'integer', 'format' => 'int64', 'maximum' => '100', 'minimum' => '10', 'default' => '20', 'required' => false, 'example' => '20', 'title' => ''], + ], + [ + 'name' => 'WithReports', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to return report information.'."\n" + ."\n" + .'- True (default): Includes reports in the response.'."\n" + ."\n" + .'- False: Excludes reports from the response.'."\n" + ."\n" + .'> * Set this parameter to False to speed up the query.'."\n" + .'>'."\n" + .'> * This parameter is supported only in CPFS for AI Computing.', 'type' => 'boolean', 'default' => 'true', 'required' => false, 'example' => 'True', 'title' => ''], + ], ], '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****', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', 'title' => ''], + 'NextToken' => ['description' => 'If the response is truncated, use NextToken to retrieve the remaining results.', 'type' => 'string', 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', 'title' => ''], + 'TaskInfo' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Task' => [ + 'description' => 'A list of data flow tasks.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FilesystemId' => ['description' => 'The file system ID.', 'type' => 'string', 'example' => 'bmcpfs-290w65p03ok64ya****', 'title' => ''], + 'DataFlowId' => ['description' => 'The data flow ID.', 'type' => 'string', 'example' => 'df-194433a5be31****', 'title' => ''], + 'TaskId' => ['description' => 'The data flow task ID.', 'type' => 'string', 'example' => 'task-38aa8e890f45****', 'title' => ''], + 'SourceStorage' => ['description' => 'The access path of the source storage. The format is `<storage type>://[<account id>:]<path>`.'."\n" + ."\n" + .'Where:'."\n" + ."\n" + .'- `storage type`: The only supported type is `OSS`.'."\n" + ."\n" + .'- `account id`: The UID of the account that owns the source storage.'."\n" + ."\n" + .'- `path`: The name of the OSS bucket. The name must meet the following requirements:'."\n" + ."\n" + .' - It must contain only lowercase letters, digits, and hyphens (-), and must start and end with a lowercase letter or a digit.'."\n" + ."\n" + .' - Must be 128 characters or less.'."\n" + ."\n" + .' - It must be encoded in UTF-8.'."\n" + ."\n" + .'> * The OSS bucket must exist in the current region.'."\n" + .'>'."\n" + .'> * The `account id` parameter is supported only by CPFS computing edition 2.6.0 and later.', 'type' => 'string', 'example' => 'oss://178321033379****:bucket-01', 'title' => ''], + 'FileSystemPath' => ['description' => 'The path of the fileset in the CPFS file system.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'- The path must be 2 to 1,024 characters long.'."\n" + ."\n" + .'- The path must be encoded in UTF-8.'."\n" + ."\n" + .'- The path must start and end with a forward slash (/).'."\n" + ."\n" + .'- The path must be a fileset directory in the CPFS file system.'."\n" + ."\n" + .'> This parameter is supported only by CPFS.', 'type' => 'string', 'example' => '/a/b/c/', 'title' => ''], + 'Originator' => ['description' => 'The originator of the data flow task. Valid values:'."\n" + ."\n" + .'- `User`: The task is initiated by a user.'."\n" + ."\n" + .'- `System`: The task is an automatic update triggered by the CPFS system at a set interval.'."\n" + ."\n" + .'> This parameter is supported only by CPFS.', 'type' => 'string', 'example' => 'User', 'title' => ''], + 'TaskAction' => ['description' => 'The type of the data flow task. Valid values:'."\n" + ."\n" + .'- `Import`: Imports data from the source storage to CPFS.'."\n" + ."\n" + .'- `Export`: Exports data from CPFS to the source storage.'."\n" + ."\n" + .'- `StreamImport`: Imports data from the source storage to CPFS as a streaming task.'."\n" + ."\n" + .'- `StreamExport`: Exports data from CPFS to the source storage as a streaming task.'."\n" + ."\n" + .'- `Evict`: Releases the data blocks of files in CPFS. After eviction, only the metadata of the files remains in the file system. You can still query the files, but their data blocks are cleared and no longer occupy storage capacity. When you access the file, CPFS reloads its data from the source storage on demand.'."\n" + ."\n" + .'- `Inventory`: Generates a file inventory that lists files managed by the data flow and their cache status.'."\n" + ."\n" + .'> `StreamImport` and `StreamExport` are supported only by CPFS computing edition 2.6.0 and later.', 'type' => 'string', 'example' => 'Import', 'title' => ''], + 'DataType' => ['description' => 'The type of data that the data flow task operates on. Valid values:'."\n" + ."\n" + .'- `Metadata`: The metadata of a file, such as its timestamp, ownership, and permissions. Only the file metadata is imported. You can see the file, but when you access the file data, CPFS loads the data from the source storage on demand.'."\n" + ."\n" + .'- `Data`: The data blocks of a file.'."\n" + ."\n" + .'- `MetaAndData`: The metadata and data blocks of a file.'."\n" + ."\n" + .'> CPFS computing edition supports only the `MetaAndData` type.', 'type' => 'string', 'example' => 'MetaAndData ', 'title' => ''], + 'Progress' => ['description' => 'The progress of the data flow task, based on the number of completed operations.', 'type' => 'integer', 'format' => 'int64', 'example' => '50', 'title' => ''], + 'Status' => ['description' => 'The status of the data flow task. Valid values:'."\n" + ."\n" + .'- `Pending`: The task is created and waiting to be executed.'."\n" + ."\n" + .'- `Executing`: The task is in progress.'."\n" + ."\n" + .'- `Failed`: The task has failed. Review the data flow task report for details on the cause.'."\n" + ."\n" + .'- `Completed`: The task has finished. Review the data flow task report to verify the transfer.'."\n" + ."\n" + .'- `Canceled`: The task was canceled before it could be completed.'."\n" + ."\n" + .'- `Canceling`: The task is being canceled.', 'type' => 'string', 'example' => 'Failed', 'title' => ''], + 'ReportPath' => ['description' => 'The path where the data flow task report is saved in the CPFS file system.'."\n" + ."\n" + .'- For CPFS, task reports are generated in the `.dataflow_report` directory of the file system.'."\n" + ."\n" + .'- For CPFS computing edition, this parameter returns an OSS download link for the task report.', 'type' => 'string', 'deprecated' => true, 'example' => '/path_in_cpfs/reportfile.cvs', 'title' => ''], + 'CreateTime' => ['description' => 'The time when the task was created.', 'type' => 'string', 'example' => '2021-08-04 18:27:35', 'title' => ''], + 'StartTime' => ['description' => 'The time when the task started.', 'type' => 'string', 'example' => '2021-08-04 18:27:35', 'title' => ''], + 'EndTime' => ['description' => 'The time when the task ended.', 'type' => 'string', 'example' => '2021-08-04 18:27:35', 'title' => ''], + 'FsPath' => ['description' => 'The intelligent directory path.', 'type' => 'string', 'example' => '/aa/', 'title' => ''], + 'ConflictPolicy' => [ + 'description' => 'The conflict policy for files with the same name.'."\n" + ."\n" + .'- `SKIP_THE_FILE`: Skips the file with the same name.'."\n" + ."\n" + .'- `KEEP_LATEST`: Compares the update times and keeps the latest version.'."\n" + ."\n" + .'- `OVERWRITE_EXISTING`: Overwrites the existing file.', + 'type' => 'string', + 'example' => 'KEEP_LATEST', + 'enum' => ['SKIP_THE_FILE', 'KEEP_LATEST', 'OVERWRITE_EXISTING'], + 'title' => '', + ], + 'Directory' => ['description' => 'The directory processed by the data flow task.', 'type' => 'string', 'title' => '', 'example' => '/path_in_cpfs/'], + 'DstDirectory' => ['description' => 'The destination directory mapped to the data flow task.', 'type' => 'string', 'example' => '/path_in_cpfs/'."\n", 'title' => ''], + 'ErrorMsg' => ['description' => 'The cause of the task exception.'."\n" + ."\n" + .'> A null or empty value in this field indicates that no error occurred.', 'type' => 'string', 'example' => '{"ErrorKey":"PATH_NOT_ACCESSIBLE","ErrorDetail":"lstat /cpfs/370lx1ev9ss27o****/test/abcdfnotfound: no such file or directory"}', 'title' => ''], + 'ProgressStats' => [ + 'description' => 'The progress details of the data flow task.', + 'type' => 'object', + 'properties' => [ + 'FilesTotal' => ['description' => 'The total number of files scanned at the source.', 'type' => 'integer', 'format' => 'int64', 'example' => '3', 'title' => ''], + 'FilesDone' => ['description' => 'The number of files that have been processed, including skipped files.', 'type' => 'integer', 'format' => 'int64', 'example' => '3', 'title' => ''], + 'ActualFiles' => ['description' => 'The number of files that were actually transferred.', 'type' => 'integer', 'format' => 'int64', 'example' => '3', 'title' => ''], + 'BytesTotal' => ['description' => 'The total amount of data scanned at the source, in bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '131092971520', 'title' => ''], + 'BytesDone' => ['description' => 'The amount of data that has been processed, including data from skipped files, in bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '131092971520', 'title' => ''], + 'ActualBytes' => ['description' => 'The amount of data that was actually transferred, in bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '131092971520', 'title' => ''], + 'RemainTime' => ['description' => 'The estimated time remaining, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '437', 'title' => ''], + 'AverageSpeed' => ['description' => 'The average transfer speed, in bytes/s.', 'type' => 'integer', 'format' => 'int64', 'example' => '342279299', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'Reports' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Report' => [ + 'description' => 'A list of reports.'."\n" + ."\n" + .'> - Streaming tasks do not support reports.'."\n" + .'>'."\n" + .'> - When the `WithReport` parameter is `true`, this field contains report data for CPFS computing edition file systems.'."\n" + .'>'."\n" + .'> - The `WithReport` parameter is supported only by CPFS computing edition.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Name' => ['description' => 'The name of the report.'."\n" + ."\n" + .'- CPFS:'."\n" + ."\n" + .' `TotalFilesReport`: The task report.'."\n" + ."\n" + .'- CPFS computing edition:'."\n" + ."\n" + .' - `FailedFilesReport`: A report of files that failed to transfer.'."\n" + ."\n" + .' - `SkippedFilesReport`: A report of files that were skipped.'."\n" + ."\n" + .' - `SuccessFilesReport`: A report of files that transferred successfully.', 'type' => 'string', 'example' => 'TotalFilesReport', 'title' => ''], + 'Path' => ['description' => 'The report URL.', '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', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Includes' => ['description' => 'The subdirectories to include in the task. The task processes only the contents within these directories.'."\n" + ."\n" + .'> This feature is supported only by CPFS computing edition.', 'type' => 'string', 'example' => '["/test/","/test1/"]'."\n", 'title' => ''], + 'TransferFileListPath' => ['description' => 'Specifies an OSS directory that contains a CSV file. The task synchronizes only the files listed in this CSV file.'."\n" + ."\n" + .'> This feature is supported only by CPFS computing edition.', 'type' => 'string', 'example' => '/path_in_cpfs/'."\n", 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidFilesystemVersion.NotSupport', 'errorMessage' => 'This Api does not support this fileSystem version.', 'description' => 'This Api does not support this fileSystem version.'], ], 403 => [ - [ - 'errorCode' => 'OperationDenied.NotSupportPaths.N', - 'errorMessage' => 'Your request does not meet the gray condition. The Paths.N parameter is not supported.', - ], + ['errorCode' => 'OperationDenied.DataFlowNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], ], [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], - [ - 'errorCode' => 'InvalidParameter.PathNotExist', - 'errorMessage' => 'The specified path does not exist.', - ], + ['errorCode' => 'InvalidParameter.InvalidNextToken', 'errorMessage' => 'The specified NextToken is invaild.', 'description' => ''], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidDataFlow.NotFound', 'errorMessage' => 'The specified data flow does not exist.', 'description' => ''], + ['errorCode' => 'InvalidParameter.InvalidMaxResults', 'errorMessage' => 'The specified MaxResults is invalid.', 'description' => ''], + ['errorCode' => 'InvalidFilterParam', 'errorMessage' => 'The specified Filter.N.Key is invalid.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeDataFlowTasks', + 'description' => 'Querying data flow tasks is supported only on CPFS 2.2.0 or later and CPFS AI Computing Edition 2.4.0 or later. You can find the version information on the file system details page in the console.', + 'changeSet' => [ + ['createdAt' => '2024-09-09T01:49:11.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-02-29T02:03:33.000Z', 'description' => 'Error codes changed, Response parameters changed, Response parameters changed'], + ['createdAt' => '2021-10-28T08:34:23.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeDataFlowTasks'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeDataFlowTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], - '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', - ], + 'DescribeDataFlows' => [ + 'summary' => 'Queries the dataflows of a CPFS file system.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'high', - 'chargeType' => 'paid', - 'abilityTreeCode' => '13941', - 'abilityTreeNodes' => [ - 'FEATUREnasZ6WBFV', - ], + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '49017', + 'abilityTreeNodes' => ['FEATUREnasPWYFYN'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], @@ -8951,37 +8926,72 @@ [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '31a8e4****', - ], + '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' => 'cpfs-099394bd928c****', 'title' => ''], ], [ - 'name' => 'LifecyclePolicyName', + 'name' => 'Filters', 'in' => 'query', + 'allowEmptyValue' => false, + 'style' => 'repeatList', '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', + '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, + 'enum' => ['DataFlowIds', 'FsetIds', 'FileSystemPath', 'SourceStorage', 'ThroughputList', 'Description', 'Status', 'SourceStoragePath'], + 'example' => 'FsetIds', + 'title' => '', + ], + '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', 'title' => ''], + ], + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', + ], 'required' => false, 'docRequired' => false, - 'example' => 'lifecyclepolicy1', + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'LifecyclePolicyId', + 'name' => 'NextToken', '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', - ], + '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=', 'title' => ''], + ], + [ + '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', 'default' => '20', 'example' => '20', 'title' => ''], ], ], 'responses' => [ @@ -8989,155 +8999,265 @@ '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', + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', 'title' => ''], + '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=', 'title' => ''], + '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****', 'title' => ''], + 'DataFlowId' => ['description' => 'The ID of the dataflow.'."\n", 'type' => 'string', 'example' => 'df-194433a5be31****', 'title' => ''], + 'FsetId' => ['description' => 'The fileset ID.'."\n" + ."\n" + .'> Only CPFS supports this parameter.', 'type' => 'string', 'example' => 'fset-1902718ea0ae****', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + '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://178321033379****:bucket-01', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + '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' => 'Bucket01数据流动', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + '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/', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + '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/', 'title' => ''], + 'FsetDescription' => ['description' => 'The description of the automatic update.'."\n" + ."\n" + .'> Only CPFS supports this parameter.', 'type' => 'string', 'example' => '自动更新01', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + '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, 'maxLength' => 1024, 'example' => '/prefix/'."\n"], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidFilesystemVersion.NotSupport', 'errorMessage' => 'This Api does not support this fileSystem version.', 'description' => 'This Api does not support this fileSystem version.'], + ], + 403 => [ + ['errorCode' => 'OperationDenied.DataFlowNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidFilterValue', 'errorMessage' => 'The specified parameter Filter.1.Value is invalid.', 'description' => ''], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidFilterParam', 'errorMessage' => 'The specified Filter.N.Key is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.InvalidMaxResults', 'errorMessage' => 'The specified MaxResults is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.InvalidNextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => ''], + ], ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeDataFlows', + 'description' => '- 仅CPFS 2.2.0及以上版本、CPFS智算版2.4.0及以上版本支持数据流动。您可以在控制台文件系统详情页面查看版本信息。'."\n" + .'- 筛选键(Filters)中,FsetIds、DataFlowlds、SourceStorage、ThroughputList、Status需要做全字匹配,FileSystemPath、Description、SourceStoragePath支持模糊匹配。'."\n" + .'- 支持组合查询。', + 'changeSet' => [ + ['createdAt' => '2024-09-14T05:41:00.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-05T09:22:59.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-02-29T02:03:33.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'], + ['createdAt' => '2021-10-28T08:34:23.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeDataFlows'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeDataFlows', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'DescribeDirQuotas' => [ + 'summary' => 'Queries the directory quotas of a file system.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREnasZ6WBFV', - ], + '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, - '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', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'example' => '1ca404****', 'title' => ''], ], [ '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', - ], - ], + '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', 'title' => ''], ], [ - 'name' => 'StorageType', + 'name' => 'PageSize', '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', - ], - ], + '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', 'title' => ''], ], [ - 'name' => 'LifecyclePolicyId', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'title' => '生命周期策略的 ID', - 'description' => 'The ID of the lifecycle policy.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'lc-xxx', - ], + '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', 'title' => ''], ], ], 'responses' => [ @@ -9145,103 +9265,125 @@ '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', + 'TotalCount' => ['description' => 'The total number of directories.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + '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', 'title' => ''], + 'Path' => ['description' => 'The absolute path of a directory.'."\n", 'type' => 'string', 'example' => '/data/sub1', 'title' => ''], + 'DirInode' => ['description' => 'The inode number of the directory.'."\n", 'type' => 'string', 'example' => '1123', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + 'FileCountLimit' => ['description' => 'The maximum number of files that a user can create in the directory.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10000', 'title' => ''], + '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', 'title' => ''], + 'SizeLimit' => ['description' => 'The maximum size of files that a user can create in the directory. Unit: GiB.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1024', 'title' => ''], + 'QuotaType' => ['description' => 'The type of the quota. Valid values: Accounting and Enforcement.'."\n", 'type' => 'string', 'example' => 'Accounting', 'title' => ''], + 'SizeReal' => ['description' => 'The total size of files that a user has created in the directory. Unit: GiB.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '800', 'title' => ''], + 'SizeRealInByte' => ['description' => 'The total size of files that a user has created in the directory. Unit: bytes.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '858995833870', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '5BC5CB97-9F28-42FE-84A4-0CD0DF42****', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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", + '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' => ' ', - ], - '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', + 'changeSet' => [ + ['createdAt' => '2024-04-16T08:47:00.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-03T07:40:51.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '35', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDirQuotas'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeDirQuotas', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], + ], + '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' => false, + 'deprecated' => true, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '19614', - 'abilityTreeNodes' => [ - 'FEATUREnasZ6WBFV', - ], + 'abilityTreeCode' => '13952', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '31a8e4****', - ], + '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', 'title' => ''], ], [ - 'name' => 'Path', + 'name' => 'PageNumber', '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', - ], + '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' => '', 'title' => ''], ], ], 'responses' => [ @@ -9249,163 +9391,188 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Entry' => [ - 'description' => 'The details about the file or directory.'."\n", + 'FileSystems' => [ 'type' => 'object', + 'itemNode' => true, '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', + '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', 'title' => ''], + 'Capacity' => ['description' => 'The capacity of the file system.'."\n" + ."\n" + .'Unit: GiB.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''], + 'MeteredIASize' => ['description' => 'The storage usage of the Infrequent Access (IA) storage medium.'."\n" + ."\n" + .'Unit: bytes.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '362832', 'title' => ''], + 'CreateTime' => ['description' => 'The time when the NAS file system was created.'."\n", 'type' => 'string', 'example' => '2017-05-27T15:43:06CST', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + 'RegionId' => ['description' => 'The region ID.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + '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', 'title' => ''], + 'FileSystemId' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'example' => '109c04****', 'title' => ''], + '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', 'title' => ''], + 'Description' => ['description' => 'The description of the file system.'."\n", 'type' => 'string', 'example' => '31a8e48eda', 'title' => ''], + 'ExpiredTime' => ['description' => 'The time when the file system expires.'."\n", 'type' => 'string', 'example' => '2017-08-27T15:43:06CST', 'title' => ''], + 'ZoneId' => ['description' => 'The zone ID.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou-b', 'title' => ''], + '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', 'title' => ''], + 'ExpiredTime' => ['description' => 'The end time of the validity period for the storage plan.'."\n", 'type' => 'string', 'example' => '2020-01-05T16:00:00Z', 'title' => ''], + 'Size' => ['description' => 'The capacity of the storage plan.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '107374182400', 'title' => ''], + 'PackageId' => ['description' => 'The ID of the storage plan.'."\n", 'type' => 'string', 'example' => 'naspackage-0be9c4b624-37****', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + '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', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], - 'OfflineUnchangedDuration' => [ - 'type' => 'integer', - 'format' => 'int64', + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'TotalCount' => ['description' => 'The total number of file system entries.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '9F088138-FD73-4B68-95CC-DFAD4D85****', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + 'TotalCount' => ['description' => 'The number of file systems of the current type.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'ExpiredCount' => ['description' => 'The number of expired file systems.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', - ], - ], - ], - 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], - [ - 'errorCode' => 'InvalidParameter.PathNotExist', - 'errorMessage' => 'The specified path does not exist.', + 'title' => '', + 'example' => '', ], ], ], 'staticInfo' => [ + 'substitutions' => ['NAS::2017-06-26::DescribeResourceStatistics'], '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", + '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' => ' ', - ], - 'DescribeLifecyclePolicies' => [ - 'summary' => 'Queries lifecycle policies.', - 'methods' => [ - 'get', + 'changeSet' => [ + ['createdAt' => '2024-01-25T08:54:29.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeFileSystemStatistics', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeFileSystemStatistics'], + ], ], + ], + 'DescribeFileSystems' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9417,152 +9584,122 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13954', - 'abilityTreeNodes' => [ - 'FEATUREnas7AL8PW', - 'FEATUREnasEER7AI', - ], + 'abilityTreeCode' => '13951', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], ], 'parameters' => [ [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '31a8e4****', - ], + 'schema' => ['description' => 'The file system ID.'."\n" + .'- General-purpose NAS: 31a8e4****.'."\n" + .'- Extreme NAS: must start with extreme-, such as extreme-0015****.'."\n" + .'- Cloud Parallel File Storage (CPFS) (locally redundant): must start with cpfs-, such as cpfs-125487****.'."\n" + .'- CPFS SE (zone-redundant): must start with cpfsse-, such as cpfsse-022c71b134****.', 'type' => 'string', 'required' => false, 'example' => '31a8e4****', 'title' => ''], ], [ - 'name' => 'LifecyclePolicyName', + 'name' => 'FileSystemType', 'in' => 'query', 'schema' => [ - 'description' => 'The name of the lifecycle policy. The naming rules are as follows:'."\n" + 'description' => 'The file system type.'."\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" + .'Valid values:'."\n" + ."\n" + .'- all (default): queries all types.'."\n" + .'- standard: General-purpose NAS.'."\n" + .'- extreme: Extreme NAS.'."\n" + .'- cpfs: Cloud Parallel File Storage (CPFS) (locally redundant).'."\n" + .'- cpfsse: CPFS SE (zone-redundant).'."\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", + .'> To query multiple types, separate them with commas (,).', + 'enumValueTitles' => [], 'type' => 'string', 'required' => false, - 'docRequired' => false, - 'example' => 'lifecyclepolicy_01', + 'default' => 'all', + 'enum' => [], + 'example' => 'standard', + 'title' => '', ], ], [ - 'name' => 'PageSize', + 'name' => 'VpcId', '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', - ], + 'schema' => ['description' => 'The virtual private cloud (VPC) ID.'."\n" + ."\n" + .'The VPC must be the same as the VPC of the Elastic Computing Service (ECS) server to which you want to mount the file system.', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp1sevsgtqvk5gxbl****', 'title' => ''], ], [ - 'name' => 'PageNumber', + '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, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The number of file systems on each page during a paged query.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'example' => '1', 'title' => ''], ], [ - 'name' => 'StorageType', + 'name' => 'PageNumber', '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', - ], - ], + 'schema' => ['description' => 'The page number of the file system list.'."\n" + ."\n" + .'Start value (default value): 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'LifecyclePolicyId', + 'name' => 'StorageType', 'in' => 'query', 'schema' => [ - 'title' => '生命周期策略的 ID', - 'description' => 'The ID of the lifecycle policy.'."\n", 'type' => 'string', 'required' => false, - 'example' => 'lc-xxx', + 'description' => '', + 'enum' => ['Premium', 'Performance', 'Capacity', 'advance', 'standard'], + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'LifecyclePolicyType', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', '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', + 'description' => 'The tag information.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag information.', + '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://`.', 'type' => 'string', 'required' => false, 'example' => 'testKey', 'title' => ''], + '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://`.', 'type' => 'string', 'required' => false, 'example' => 'testValue', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', ], - ], - ], - [ - '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", + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'Path', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'title' => '根据路径筛选', - 'description' => 'Filter by path.'."\n" - ."\n" - .'> Only CPFS for Lingjun supports this parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '/abc/', - ], + 'schema' => ['description' => 'The resource group ID.'."\n" + ."\n" + .'You can view the resource group ID in the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups?).', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmwavnfef****'."\n", 'title' => ''], ], ], 'responses' => [ @@ -9570,256 +9707,524 @@ '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', + 'FileSystems' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'FileSystem' => [ + 'description' => 'The file system list.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The file system status. Valid values:'."\n" + .'- Pending: The file system is processing a task.'."\n" + .'- Running: The file system is active. You can perform subsequent operations (such as creating a mount target) only when the status is Running.'."\n" + .'- Stopped: The file system is unavailable.'."\n" + .'- Extending: The file system is being scaled out.'."\n" + .'- Stopping: The file system is being stopped.'."\n" + .'- Deleting: The file system is being deleted.', 'type' => 'string', 'example' => 'Pending', 'title' => ''], + 'MeteredIASize' => ['description' => 'The storage usage of the IA storage class.'."\n" + ."\n" + .'Unit: bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '362832', 'title' => ''], + 'Capacity' => ['description' => 'The capacity of the file system.'."\n" + ."\n" + .'Unit: GiB.', 'type' => 'integer', 'format' => 'int64', 'example' => '100', 'title' => ''], + 'CreateTime' => ['description' => 'The time when the file system was created.', 'type' => 'string', 'example' => '2020-01-05T16:00:00Z', 'title' => ''], + 'ChargeType' => ['description' => 'The billing method.'."\n" + ."\n" + .'Valid values:'."\n" + .'- Subscription: subscription.'."\n" + .'- PayAsYouGo: pay-as-you-go.'."\n" + .'- Package: a storage plan is bound.', 'type' => 'string', 'example' => 'PayAsYouGo', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tag information of the file system.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'testKey', 'title' => ''], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'testValue', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], ], - 'Threshold' => [ - 'title' => '转储规则的阈值', - 'description' => 'Threshold for the rule.'."\n", - 'type' => 'string', - 'example' => '3', + 'description' => '', + 'title' => '', + 'example' => '', + ], + '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)', 'type' => 'string', 'example' => 'Performance', 'title' => ''], + 'MeteredSize' => ['description' => 'The standard storage usage of the file system.'."\n" + ."\n" + .'This is not a real-time value. It represents the maximum usage in the previous hour. Unit: bytes.'."\n" + .'> To view the total storage capacity of a file system, see [Query file system resource usage](~~250243~~).', 'type' => 'integer', 'format' => 'int64', 'example' => '1611661312', 'title' => ''], + 'Description' => ['description' => 'The description of the file system.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'Bandwidth' => ['description' => 'The bandwidth of the file system.'."\n" + ."\n" + .'Unit: MB/s. This field is not returned for General-purpose NAS file systems.', 'type' => 'integer', 'format' => 'int64', 'example' => '150', 'title' => ''], + 'SupportedFeatures' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SupportedFeature' => [ + 'description' => 'The features supported by the file system.', + 'type' => 'array', + 'items' => ['description' => 'The feature supported by the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- Lifecycle: lifecycle management.'."\n" + .'- ACL: access control list.'."\n" + .'- Ipv6: IPv6.'."\n" + ."\n" + .'> Currently, only Extreme NAS file systems in the Chinese mainland regions support IPv6.', 'type' => 'string', 'example' => 'Lifecycle', 'title' => ''], + 'title' => '', + 'example' => '', + ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], - ], - ], - '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', + 'Version' => ['description' => 'The version number of the file system.'."\n" + ."\n" + .'This field applies to Extreme NAS and CPFS file systems.', 'type' => 'string', 'example' => '2.3.4', 'title' => ''], + 'ProtocolType' => ['description' => 'The protocol type of the file system.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- NFS: NFS protocol.'."\n" + .'- SMB: SMB protocol.'."\n" + .'- cpfs: the protocol type supported by CPFS or CPFS SE file systems.', 'type' => 'string', 'example' => 'NFS', 'title' => ''], + 'MountTargets' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'MountTarget' => [ + 'description' => 'The mount target information.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'VpcId' => ['description' => 'The VPC ID.', 'type' => 'string', 'example' => 'vpc-bp1sevsgtqvk5gxbl****', 'title' => ''], + 'Status' => ['description' => 'The mount target status.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- Active: available.'."\n" + .'- Inactive: unavailable.'."\n" + .'- Pending: processing a task.'."\n" + .'- Deleting: being deleted.'."\n" + .'- Hibernating: entering hibernation.'."\n" + .'- Hibernated: hibernated.', 'type' => 'string', 'example' => 'Active', 'title' => ''], + 'ClientMasterNodes' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ClientMasterNode' => [ + 'description' => 'The client management node information.'."\n" + ."\n" + .'This parameter is returned only for CPFS file systems.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EcsId' => ['description' => 'The ECS instance ID of the management node.', 'type' => 'string', 'example' => 'i-hp3i3odi5ory1buo****', 'title' => ''], + 'DefaultPasswd' => ['description' => 'The default logon password of the management node.', 'type' => 'string', 'example' => '123456', 'title' => ''], + 'EcsIp' => ['description' => 'The IP address of the ECS instance for the management node.', 'type' => 'string', 'example' => '192.168.1.0', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'MountTargetDomain' => ['description' => 'The mount target.', 'type' => 'string', 'example' => '109c042666-w****.cn-hangzhou.nas.aliyuncs.com', 'title' => ''], + 'AccessGroupName' => ['description' => 'The name of the permission group used by the mount target.', 'type' => 'string', 'example' => 'test-001', 'title' => ''], + 'DualStackMountTargetDomain' => ['description' => 'The dual-stack (IPv4 and IPv6) mount target.'."\n" + ."\n" + .'> Only Extreme NAS file systems in the Chinese mainland regions support IPv6.', 'type' => 'string', 'example' => '174494b666-x****.dualstack.cn-hangzhou.nas.aliyuncs.com', 'title' => ''], + 'VswId' => ['description' => 'The vSwitch ID.', 'type' => 'string', 'example' => 'vsw-bp1omfzsszekkvaxn****', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tag information of the mount target.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'testKey', 'title' => ''], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'testValue', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'NetworkType' => ['description' => 'The network type. The value is vpc, which indicates VPC.', 'type' => 'string', 'example' => 'vpc', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'KMSKeyId' => ['description' => 'The KMS key ID.', 'type' => 'string', 'example' => '0e478b7a-4262-4802-b8cb-00d3fb40****', 'title' => ''], + 'AutoSnapshotPolicyId' => ['description' => 'The automatic snapshot policy ID.', 'type' => 'string', 'example' => 'sp-extreme-09npwxadu1eqvw****', 'title' => ''], + 'RegionId' => ['description' => 'The region ID.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'FileSystemType' => ['description' => 'The file system type.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- standard: General-purpose NAS.'."\n" + .'- extreme: Extreme NAS.'."\n" + .'- cpfs: Cloud Parallel File Storage (CPFS) (locally redundant).'."\n" + .'- cpfsse: CPFS SE (zone-redundant).', 'type' => 'string', 'example' => 'standard', 'title' => ''], + 'FileSystemId' => ['description' => 'The file system ID.', 'type' => 'string', 'example' => '109c04****', 'title' => ''], + 'EncryptType' => ['description' => 'The encryption type.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- 0: not encrypted.'."\n" + .'- 1: NAS-managed key.'."\n" + .'- 2: custom key encryption.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'Ldap' => [ + 'description' => 'The LDAP configuration information.'."\n" + ."\n" + .'This parameter is returned only for CPFS file systems.', + 'type' => 'object', + 'properties' => [ + 'BindDN' => ['description' => 'The distinguished name (DN) bound to LDAP.', 'type' => 'string', 'example' => 'cn=alibaba,dc=com', 'title' => ''], + 'SearchBase' => ['description' => 'The LDAP search base.', 'type' => 'string', 'example' => 'dc=example', 'title' => ''], + 'URI' => ['description' => 'The LDAP service address.', 'type' => 'string', 'example' => 'ldap://ldap.example.example', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'ExpiredTime' => ['description' => 'The expiration time of the file system.', 'type' => 'string', 'example' => '2020-01-05T16:00:00Z', 'title' => ''], + 'ZoneId' => ['description' => 'The zone in which the file system resides.', 'type' => 'string', 'example' => 'cn-hangzhou-b', 'title' => ''], + 'VpcId' => ['description' => 'The VPC ID.', 'type' => 'string', 'example' => 'vpc-bp1sevsgtqvk5gxbl****'."\n", 'title' => ''], + 'VswIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VswId' => [ + 'description' => 'The vSwitch information.', + 'type' => 'array', + 'items' => ['description' => 'The vSwitch ID.', 'type' => 'string', 'example' => 'vsw-bp1omfzsszekkvaxn****'."\n", 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Packages' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Package' => [ + 'description' => 'The storage plan information.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'StartTime' => ['description' => 'The start time of the storage plan.', 'type' => 'string', 'example' => '2019-12-05T01:40:56Z', 'title' => ''], + 'ExpiredTime' => ['description' => 'The expiration time of the storage plan.', 'type' => 'string', 'example' => '2020-01-05T16:00:00Z', 'title' => ''], + 'Size' => ['description' => 'The capacity of the storage plan.'."\n" + .'Unit: bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '107374182400', 'title' => ''], + 'PackageId' => ['description' => 'The storage plan ID.', 'type' => 'string', 'example' => 'naspackage-0be9c4b624-37****', 'title' => ''], + 'PackageType' => ['description' => 'The storage plan type.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- ssd: Performance.'."\n" + .'- hybrid: Capacity.', 'type' => 'string', 'example' => 'hybrid', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'AccessPointCount' => ['description' => 'The number of access points.', 'type' => 'string', 'example' => '1', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The resource group ID.', 'type' => 'string', 'example' => 'rg-acfmwavnfef****'."\n", 'title' => ''], + 'MeteredArchiveSize' => ['description' => 'The storage usage of the Archive storage class.'."\n" + ."\n" + .'Unit: bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '1611661312', 'title' => ''], + 'Options' => [ + 'description' => 'The options.', + 'type' => 'object', + 'properties' => [ + 'EnableOplock' => ['description' => 'Indicates whether the OpLock feature is enabled.'."\n" + .'Valid values:'."\n" + .'- true: Enabled.'."\n" + .'- false: Not enabled.'."\n" + .'> Only file systems that use the SMB Protocol Type support this feature.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'VscAccessPointAccessOnly' => ['type' => 'boolean', 'description' => '', 'title' => '', 'example' => ''], + 'EnableABE' => ['type' => 'boolean', 'description' => '', 'title' => '', 'example' => ''], ], - 'Threshold' => [ - 'title' => '取回规则的阈值', - 'description' => 'Threshold for the rule.'."\n", - 'type' => 'string', - 'example' => 'All', + 'title' => '', + 'example' => '', + ], + 'QuorumVswId' => ['description' => 'The vSwitch ID.', 'type' => 'string', 'example' => 'vsw-bp1omfzsszekkvaxn****', 'title' => ''], + 'VscTarget' => ['description' => '> This parameter is not yet available.', 'type' => 'string', 'example' => 'cpfs-370y1tv921vpuj4****-000001.cn-wulanchabu.cpfs.aliyuncs.com', 'title' => ''], + 'RedundancyType' => ['title' => '', 'description' => 'The storage redundancy type. This field has a value only for CPFS SE file systems.', 'type' => 'string', 'example' => 'LRS', 'default' => 'LRS'], + 'RedundancyVSwitchIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RedundancyVSwitchId' => [ + 'title' => '', + 'description' => 'The list of zone-redundant vSwitch IDs.', + 'type' => 'array', + 'items' => ['title' => '', 'description' => 'The list of zone-redundant vSwitch IDs.'."\n" + .'This field has a value when RedundancyType is set to ZRS.', 'type' => 'string', 'example' => 'vsw-123xxx'], + 'example' => '', + ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], - 'description' => '', ], - ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '035B3A3A-E514-4B41-B906-5D906CFB****', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of file systems.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of file systems on each page.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the file system list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Region.NotSupported', 'errorMessage' => 'The specified Region is not supported for this API now.', 'description' => 'The current region does not support this function.'], + ], 404 => [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'gatewayOptions' => [ + 'gatewayProtocols' => [], ], - '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", + 'title' => 'Query file system information', + 'summary' => 'Queries file system information.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateLifecycleRetrieveJob' => [ - 'summary' => 'Creates a data retrieval task.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2025-05-26T12:48:09.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2025-05-08T06:05:41.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2025-03-19T01:52:49.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-10-17T03:53:02.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-10-08T06:55:28.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-07-08T02:24:35.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-03-25T10:51:46.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-12-26T02:03:07.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-11-03T07:39:49.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-05T02:55:26.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-04-29T13:41:21.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-01-05T07:04:12.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-11-17T08:53:59.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-07-29T09:46:52.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeFileSystems'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeFileSystems', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","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 \\"VscAccessPointAccessOnly\\": false,\\n \\"EnableABE\\": false\\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}","type":"json"}]', + ], + 'DescribeFilesets' => [ + 'summary' => 'Queries the list of created filesets.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '19616', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeCode' => '55590', + 'abilityTreeNodes' => ['FEATUREnasPWYFYN'], ], 'parameters' => [ [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '31a8e4****', - ], + 'schema' => ['description' => 'The file system ID.'."\n" + ."\n" + .'- CPFS: The ID must start with `cpfs-`, such as cpfs-099394bd928c****.'."\n" + ."\n" + .'- CPFS for Lingjun: The ID must start with `bmcpfs-`, such as bmcpfs-290w65p03ok64ya****.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'bmcpfs-290w65p03ok64ya****', 'title' => ''], ], [ - 'name' => 'Paths', + 'name' => 'Filters', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The directories or files that you want to retrieve. You can specify a maximum of 10 paths.'."\n", + 'description' => 'The filter key information for the filesets to query.', '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', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The name of the filter key. Valid values:'."\n" + ."\n" + .'- FsetIds: filters by fileset ID.'."\n" + .'- FileSystemPath: filters by the path of the fileset in the CPFS file system.'."\n" + .'- Description: filters by the description of the fileset.'."\n" + .'- QuotaExists: filters by whether a quota exists.'."\n" + .'> Only CPFS for Lingjun 2.7.0 and later support filtering by the QuotaExists parameter.', + 'enumValueTitles' => ['FileSystemPath' => '根据 Fileset 在 CPFS 文件系统中的路径筛选', 'Description' => '根据 Fileset 的描述筛选', 'FsetIds' => '根据 Fileset ID 筛选', 'QuotaExists' => '根据 Quota 是否存在进行筛选'], + 'type' => 'string', + 'enum' => ['FsetIds', 'FileSystemPath', 'Description', 'QuotaExists'], + 'required' => false, + 'example' => 'FsetIds', + 'title' => '', + ], + 'Value' => ['description' => 'The value of the filter key. Wildcards are not supported for this parameter.'."\n" + ."\n" + .'- If Key is set to FsetIds, Value is set to a fileset ID. You can specify one or more fileset IDs, up to 10. Separate multiple values with commas (,). Example: `fset-1902718ea0ae****` or `fset-1902718ea0ae****,fset-3212718ea0ae****`.'."\n" + .'- If Key is set to FileSystemPath, Value is set to the full path or a partial path of the fileset in the CPFS file system. The value must be 2 to 1,024 characters in length and encoded in UTF-8.'."\n" + .'- If Key is set to Description, Value is set to the full description or a partial description of the fileset.'."\n" + .'- If Key is set to QuotaExists, Value is set to true or false. If you leave this parameter empty, all filesets are returned.', 'type' => 'string', 'required' => false, 'example' => 'fset-1902718ea0ae****', 'title' => ''], + ], 'required' => false, - 'example' => '["/pathway/doc1","/pathway/doc2"]', + 'description' => '', + 'title' => '', + 'example' => '', ], - 'required' => true, - 'example' => 'Paths.1=/pathway/doc1,Paths.2=/pathway/doc2', - 'maxItems' => 11, + 'required' => false, + 'docRequired' => false, + 'maxItems' => 5, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'StorageType', + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. If the response is truncated, you can use this token in the next request to retrieve the remaining results.', 'type' => 'string', 'required' => false, 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', 'title' => ''], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The number of results per query.'."\n" + ."\n" + .'Valid values: 10 to 100. Default value: 20.', 'type' => 'integer', 'format' => 'int64', 'maximum' => '100', 'minimum' => '10', 'default' => '20', 'required' => false, 'example' => '20', 'title' => ''], + ], + [ + 'name' => 'OrderByField', 'in' => 'query', - 'allowEmptyValue' => true, 'schema' => [ - 'description' => 'The storage class.'."\n" + 'description' => 'The field by which to sort the results.'."\n" ."\n" - .'* InfrequentAccess (default): the Infrequent Access (IA) storage class.'."\n" - .'* Archive: the Archive storage class.'."\n", + .'- FileCountLimit: the quota file count limit.'."\n" + .'- SizeLimit: the quota capacity limit.'."\n" + .'- FileCountUsage: the file count usage.'."\n" + .'- SpaceUsage: the capacity usage.', + 'enumValueTitles' => ['SpaceUsage' => 'capacity usage.', 'FileCountLimit' => 'quota file count limit.', 'SizeLimit' => 'quota capacity limit.', 'FileCountUsage' => 'file count usage.'], 'type' => 'string', + 'enum' => ['SpaceUsage', 'FileCountUsage', 'SizeLimit', 'FileCountLimit'], 'required' => false, - 'example' => 'InfrequentAccess', - 'default' => 'InfrequentAccess', - 'enum' => [ - 'InfrequentAccess', - 'Archive', - ], + 'example' => 'FileCountLimit', + 'title' => '', + ], + ], + [ + 'name' => 'SortOrder', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sort order. Valid values:'."\n" + ."\n" + .'- asc (default): ascending order, which sorts results from smallest to largest.'."\n" + .'- desc: descending order, which sorts results from largest to smallest.'."\n" + .'> This parameter takes effect only when the OrderByField parameter is specified.', + 'enumValueTitles' => ['asc' => 'ascending order.', 'desc' => 'descending order.'], + 'type' => 'string', + 'enum' => ['asc', 'desc'], + 'required' => false, + 'example' => 'asc', + 'title' => '', ], ], ], @@ -9828,97 +10233,193 @@ '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', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', 'title' => ''], + 'NextToken' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. If the response is truncated, you can use this token in the next request to retrieve the remaining results.', 'type' => 'string', 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', 'title' => ''], + 'FileSystemId' => ['description' => 'The file system ID.'."\n" + ."\n" + .'- CPFS: The ID must start with `cpfs-`, such as cpfs-099394bd928c****.'."\n" + ."\n" + .'- CPFS for Lingjun: The ID must start with `bmcpfs-`, such as bmcpfs-290w65p03ok64ya****.', 'type' => 'string', 'deprecated' => true, 'example' => 'bmcpfs-290w65p03ok64ya****', 'title' => ''], + 'Entries' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Entrie' => [ + 'description' => 'The collection of fileset information.', + 'type' => 'array', + 'items' => [ + 'description' => 'The collection of file information.', + 'type' => 'object', + 'properties' => [ + 'Description' => ['description' => 'The description of the fileset.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'FileSystemPath' => ['description' => 'The path of the fileset.', 'type' => 'string', 'example' => 'pathtoroot/fset', 'title' => ''], + 'FsetId' => ['description' => 'Fileset ID。', 'type' => 'string', 'example' => 'fset-1902718ea0ae****', 'title' => ''], + 'Status' => ['description' => 'The status of the fileset. Valid values:'."\n" + ."\n" + .'- CREATING: The fileset is being created.'."\n" + .'- CREATED: The fileset is created and running as expected. '."\n" + .'- RELEASING: The fileset is being released.'."\n" + .'- RELEASED: The fileset is deleted.', 'type' => 'string', 'example' => 'CREATED', 'title' => ''], + '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.', 'type' => 'string', 'example' => '2021-09-30T10:08:08Z', 'title' => ''], + '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.', 'type' => 'string', 'example' => '2021-09-30T10:08:08Z', 'title' => ''], + 'DeletionProtection' => ['description' => 'The deletion protection property, which specifies whether the instance can be released by using the console or the [DeleteFileset](~~2402263~~) operation.'."\n" + ."\n" + .'- true: Deletion protection is enabled.'."\n" + .'- false: Deletion protection is disabled.'."\n" + ."\n" + .'> This property applies only to manual release operations and does not apply to system-initiated release operations.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'FileCountUsage' => ['description' => 'The file count usage.'."\n" + .'> Only CPFS for Lingjun 2.7.0 and later support this parameter.', 'type' => 'integer', 'format' => 'int64', 'example' => '1024', 'title' => ''], + 'SpaceUsage' => ['description' => 'The capacity usage. Unit: bytes.'."\n" + .'> Only CPFS for Lingjun 2.7.0 and later support this parameter.', 'type' => 'integer', 'format' => 'int64', 'example' => '1024', 'title' => ''], + 'Quota' => [ + 'description' => 'The quota information.'."\n" + .'> Only CPFS for Lingjun 2.7.0 and later support this parameter.', + 'type' => 'object', + 'properties' => [ + 'SizeLimit' => ['description' => 'The quota capacity limit. Unit: bytes.'."\n" + ."\n" + .' - Minimum value: 10,737,418,240 (10 GiB).'."\n" + ."\n" + .' - Increment: 1,073,741,824 (1 GiB).', 'type' => 'integer', 'format' => 'int64', 'example' => '10737418240', 'title' => ''], + 'FileCountLimit' => ['description' => 'The quota file count limit.'."\n" + .'Valid values:'."\n" + ."\n" + .' - Minimum value: 10,000.'."\n" + ."\n" + .' - Maximum value: 10,000,000,000.', 'type' => 'integer', 'format' => 'int64', 'example' => '10000', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'FileSystemId' => ['description' => 'The file system ID.'."\n" + ."\n" + .'- CPFS: The ID must start with `cpfs-`, such as cpfs-099394bd928c****.'."\n" + ."\n" + .'- CPFS for Lingjun: The ID must start with `bmcpfs-`, such as bmcpfs-290w65p03ok64ya****.', 'type' => 'string', 'example' => 'bmcpfs-290w65p03ok64ya****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidParameter.SortOrder', 'errorMessage' => 'Invalid sort order.', 'description' => 'Parameter SortOrder error.'], + ['errorCode' => 'InvalidParameter.SortOrderField', 'errorMessage' => 'Invalid sort order field.', 'description' => 'Parameter SortOrderField error.'], ], - 404 => [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], - [ - 'errorCode' => 'InvalidParameter.PathNotExist', - 'errorMessage' => 'The specified path does not exist.', - ], + 403 => [ + ['errorCode' => 'OperationDenied.FilesetNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidFilterParam', 'errorMessage' => 'The specified Filter.N.Key is invalid.', 'description' => ''], + ['errorCode' => 'InvalidFilterValue', 'errorMessage' => 'The specified Filter.N.Value is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.InvalidNextToken', 'errorMessage' => 'The specified NextToken is invaild.', 'description' => ''], + ['errorCode' => 'InvalidParameter.InvalidMaxResults', 'errorMessage' => 'The specified MaxResults is invalid.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'Query filesets', + 'description' => '- Only CPFS 2.2.0 and later and CPFS for Lingjun 2.7.0 and later support filesets. You can view the version information on the file system details page in the console.'."\n" + ."\n" + .'- In the filter keys (Filters), FsetIds requires an exact match, while FileSystemPath and Description support fuzzy match.'."\n" + .'- Combination queries are supported.', + 'changeSet' => [ + ['createdAt' => '2025-01-20T08:17:37.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-10-24T08:25:56.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2024-05-31T02:47:37.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2021-10-28T12:49:17.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-10-28T08:36:25.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeFilesets'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeFilesets', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], ], - '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', - ], + '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' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '19615', - 'abilityTreeNodes' => [ - 'FEATUREnas7AL8PW', - 'FEATUREnasEER7AI', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeCode' => '191084', + 'abilityTreeNodes' => ['FEATUREnasOIBEFL'], + 'autoTest' => false, + 'notSupportAutoTestReason' => '特殊客户使用', + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'JobId', + 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the region where the file system resides.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'Filesystems', + 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => 'The ID of the data retrieval task.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'lrj-nfstest-ia-160****853-hshvw', + '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", 'title' => ''], + ], + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'title' => '', + 'example' => '', ], ], ], @@ -9927,142 +10428,239 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', + 'RequestId' => ['description' => 'Request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], + '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', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'ZoneId' => ['description' => 'The zone ID.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou-k', 'title' => ''], + 'FileSystemId' => ['description' => 'The ID of the CPFS for Lingjun file system.'."\n", 'type' => 'string', 'example' => 'bmcpfs-290t15yn4uo8lid****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.LifecycleRetrieveJobEnded', - 'errorMessage' => 'The specified LifecycleRetrieveJob has already ended.', - ], + ['errorCode' => 'InvalidFilesystemType.NotSupport', 'errorMessage' => 'This Api does not support this fileSystem type.', 'description' => 'The current interface does not support this type of file system.'], ], 404 => [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], - [ - 'errorCode' => 'InvalidLifecycleRetrieveJob.NotFound', - 'errorMessage' => 'The specified LifecycleRetrieveJob does not exist.', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeFilesystemsAssociatedHpnZones', + 'description' => '- 仅支持CPFS智算版文件系统。'."\n" + .'- 此接口为批量接口,每次最多允许查询 20 个文件系统。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - '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' => ' ', + 'ramActions' => [], + '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"}]', + 'translator' => 'manual', ], - 'RetryLifecycleRetrieveJob' => [ - 'summary' => 'Retries failed a data retrieval task.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeFilesystemsVscAttachInfo' => [ + 'summary' => 'Queries the virtual storage channel information associated with a file system.', + 'path' => '', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '19611', - 'abilityTreeNodes' => [ - 'FEATUREnasZ6WBFV', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeCode' => '191088', + 'abilityTreeNodes' => ['FEATUREnasOIBEFL'], + 'autoTest' => false, + 'notSupportAutoTestReason' => '特殊账号使用', + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'JobId', + 'name' => 'ResourceIds', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'description' => 'The ID of the data retrieval task.'."\n", - 'type' => 'string', + 'description' => 'The ID information of file systems and virtual storage channels. A maximum of 10 entries can be specified per batch.', + 'type' => 'array', + 'items' => [ + 'description' => 'The ID information of file systems and virtual storage channels. A maximum of 10 entries can be specified per batch.', + 'type' => 'object', + 'properties' => [ + 'FileSystemId' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => false, 'example' => 'bmcpfs-290t15yn4uo8lid****'."\n", 'title' => ''], + 'VscId' => ['description' => 'The virtual storage channel ID.', 'type' => 'string', 'required' => false, 'example' => 'vsc-8vb864o3ppwfvh****'."\n", 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => true, - 'docRequired' => true, - 'example' => 'lrj-nfstest-ia-160****853-hshvw', + 'minItems' => 1, + 'title' => '', + 'example' => '', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => 'The query token. Set the value to the NextToken value returned in the previous API call.', 'type' => 'string', 'required' => false, 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', 'title' => ''], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The number of results for each query.'."\n" + ."\n" + .'Valid values: 10 to 100.'."\n" + .'Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'required' => false, 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'RoleChain', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The role chain.'."\n" + .'>Required only for cross-account scenarios.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RoleType' => ['description' => 'The role type. Valid values: service and user.', 'type' => 'string', 'required' => false, 'example' => 'service', 'title' => ''], + 'RoleArn' => ['description' => 'The resource descriptor of the specified role. Format: acs:ram::$accountID:role/$roleName.', 'type' => 'string', 'required' => false, 'example' => 'acs:ram::123472233814****:role/aliyunnasclientvsc****', 'title' => ''], + 'AssumeRoleFor' => ['description' => 'The UID of the Alibaba Cloud account, which specifies the account on whose behalf the service assumes the role.', 'type' => 'string', 'required' => false, 'example' => '101522855006****', 'title' => ''], + ], + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', + 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', 'title' => ''], + 'NextToken' => ['description' => 'The query token. Set the value to the NextToken value returned in the previous API call.', 'type' => 'string', 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of association entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'MaxResults' => ['description' => 'The number of entries returned per query.'."\n" + ."\n" + .'Valid values: 10 to 1000.'."\n" + ."\n" + .'Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'VscAttachInfo' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VscAttachInfo' => [ + 'description' => 'The collection of data for file systems associated with vchannels.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FileSystemId' => ['description' => 'The file system ID.', 'type' => 'string', 'example' => 'bmcpfs-290t15yn4uo8lid****'."\n", 'title' => ''], + 'VscId' => ['description' => 'The virtual storage channel ID.', 'type' => 'string', 'example' => 'vsc-8vb864o3ppwfvh****'."\n", 'title' => ''], + 'Status' => ['description' => 'The status of the file system associated with the vchannel. Valid values:'."\n" + ."\n" + .'- Attaching: Being associated.'."\n" + .'- Attached: Associated.'."\n" + .'- Detaching: Being dissociated.'."\n" + .'- Detached: Dissociated.'."\n" + .'- Failed: Association failed.', 'type' => 'string', 'example' => 'Attached', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.LifecycleRetrieveJobNotFailed', - 'errorMessage' => 'The specified LifecycleRetrieveJob has not failed.', - ], - [ - 'errorCode' => 'OperationDenied.LifecycleRetrieveJobCountLimitExceeded', - 'errorMessage' => 'The maximum number of LifecycleRetrieveJobs is exceeded.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter is invalid.', 'description' => 'Illegal parameter.'], + ['errorCode' => 'InvalidParameter.ResourceIds', 'errorMessage' => 'Invalid ResourceIds, can not be empty or batch size large than 10.', 'description' => ''], + ['errorCode' => 'InvalidParameter.FileSystem', 'errorMessage' => 'Invalid FileSystem in ResourceIds.', 'description' => ''], + ['errorCode' => 'InvalidFilesystemType.NotSupport', 'errorMessage' => 'This Api does not support this fileSystem type.', 'description' => 'The current interface does not support this type of file system.'], + ['errorCode' => 'InvalidParameter.VscId', 'errorMessage' => 'Invalid VscId in ResourceIds.', 'description' => ''], + ['errorCode' => 'InvalidParameter.VscIds', 'errorMessage' => 'Invalid VscId in ResourceIds.VscIds must be the same.', 'description' => ''], + ['errorCode' => 'Ram.AddRamParamFailed', 'errorMessage' => 'Ram check has failed due to param invalid, please check param.', 'description' => ''], + ['errorCode' => 'FeatureOrAPI.NotSupported', 'errorMessage' => 'The Feature/API is not supported in this region now.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], - [ - 'errorCode' => 'InvalidLifecycleRetrieveJob.NotFound', - 'errorMessage' => 'The specified LifecycleRetrieveJob does not exist.', + 403 => [ + ['errorCode' => 'Forbbiden.Ram', 'errorMessage' => 'User not authorized to operate on the specified resource, or this API doesn\'t support RAM.', 'description' => 'The user is not authorized to operate the specified resource, or the API does not support RAM.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query virtual storage channel information associated with a file system', + 'description' => '- Only CPFS for Lingjun supports this feature.'."\n" + .'- Batch execution is supported. In batch execution mode, only one VscId can be associated with multiple FileSystemIds, which means the values of ResourceIds.VscId must be the same.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeFilesystemsVscAttachInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Vsc', 'arn' => 'acs:eflo:{#regionId}:{#accountId}:vsc/{#VscId}'], + ], ], ], ], - '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' => ' ', + '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"}]', ], - 'ListLifecycleRetrieveJobs' => [ - 'summary' => 'Queries data retrieval tasks.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeLifecyclePolicies' => [ + 'summary' => 'Retrieves a list of lifecycle management policies.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10074,238 +10672,219 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '19612', - 'abilityTreeNodes' => [ - 'FEATUREnas7AL8PW', - 'FEATUREnasEER7AI', - 'FEATUREnasZ6WBFV', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeCode' => '13954', + 'abilityTreeNodes' => ['FEATUREnas7AL8PW', 'FEATUREnasEER7AI'], ], 'parameters' => [ [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '31a8e4****', 'title' => ''], + ], + [ + 'name' => 'LifecyclePolicyName', + 'in' => 'query', + 'schema' => ['description' => 'The lifecycle policy name. Naming rules:'."\n" + ."\n\n" + .'The name must be 3 to 64 characters in length, start with a letter, and can contain letters, digits, underscores (_), or hyphens (-).'."\n" + ."\n" + .'>Optional for General-purpose NAS file systems. If specified, this parameter takes precedence. If not specified, LifecyclePolicyId is used instead.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'lifecyclepolicy_01', 'title' => ''], + ], + [ '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', - ], + 'schema' => ['description' => 'The number of lifecycle management policies on each page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''], ], [ 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return.'."\n" - ."\n" - .'Pages start from page 1. Default value: 1.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The page number of the list.'."\n" + ."\n" + .'Start value (default value): 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'FileSystemId', + 'name' => 'StorageType', 'in' => 'query', + 'allowEmptyValue' => true, 'schema' => [ - 'description' => 'The ID of the file system.'."\n", + 'description' => 'The storage class type. Valid values:'."\n" + .'- InfrequentAccess: IA storage class.'."\n" + .'- Archive: Archive storage class.'."\n" + .'> If StorageType is not specified, all lifecycle policies are returned.', + 'enumValueTitles' => ['Archive' => 'Archive storage class.', 'InfrequentAccess' => 'IA storage class.'], 'type' => 'string', + 'enum' => ['InfrequentAccess', 'Archive', 'Capacity', 'Performance'], 'required' => false, - 'example' => '31a8e4****', + 'example' => 'InfrequentAccess', + 'title' => '', ], ], [ - 'name' => 'Status', + 'name' => 'LifecyclePolicyId', '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', - ], - ], + 'schema' => ['title' => '', 'description' => 'The ID of the lifecycle policy.', 'type' => 'string', 'example' => 'lc-xxx', 'required' => false], ], [ - 'name' => 'StorageType', + 'name' => 'LifecyclePolicyType', '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" + 'title' => '', + 'description' => 'The policy type.'."\n" ."\n" - .'> If the StorageType parameter is not specified, data retrieval tasks of all types are returned.'."\n", + .'Valid values:'."\n" + .'- Auto: automatic execution'."\n" + .'- OnDemand: on-demand execution'."\n" + .'>Only CPFS for Lingjun supports this parameter.', + 'enumValueTitles' => ['Auto' => 'Automatic execution.', 'OnDemand' => 'On-demand execution.'], 'type' => 'string', + 'example' => 'Auto', + 'enum' => ['Auto', 'OnDemand'], 'required' => false, - 'example' => 'InfrequentAccess', - 'enum' => [ - 'InfrequentAccess', - 'Archive', - ], ], ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The description of the policy.'."\n" + .'>Only CPFS for Lingjun supports this parameter.', 'type' => 'string', 'example' => '描述', 'required' => false], + ], + [ + 'name' => 'Path', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'Filters results by path.'."\n" + .'>Only CPFS for Lingjun supports this parameter.', 'type' => 'string', 'example' => '/abc/', 'required' => false], + ], ], '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", + 'TotalCount' => ['description' => 'The total number of lifecycle management policies.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', 'title' => ''], + 'PageSize' => ['description' => 'The number of lifecycle management policies on each page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'LifecyclePolicies' => [ + 'description' => 'The collection of lifecycle management policy information.', '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', - ], + 'FileSystemId' => ['description' => 'The file system ID.', 'type' => 'string', 'example' => '31a8e4****', 'title' => ''], + 'LifecycleRuleName' => ['description' => 'The management rule associated with the lifecycle management policy.'."\n" + ."\n" + .'Valid values:'."\n" + .'- DEFAULT_ATIME_14: files not accessed in the last 14 days'."\n" + .'- DEFAULT_ATIME_30: files not accessed in the last 30 days'."\n" + .'- DEFAULT_ATIME_60: files not accessed in the last 60 days'."\n" + .'- DEFAULT_ATIME_90: files not accessed in the last 90 days.', 'type' => 'string', 'example' => 'DEFAULT_ATIME_14', 'title' => ''], + 'CreateTime' => ['description' => 'The time when the lifecycle management policy was created.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the format: `yyyy-MM-ddTHH:mm:ssZ`.', 'type' => 'string', 'example' => '2019-10-30T10:08:08Z', 'title' => ''], + 'Path' => ['description' => 'The absolute path of the single directory configured in the lifecycle management policy.', 'type' => 'string', 'example' => '/pathway/to/folder', 'title' => ''], + 'StorageType' => ['description' => 'The storage class type. Valid values:'."\n" + .'- InfrequentAccess: IA storage class.'."\n" + .'- Archive: Archive storage class.', 'type' => 'string', 'example' => 'InfrequentAccess', 'title' => ''], + 'LifecyclePolicyName' => ['description' => 'The lifecycle management policy name.', 'type' => 'string', 'example' => 'lifecyclepolicy_01', 'title' => ''], 'Paths' => [ - 'description' => 'The execution path of the data retrieval task.'."\n", + 'description' => 'The list of absolute paths of multiple directories configured in the lifecycle management policy.', + 'type' => 'array', + 'items' => ['description' => 'The list of absolute paths of multiple directories configured in the lifecycle management policy.', 'type' => 'string', 'example' => '["/path1","/path2"]', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'LifecyclePolicyId' => ['title' => '', 'description' => 'The ID of the lifecycle policy.', 'type' => 'string', 'example' => 'lc-xxx'], + 'Description' => ['title' => '', 'description' => 'The description of the policy.', 'type' => 'string', 'example' => '描述'], + 'LifecyclePolicyType' => ['title' => '', 'description' => 'The policy type.', 'type' => 'string', 'example' => 'Auto'], + 'TransitRules' => [ + 'title' => '', + 'description' => 'The data transit rules for files.', '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"]', + 'title' => '', + 'description' => 'The data transit rules for files.', + 'type' => 'object', + 'properties' => [ + 'Attribute' => ['title' => '', 'description' => 'The attribute of the transit rule.', 'type' => 'string', 'example' => 'Atime'], + 'Threshold' => ['title' => '', 'description' => 'The threshold of the transit rule.', 'type' => 'string', 'example' => '3'], + ], + 'example' => '', ], + 'example' => '', ], - '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', + 'RetrieveRules' => [ + 'title' => '', + 'description' => 'The data retrieval rules for files.', + 'type' => 'array', + 'items' => [ + 'title' => '', + 'description' => 'The data retrieval rules for files.', + 'type' => 'object', + 'properties' => [ + 'Attribute' => ['title' => '', 'description' => 'The attribute of the retrieval rule.', 'type' => 'string', 'example' => 'RetrieveType'], + 'Threshold' => ['title' => '', 'description' => 'The threshold of the retrieval rule.', 'type' => 'string', 'example' => 'All'], + ], + 'example' => '', + ], + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 404 => [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'Query lifecycle management policies', + 'description' => 'Only General-purpose NAS file systems and CPFS for Lingjun support this feature.', + 'changeSet' => [ + ['createdAt' => '2025-05-08T06:05:41.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2025-03-27T03:42:10.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-03-19T01:52:49.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2024-03-25T10:51:46.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2021-04-08T08:36:16.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeLifecyclePolicies'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeLifecyclePolicies', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'LifecyclePolicy', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], ], - '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', - ], + 'DescribeLifecyclePolicyLogs' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -10317,106 +10896,32 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '19613', - 'abilityTreeNodes' => [ - 'FEATUREnas0A1PB1', - 'FEATUREnasZ6WBFV', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + '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' => '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= ', - ], + 'schema' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'bmcpfs-030wldnqm8evtpy****', 'title' => ''], ], [ - 'name' => 'StorageType', + 'name' => 'LifecyclePolicyId', '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', - ], - ], + 'schema' => ['description' => 'The lifecycle policy ID.', 'type' => 'string', 'required' => true, 'example' => 'lc-xxx', 'title' => ''], ], [ - 'name' => 'DirectoryOnly', + 'name' => 'PageSize', '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', - ], + 'schema' => ['description' => 'The number of log entries to return on each page.'."\n" + ."\n" + .'Value range: 1–100. Default: 10.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'required' => false, 'example' => '10', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'PageNumber', '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', - ], + 'schema' => ['description' => 'The number of the page to return.'."\n" + ."\n" + .'Starts from 1. Default: 1.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '1', 'default' => '1', 'required' => false, 'example' => '1', 'title' => ''], ], ], 'responses' => [ @@ -10424,491 +10929,710 @@ '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", + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', 'title' => ''], + 'Success' => ['description' => 'Specifies whether the request succeeded.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- `true`: The request succeeded.'."\n" + ."\n" + .'- `false`: The request failed.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'LifecyclePolicyLogs' => [ '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', + 'Status' => ['description' => 'The status of the task. Valid values:'."\n" + ."\n" + .'- `PENDING`: The task is initializing.'."\n" + ."\n" + .'- `RUNNING`: The task is running.'."\n" + ."\n" + .'- `STOPPED`: The task is stopped.'."\n" + ."\n" + .'- `FINISHED`: The task is complete.'."\n" + ."\n" + .'- `FAILED`: The task failed.', 'type' => 'string', 'example' => 'RUNNING', 'title' => ''], + 'Paths' => [ + 'type' => 'array', + 'items' => ['description' => 'An execution path of the task.', 'type' => 'string', 'example' => '/path1', 'title' => ''], + 'description' => 'The execution paths of the task.', + 'title' => '', + 'example' => '', ], - 'OfflineDuration' => [ - 'type' => 'integer', - 'format' => 'int64', + 'StorageType' => ['description' => 'The storage tier. Valid values:'."\n" + ."\n" + .'- `InfrequentAccess`: Infrequent Access (default).'."\n" + ."\n" + .'- `Archive`: Archive Storage.', 'type' => 'string', 'example' => 'InfrequentAccess', 'title' => ''], + 'TransitRules' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Attribute' => ['description' => 'The attribute of the rule.'."\n" + ."\n" + .'Valid value:'."\n" + ."\n" + .'- `Atime`: The last access time of a file.', 'type' => 'string', 'example' => 'Atime', 'title' => ''], + 'Threshold' => ['description' => 'The rule threshold.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- If `Attribute` is set to `Atime`, this parameter specifies the number of days since a file was last accessed. The value must be an integer from 1 to 365.', 'type' => 'string', 'example' => '3', 'title' => ''], + ], + 'description' => 'A transition rule for file data.', + 'title' => '', + 'example' => '', + ], + 'description' => 'The transition rules for file data.', + 'title' => '', + 'example' => '', ], - 'OfflineUnchangedDuration' => [ - 'type' => 'integer', - 'format' => 'int64', + 'RetrieveRules' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Attribute' => ['description' => 'The attribute of the rule. Valid value:'."\n" + ."\n" + .'- `RetrieveType`: The retrieval method.', 'type' => 'string', 'example' => 'RetrieveType', 'title' => ''], + 'Threshold' => ['description' => 'The threshold of the rule. Valid values:'."\n" + ."\n" + .'- If `Attribute` is set to `RetrieveType`:'."\n" + ."\n" + .' - `AfterVisit`: Data is retrieved on a best-effort basis when accessed. This value is available only if `LifecyclePolicyType` is set to `Auto`.'."\n" + ."\n" + .' - `All`: All data is retrieved. This value is available only if `LifecyclePolicyType` is set to `OnDemand`.', 'type' => 'string', 'example' => 'All', 'title' => ''], + ], + 'description' => 'A retrieval rule for file data.', + 'title' => '', + 'example' => '', + ], + 'description' => 'The retrieval rules for file data.', + 'title' => '', + 'example' => '', ], + 'CreateTime' => ['description' => 'The time when the task was created. The time is displayed in UTC and is in the `yyyy-MM-ddTHH:mm:ssZ` format.', 'type' => 'string', 'example' => '2025-10-20T02:25:07Z', 'title' => ''], + 'Summary' => ['description' => 'The task summary.', 'type' => 'string', 'example' => 'Total tasks: 100000, success tasks: 100000', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'description' => 'The execution logs of the lifecycle policy.', + 'title' => '', + 'example' => '', ], + 'TotalCount' => ['description' => 'The total number of logs.', 'type' => 'integer', 'format' => 'int32', 'example' => '36', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.InvalidNextToken', - 'errorMessage' => 'The specified NextToken is invalid.', - ], + ['errorCode' => 'InvalidLifecyclePolicy.NotFound', 'errorMessage' => 'The specified LifecyclePolicy does not exist.', 'description' => 'The specified LifecyclePolicy does not exist.'], ], 404 => [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], - [ - 'errorCode' => 'InvalidParameter.PathNotExist', - 'errorMessage' => 'The specified path does not exist.', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => 'DescribeLifecyclePolicyLogs', + 'summary' => 'Queries the execution logs of a lifecycle policy, returning up to 1,000 entries from the last 90 days. This feature is only available for CPFS AI Computing Edition.', + 'description' => 'Queries the execution logs of a lifecycle policy. You can query up to 1,000 log entries from the last 90 days. Only CPFS (AI Computing Edition) supports this operation.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - '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' => ' ', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\",\\n \\"Success\\": true,\\n \\"LifecyclePolicyLogs\\": [\\n {\\n \\"Status\\": \\"RUNNING\\",\\n \\"Paths\\": [\\n \\"/path1\\"\\n ],\\n \\"StorageType\\": \\"InfrequentAccess\\",\\n \\"TransitRules\\": [\\n {\\n \\"Attribute\\": \\"Atime\\",\\n \\"Threshold\\": \\"3\\"\\n }\\n ],\\n \\"RetrieveRules\\": [\\n {\\n \\"Attribute\\": \\"RetrieveType\\",\\n \\"Threshold\\": \\"All\\"\\n }\\n ],\\n \\"CreateTime\\": \\"2025-10-20T02:25:07Z\\",\\n \\"Summary\\": \\"Total tasks: 100000, success tasks: 100000\\"\\n }\\n ],\\n \\"TotalCount\\": 36,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10\\n}","type":"json"}]', ], - 'EnableRecycleBin' => [ - 'summary' => 'Enables the recycle bin feature for a file system.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeLogAnalysis' => [ + 'summary' => 'Lists the log analysis configurations in log analysis.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeCode' => '14453', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'chargeType' => 'free', + 'abilityTreeCode' => '13955', + 'abilityTreeNodes' => ['FEATUREnasA0C6YC'], ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'RegionId', '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****', - ], + 'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ReservedDays', + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of file systems on each page in a paging query. Valid values: 1 to 100. Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number of the file system list. Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'FileSystemType', 'in' => 'query', 'schema' => [ - 'description' => 'The retention period of the files in the recycle bin. Unit: days.'."\n" + 'description' => 'The file system type.'."\n" ."\n" - .'Valid values: 1 to 180.'."\n" + .'Valid values:'."\n" ."\n" - .'Default value: 3.'."\n", - 'type' => 'integer', - 'format' => 'int64', + .'- standard: General-purpose NAS'."\n" + .'- extreme: Extreme NAS'."\n" + .'- all (default): all types.', + 'enumValueTitles' => ['all' => 'all file systems.', 'standard' => 'General-purpose NAS.', 'bmcpfs' => 'Cloud Paralleled File System intelligent computing edition.', 'extreme' => 'Extreme NAS.'], + 'type' => 'string', + 'default' => 'all', + 'enum' => ['all', 'standard', 'extreme', 'bmcpfs'], 'required' => false, - 'maximum' => '180', - 'minimum' => '1', - 'example' => '3', - 'default' => '3', + 'example' => 'all', + 'title' => '', ], ], ], '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 log analysis entries in the region.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'PageSize' => ['description' => 'The number of log analysis entries on each page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C84F77AF-3DE5-48F1-B19B-37FCBE24****', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the log analysis entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'Analyses' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Analysis' => [ + 'description' => 'The collection of log analysis entries.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'MetaKey' => ['description' => 'The file system ID.', 'type' => 'string', 'example' => '0c7154xxxx', 'title' => ''], + 'MetaValue' => [ + 'description' => 'The log analysis information of the specified file system.', + 'type' => 'object', + 'properties' => [ + 'RoleArn' => ['description' => 'The role that File Storage NAS uses to access Simple Log Service.', 'type' => 'string', 'example' => 'acs:ram::162165525211xxxx:role/aliyunnaslogarchiverole', 'title' => ''], + 'Region' => ['description' => 'The region where the dedicated Logstore for file system operation logs resides.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'Logstore' => ['description' => 'The name of the dedicated Logstore that stores NAS operation logs.', 'type' => 'string', 'example' => 'nas-nfs', 'title' => ''], + 'Project' => ['description' => 'The name of the project where the dedicated Logstore for file system operation logs resides.', 'type' => 'string', 'example' => 'nas-1746495857602745-cn-hangzhou', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'Code' => ['description' => 'The return code.', 'type' => 'string', 'example' => '200', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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.', - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'Retrieve log analysis information', + 'changeSet' => [ + ['createdAt' => '2024-09-09T01:49:11.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-06-05T02:09:27.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-01-03T06:46:50.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLogAnalysis'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeLogAnalysis', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - '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', - ], + 'DescribeMountTargets' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'high', - 'chargeType' => 'paid', - 'abilityTreeCode' => '14454', - 'abilityTreeNodes' => [ - 'FEATUREnas0A1PB1', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13957', + 'abilityTreeNodes' => ['FEATUREnasOIBEFL'], ], 'parameters' => [ [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '1ca404****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n" + ."\n" + .'- general-purpose NAS: 31a8e4\\*\\*\\*\\*.'."\n" + ."\n" + .'- Extreme NAS: The ID must start with `extreme-`. Example: extreme-0015\\*\\*\\*\\*.'."\n" + ."\n" + .'- CPFS: The ID must start with `cpfs-`. Example: cpfs-125487\\*\\*\\*\\*.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], + ], + [ + 'name' => 'MountTargetDomain', + 'in' => 'query', + 'schema' => ['description' => 'The domain name of the mount target.', 'type' => 'string', 'required' => false, 'example' => '1ca404****-x****.cn-hangzhou.nas.aliyuncs.com', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of mount targets to return per page.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number to return.'."\n" + ."\n" + .'The value must be 1 or greater. Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'DualStackMountTargetDomain', + 'in' => 'query', + 'schema' => ['description' => 'The dual-stack (IPv4 and IPv6) domain name of the mount target.'."\n" + ."\n" + .'> Currently, only Extreme NAS file systems in Chinese mainland regions support IPv6.', 'type' => 'string', 'required' => false, 'example' => '1ca404****-x****.dualstack.cn-hangzhou.nas.aliyuncs.com', 'title' => ''], ], ], '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 mount targets.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '3BAB90FD-B4A0-48DA-9F09-2B963510****', 'title' => ''], + 'PageSize' => ['description' => 'The number of mount targets per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'MountTargets' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'MountTarget' => [ + 'description' => 'A list of mount targets.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'VpcId' => ['description' => 'The ID of the VPC.', 'type' => 'string', 'example' => 'vpc-2zesj9afh3y518k9o****', 'title' => ''], + 'Status' => ['description' => 'The status of the mount target.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- Active: The mount target is available.'."\n" + ."\n" + .'- Inactive: The mount target is unavailable.'."\n" + ."\n" + .'- Pending: The mount target is being created.'."\n" + ."\n" + .'- Deleting: The mount target is being deleted.'."\n" + ."\n" + .'- Hibernating: The mount target is hibernating.'."\n" + ."\n" + .'- Hibernated: The mount target is hibernated.'."\n" + ."\n" + .'> You can mount a file system only when the mount target is Active.', 'type' => 'string', 'example' => 'Active', 'title' => ''], + 'ClientMasterNodes' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ClientMasterNode' => [ + 'description' => 'A list of client management nodes.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EcsId' => ['description' => 'The ID of the ECS instance that serves as a management node.', 'type' => 'string', 'example' => 'i-hp3i3odi5ory1buo****', 'title' => ''], + 'DefaultPasswd' => ['description' => 'The default login password.', 'type' => 'string', 'example' => '12****', 'title' => ''], + 'EcsIp' => ['description' => 'The IP address of the ECS instance that serves as a management node.', 'type' => 'string', 'example' => '192.168.1.0', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => 'A collection of client management nodes.', + 'title' => '', + 'example' => '', + ], + 'MountTargetDomain' => ['description' => 'The domain name of the IPv4 mount target.', 'type' => 'string', 'example' => '1ca404****-w****.cn-hangzhou.nas.aliyuncs.com', 'title' => ''], + 'AccessGroup' => ['description' => 'The name of the permission group for the mount target.', 'type' => 'string', 'example' => 'DEFAULT_VPC_GROUP_NAME', 'title' => ''], + 'DualStackMountTargetDomain' => ['description' => 'The domain name of the dual-stack mount target.', 'type' => 'string', 'example' => '1ca404****-x****.dualstack.cn-hangzhou.nas.aliyuncs.com', 'title' => ''], + 'VswId' => ['description' => 'The ID of the VSwitch.', 'type' => 'string', 'example' => 'vsw-2zevmwkwyztjuoffg****', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'A list of tags attached to the mount target. A mount target can have up to 20 tags, and each tag key must be unique.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.'."\n" + ."\n" + .'- A tag key cannot be an empty string.'."\n" + ."\n" + .'- The tag key can be up to 128 characters long.'."\n" + ."\n" + .'- The tag key cannot start with `aliyun` or `acs:`.'."\n" + ."\n" + .'- The tag key cannot contain `http://` or `https://`.', 'type' => 'string', 'example' => 'nastest', 'title' => ''], + 'Value' => ['description' => 'The tag value.'."\n" + ."\n" + .'Restrictions:'."\n" + ."\n" + .'- The tag value can be up to 128 characters long.'."\n" + ."\n" + .'- The tag value cannot contain `http://` or `https://`.', 'type' => 'string', 'example' => 'mounttargettest', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'NetworkType' => ['description' => 'The network type of the mount target. The value is always **Vpc**.', 'type' => 'string', 'example' => 'Vpc', 'title' => ''], + 'IPVersion' => ['description' => 'The IP version supported by the mount target.'."\n" + ."\n" + .'- IPv4: The mount target supports only IPv4.'."\n" + ."\n" + .'- DualStack: The mount target supports both IPv4 and IPv6.', 'type' => 'string', 'example' => 'IPv4', 'title' => ''], + 'AccessPointAccessOnly' => ['description' => 'Indicates whether the file system can be accessed only by using an access point.'."\n" + ."\n" + .'- `true`: The file system can be accessed only by using an access point.'."\n" + ."\n" + .'- `false`: The file system can be accessed by using the domain name of the mount target.', 'type' => 'boolean', 'title' => '', 'example' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => 'A collection of mount targets.', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalCharacters', - 'errorMessage' => 'The parameter contains illegal characters.', - ], - [ - 'errorCode' => 'MissingFileSystemId', - 'errorMessage' => 'FileSystemId is mandatory for this action.', - ], + ['errorCode' => 'InvalidFileSystem.NotsupportedIPv6', 'errorMessage' => 'The file system does not support IPv6.', 'description' => 'The file system does not support IPv6.'], ], - 403 => [ - [ - 'errorCode' => 'OperationDenied.RecycleBinDisabled', - 'errorMessage' => 'The operation is denied because the recycle bin is disabled.', - ], + 404 => [ + ['errorCode' => 'InvalidMountTarget.NotFound', 'errorMessage' => 'The specified mount target does not exist.', 'description' => 'The specified mount target does not exist.'], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], ], - [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeMountTargets', + 'summary' => 'Retrieves information about mount targets.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-05-07T01:17:20.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-11-04T01:56:26.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-04-17T13:40:58.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-05-23T09:19:39.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeMountTargets'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeMountTargets', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], ], - '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", + 'responseDemo' => '[{"errorExample":"","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 \\"AccessPointAccessOnly\\": false\\n }\\n ]\\n }\\n}","type":"json"}]', ], - 'UpdateRecycleBinAttribute' => [ - 'summary' => 'Modifies the retention period of data in the recycle bin of a file system.', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeMountedClients' => [ + 'summary' => 'Queries the clients on which a file system is mounted.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'list', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeCode' => '14458', - 'abilityTreeNodes' => [ - 'FEATUREnas0A1PB1', - ], + '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', 'title' => ''], + ], + [ + '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', 'default' => '10', 'example' => '10', 'title' => ''], + ], + [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '1ca404****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '31a8e4****', 'title' => ''], ], [ - 'name' => 'ReservedDays', + 'name' => 'ClientIP', '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', - ], + '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', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], + [ + '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', 'title' => ''], ], ], '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', + 'TotalCount' => ['description' => 'The total number of IP addresses.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'A70BEE5D-76D3-49FB-B58F-1F398211****', 'title' => ''], + 'PageSize' => ['description' => 'The number of IP addresses returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + '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', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IllegalCharacters', - 'errorMessage' => 'The parameter contains illegal characters.', - ], - [ - 'errorCode' => 'MissingFileSystemId', - 'errorMessage' => 'FileSystemId is mandatory for this action.', - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeMountedClients', + 'description' => '- 仅通用型NAS支持该接口。'."\n" + .'- 客户端列表显示近一分钟对文件系统有读写访问的客户端IP,部分已挂载而没有访问文件系统的客户端IP可能不在此列表中显示。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeMountedClients'], ], - 403 => [ - [ - 'errorCode' => 'OperationDenied.RecycleBinDisabled', - 'errorMessage' => 'The operation is denied because the recycle bin is disabled.', + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeMountedClients', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], ], ], + ], + 'translator' => 'manual', + ], + 'DescribeNfsAcl' => [ + 'summary' => 'Queries whether the NFS ACL feature is enabled for a file system.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], + 'AK' => [], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13958', + 'abilityTreeNodes' => ['FEATUREnasWJVZ38'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], - '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', + 'parameters' => [ + [ + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '206614xxxx', 'title' => ''], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'A1098673-1746-505E-A5F1-08527B7EDBDF', 'title' => ''], + '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', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], ], + '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', + 'description' => '仅通用型NAS NFS协议文件系统支持该功能。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeNfsAcl'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeNfsAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], + ], + ], + 'DescribeProtocolMountTarget' => [ + 'summary' => 'Queries the export directories of a protocol service.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10917,28 +11641,87 @@ 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '14459', - 'abilityTreeNodes' => [ - 'FEATUREnas0A1PB1', - ], + '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==', 'title' => ''], + ], + [ + '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', 'maximum' => '100', 'minimum' => '10', 'default' => '20', 'required' => false, 'example' => '20', 'title' => ''], + ], + [ 'name' => 'FileSystemId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cpfs-099394bd928c****', 'title' => ''], + ], + [ + 'name' => 'Filters', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '1ca404****', + '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', 'title' => ''], + '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****', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 5, + 'title' => '', + 'example' => '', ], ], + [ + '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', 'maxLength' => 64, 'minLength' => 1, 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], + ], + [ + 'name' => 'ProtocolServiceIds', + 'in' => 'query', + 'schema' => ['description' => 'Protocol service ID list'."\n", 'type' => 'string', 'example' => 'ptc-123xxx', 'title' => '', 'required' => false], + ], ], 'responses' => [ 200 => [ @@ -10947,167 +11730,184 @@ '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', + '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==', 'title' => ''], + '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****', 'title' => ''], + 'ProtocolMountTargetDomain' => ['description' => 'The domain name of the export directory for the protocol service.'."\n", 'type' => 'string', 'example' => 'cpfs-123****.cn-hangzhou.cpfs.aliyuncs.com', 'title' => ''], + 'ProtocolType' => ['description' => 'The protocol type supported by the protocol service.'."\n", 'type' => 'string', 'example' => 'NFS', 'title' => ''], + 'VpcId' => ['description' => 'The VPC ID of the export directory for the protocol service.'."\n", 'type' => 'string', 'example' => 'vpc-2vct297b8157bth9z****', 'title' => ''], + 'VSwitchId' => ['description' => 'The vSwitch ID of the export directory for the protocol service.'."\n", 'type' => 'string', 'example' => 'vsw-2vc3c2lybvdllxyq4****', 'title' => ''], + 'FsetId' => ['description' => 'The fileset ID of the export directory for the protocol service.'."\n", 'type' => 'string', 'example' => 'fset-1902718ea0ae****', 'title' => ''], + 'Path' => ['description' => 'The export directory of the protocol service.'."\n", 'type' => 'string', 'example' => '/path/', 'title' => ''], + 'AccessGroupName' => ['description' => 'The permission group that is associated with the export directory of the protocol service.'."\n", 'type' => 'string', 'example' => 'DEFAULT_VPC_GROUP_NAME', 'title' => ''], + 'CreateTime' => ['description' => 'The time when the export directory of the protocol service was created.'."\n", 'type' => 'string', 'example' => '2018-12-12T07:28:38Z', 'title' => ''], + 'Status' => ['description' => 'The status of the mount target.'."\n", 'type' => 'string', 'example' => 'CREATING', 'title' => ''], + 'ProtocolServiceId' => ['description' => 'The ID of the protocol service.'."\n", 'type' => 'string', 'example' => 'ptc-123****', 'title' => ''], + 'Description' => ['description' => 'The description of the export directory for the protocol service.'."\n", 'type' => 'string', 'example' => '此协议服务导出目录的描述。', 'title' => ''], + 'VSwitchIds' => [ + 'title' => '', + 'description' => 'A list of IDs for the zone-redundant vSwitches.'."\n", + 'type' => 'array', + 'items' => ['description' => 'A list of IDs for the zone-redundant vSwitches.'."\n", 'type' => 'string', 'example' => 'vsw-123xxx', 'title' => ''], + 'example' => '', + ], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalCharacters', - 'errorMessage' => 'The parameter contains illegal characters.', - ], - [ - 'errorCode' => 'MissingFileSystemId', - 'errorMessage' => 'FileSystemId is mandatory for this action.', - ], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], ], 404 => [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidParameter.InvalidNextToken', 'errorMessage' => 'The specified NextToken is invaild.', 'description' => ''], + ['errorCode' => 'InvalidParameter.InvalidMaxResults', 'errorMessage' => 'The specified MaxResults is invalid.', 'description' => ''], + ['errorCode' => 'InvalidFilterValue', 'errorMessage' => 'The specified Filter.N.Value is invalid.', 'description' => ''], + ['errorCode' => 'InvalidFilterParam', 'errorMessage' => 'The specified Filter.N.Key is invalid.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeProtocolMountTarget', + 'description' => '该接口仅适用于CPFS文件系统。', + 'changeSet' => [ + ['createdAt' => '2022-04-28T09:25:04.000Z', 'description' => 'OpenAPI offline'], + ['createdAt' => '2022-04-28T09:25:04.000Z', 'description' => 'Error codes changed'], ], - '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', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeProtocolMountTarget'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeProtocolMountTarget', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'DescribeProtocolService' => [ + 'summary' => 'Queries the information about protocol services.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '14460', - 'abilityTreeNodes' => [ - 'FEATUREnas0A1PB1', - ], + 'abilityTreeCode' => '124567', + 'abilityTreeNodes' => ['FEATUREnasQ7YV89', 'FEATUREnas0GUIX5'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'ProtocolServiceIds', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '1ca404****', - ], + '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', 'docRequired' => false, 'required' => false, 'example' => 'ptc-197ed6a00f2b****,ptc-196ed6a00f2b****', 'title' => ''], ], [ - 'name' => 'FileId', + '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', 'title' => ''], + ], + [ + 'name' => 'NextToken', 'in' => 'query', + 'allowEmptyValue' => true, '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", + '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' => true, - 'docRequired' => true, - 'example' => '04***08', + 'required' => false, + 'enum' => [], + 'example' => 'aBcdg==', + 'title' => '', ], ], [ - 'name' => 'TargetFileId', + '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', 'maximum' => '100', 'minimum' => '10', 'default' => '20', 'required' => false, 'example' => '20', 'title' => ''], + ], + [ + 'name' => 'FileSystemId', '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", + 'description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, - 'example' => '13***15', + 'enum' => [], + 'example' => 'cpfs-099394bd928c****', + 'title' => '', ], ], [ + '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', 'maxLength' => 128, 'minLength' => 2, 'required' => false, 'example' => '此协议服务的描述', 'title' => ''], + ], + [ '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****', - ], + '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', 'maxLength' => 64, 'minLength' => 1, 'required' => false, 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', 'title' => ''], ], ], 'responses' => [ @@ -11117,102 +11917,110 @@ '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', + '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==', 'title' => ''], + '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****', 'title' => ''], + 'ProtocolServiceId' => ['description' => 'The ID of the protocol service.'."\n", 'type' => 'string', 'example' => 'ptc-197ed6a00f2b****', 'title' => ''], + 'ProtocolSpec' => ['description' => 'The specification of the protocol service.'."\n" + ."\n" + .'* Valid value: General.'."\n" + .'* Default value: General.'."\n", 'type' => 'string', 'example' => 'General', 'title' => ''], + 'ProtocolThroughput' => ['description' => 'The throughput of the protocol service. Unit: MB/s.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '500', 'title' => ''], + 'InstanceRAM' => ['description' => 'The memory cache size of the protocol service. Unit: GiB.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'InstanceBaseThroughput' => ['description' => 'The base throughput of the protocol service. Unit: MB/s.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''], + 'InstanceBurstThroughput' => ['description' => 'The burst throughput of the protocol service. Unit: MB/s.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''], + 'MountTargetCount' => ['description' => 'The total number of CPFS directories and filesets exported in the protocol service.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + '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' => '此协议服务的描述', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + 'VpcId' => ['description' => 'The VPC ID associated with the protocol service.'."\n", 'type' => 'string', 'example' => 'vpc-123xxx', 'title' => ''], + 'VSwitchId' => ['description' => 'The VSW ID associated with the protocol service.'."\n", 'type' => 'string', 'example' => 'vsw-123xxx', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidParam.TooManyProtocolServiceIds', 'errorMessage' => 'Too many protocol service ids given.', 'description' => ''], ], 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' => 'InvalidStatus.NotSupported', 'errorMessage' => 'The specified protocol service status does not support.', 'description' => ''], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidParameter.InvalidNextToken', 'errorMessage' => 'The specified NextToken is invaild.', 'description' => ''], + ['errorCode' => 'InvalidParameter.InvalidMaxResults', 'errorMessage' => 'The specified MaxResults is invalid.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeProtocolService', + 'description' => '该接口仅适用于CPFS文件系统。', + 'changeSet' => [ + ['createdAt' => '2022-04-28T09:25:04.000Z', 'description' => 'OpenAPI offline'], ], - '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', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeProtocolService'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeProtocolService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'DescribeRegions' => [ + 'summary' => 'Queries the regions in which File Storage NAS is available.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -11221,231 +12029,217 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'high', + 'operationType' => 'get', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '14461', - 'abilityTreeNodes' => [ - 'FEATUREnas0A1PB1', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeCode' => '13959', + 'abilityTreeNodes' => ['FEATUREnasQG6YBL'], ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '1ca404****', - ], + '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', 'default' => '10', 'example' => '10', 'title' => ''], ], [ - 'name' => 'FileId', + 'name' => 'PageNumber', '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', - ], + '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', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'FileSystemType', 'in' => 'query', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid values:'."\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" + .'* 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" - .'> 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", + .'> CPFS file systems are available only on the China site (aliyun.com).'."\n", 'type' => 'string', 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'default' => 'standard', + 'enum' => ['standard', 'extreme', 'cpfs', 'all'], + 'example' => 'standard', + 'title' => '', ], ], ], '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', + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'A70BEE5D-76D3-49FB-B58F-1F398211****', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + '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', 'title' => ''], + 'RegionEndpoint' => ['description' => 'The endpoint for the region.'."\n", 'type' => 'string', 'example' => 'nas.cn-hangzhou.aliyuncs.com', 'title' => ''], + 'RegionId' => ['description' => 'The region ID.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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.', - ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeRegions', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-11-04T01:56:27.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRegions'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], - [ - 'errorCode' => 'InvalidFileId.NotFound', - 'errorMessage' => 'The specified FileId(%FileId) does not exist.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeRegions', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - '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", + 'translator' => 'manual', ], - 'CancelRecycleBinJob' => [ - 'summary' => 'Cancels a running job of the recycle bin.', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + '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' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '14462', - 'abilityTreeNodes' => [ - 'FEATUREnas0A1PB1', - ], + 'abilityTreeCode' => '13960', + 'abilityTreeNodes' => ['FEATUREnasWJVZ38'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'JobId', + 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The job ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'rb-15****ed-r-1625****2441', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '31a8e4****', 'title' => ''], ], ], '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****', + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + 'SuperAdminSid' => ['description' => 'The ID of a super admin.'."\n", 'type' => 'string', 'example' => 'S-1-0-0', 'title' => ''], + 'HomeDirPath' => ['description' => 'The home directory of each user.'."\n", 'type' => 'string', 'example' => '/home', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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 \\"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', + 'changeSet' => [ + ['createdAt' => '2022-08-05T02:39:08.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeSmbAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeSmbAcl'], + ], ], - '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', - ], + 'DescribeSnapshots' => [ + 'summary' => 'Queries the information about one or more snapshots of a file system.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -11457,246 +12251,223 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '14463', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', - ], + 'abilityTreeCode' => '13961', + 'abilityTreeNodes' => ['FEATUREnas5QOAQE'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'FileSystemType', 'in' => 'query', 'schema' => [ - 'description' => 'The ID of the file system.'."\n", + 'description' => 'The type of the file system.'."\n" + ."\n" + .'Valid value: extreme, which indicates Extreme File Storage NAS (NAS) file systems.', 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '1ca404****', + 'required' => false, + 'example' => 'extreme', + 'enum' => ['extreme'], + 'title' => '', ], ], [ - 'name' => 'JobId', + 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The job ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rb-15****ed-r-1625****2441', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => false, 'example' => 'extreme-22f****', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'SnapshotIds', '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', - ], + '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****', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'SnapshotName', + 'in' => 'query', + 'schema' => ['description' => 'The snapshot name.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + [ + 'name' => 'SnapshotType', 'in' => 'query', 'schema' => [ - 'description' => 'The page number.'."\n" + 'description' => 'The type of the snapshot.'."\n" ."\n" - .'Pages start from page 1. Default value: 1.'."\n", - 'type' => 'integer', - 'format' => 'int64', + .'Valid values:'."\n" + ."\n" + .'* auto: auto snapshot'."\n" + .'* user: manual snapshot'."\n" + .'* all (default): all snapshot types'."\n", + 'type' => 'string', 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', + 'example' => 'all', + 'default' => 'all', + 'enum' => ['auto', 'user', 'all'], + 'title' => '', ], ], [ 'name' => 'Status', 'in' => 'query', 'schema' => [ - 'description' => 'The job status. Valid values:'."\n" + 'description' => 'The status of the snapshot.'."\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", + .'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' => [ - 'Running', - 'Defragmenting', - 'PartialSuccess', - 'Success', - 'Fail', - 'Cancelled', - 'All', - ], + 'example' => 'all', + 'default' => 'all', + 'enum' => ['progressing', 'accomplished', 'failed', 'all'], + 'title' => '', ], ], + [ + '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', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], ], '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.', + 'TotalCount' => ['description' => 'The total number of snapshots returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '36', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + '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', 'title' => ''], + 'Progress' => ['description' => 'The progress of the snapshot creation. The value of this parameter is expressed as a percentage.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''], + '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', 'title' => ''], + '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****', 'title' => ''], + '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', 'title' => ''], + 'RemainTime' => ['description' => 'The remaining time that is required to create the snapshot.'."\n" + ."\n" + .'Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '38', 'title' => ''], + 'SourceFileSystemSize' => ['description' => 'The capacity of the source file system.'."\n" + ."\n" + .'Unit: GiB.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '2000', 'title' => ''], + 'SourceFileSystemVersion' => ['description' => 'The version of the source file system.'."\n", 'type' => 'string', 'example' => '1', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + 'Description' => ['description' => 'The description of the snapshot.'."\n", 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'SnapshotId' => ['description' => 'The snapshot ID.'."\n", 'type' => 'string', 'example' => 's-extreme-snapsho****', 'title' => ''], + 'FileSystemType' => ['description' => 'The type of the file system.'."\n", 'type' => 'string', 'example' => 'extreme', 'title' => ''], + 'SnapshotType' => ['description' => 'The snapshot type. Valid values:'."\n" + ."\n" + .'* auto: automatically created snapshots'."\n" + .'* user: manually created snapshots'."\n", 'type' => 'string', 'example' => 'user', 'title' => ''], + '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', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], - 'description' => '', ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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.', - ], + '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' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-12-19T09:33:28.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-05-10T08:49:35.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeSnapshots'], ], - 404 => [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], - [ - 'errorCode' => 'InvalidJobId.NotFound', - 'errorMessage' => 'The specified JobId(%JobId) does not exist.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeSnapshots', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Snapshot', 'arn' => 'acs:nas:{#regionId}:{#accountId}:snapshot/*'], + ], ], ], ], - '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', - ], + 'DescribeStoragePackages' => [ + 'summary' => 'You can call the DescribeStoragePackages operation to query the list of storage plans.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -11708,156 +12479,134 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '14465', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', - ], + 'abilityTreeCode' => '13962', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '1ca404****', - ], + 'schema' => ['description' => 'The region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'PageSize', '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', - ], + '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', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'UseUTCDateTime', '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', - ], + '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', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The number of the page to return.'."\n" + ."\n" + .'Pages start from page 1. Default value: 1.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'title' => ''], ], ], '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', + 'TotalCount' => ['description' => 'The number of storage plans.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '035B3A3A-E514-4B41-B906-5D906CFB****', 'title' => ''], + 'PageSize' => ['description' => 'The number of storage plans returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the returned page.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + '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', 'title' => ''], + 'FileSystemId' => ['description' => 'The ID of the file system that is bound to the storage plan.'."\n", 'type' => 'string', 'example' => '109c****66', 'title' => ''], + 'StartTime' => ['description' => 'The start time of the validity period for the storage plan.'."\n", 'type' => 'string', 'example' => '2019-12-05T01:40:56Z', 'title' => ''], + 'ExpiredTime' => ['description' => 'The end time of the validity period for the storage plan.'."\n", 'type' => 'string', 'example' => '2020-01-05T16:00:00Z', 'title' => ''], + 'Size' => ['description' => 'The capacity of the storage plan.'."\n" + ."\n" + .'Unit: bytes.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''], + 'StorageType' => ['description' => 'The type of the storage plan.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* Performance'."\n" + .'* Capacity'."\n", 'type' => 'string', 'example' => 'Capacity', 'title' => ''], + 'PackageId' => ['description' => 'The ID of the storage plan.'."\n", 'type' => 'string', 'example' => 'naspackage-@string(\'*****\', *)-@string(\'*****\', *)', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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.', - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 3,\\n \\"RequestId\\": \\"035B3A3A-E514-4B41-B906-5D906CFB****\\",\\n \\"PageSize\\": 1,\\n \\"PageNumber\\": 1,\\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' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-01-29T14:24:12.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeStoragePackages'], ], - 404 => [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], - [ - 'errorCode' => 'InvalidParameter.InvalidNextToken', - 'errorMessage' => 'The specified NextToken is invaild.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeStoragePackages', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - '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', - ], + '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' => [], @@ -11869,289 +12618,305 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '14464', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', - ], + 'abilityTreeCode' => '13964', + 'abilityTreeNodes' => ['FEATUREnasQG6YBL'], 'autoTest' => true, - 'tenantRelevance' => 'tenant', + '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' => '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', + 'name' => 'RegionId', '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=', - ], + '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', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'FileSystemType', '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', - ], + '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, 'default' => 'standard', 'example' => 'standard', 'title' => ''], ], ], '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', + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'A70BEE5D-76D3-49FB-B58F-1F398211****', 'title' => ''], + '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', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + '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', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'ZoneId' => ['description' => 'The zone ID.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou-b', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified Region is not found.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - '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', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeZones', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeZones'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeZones', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'DetachVscFromFilesystems' => [ + 'summary' => 'Dissociates a VSC device from a file system.', + 'path' => '', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', - 'riskType' => 'high', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13968', - 'abilityTreeNodes' => [ - 'FEATUREnasWJVZ38', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], + 'autoTest' => false, + 'notSupportAutoTestReason' => '特定账户使用', + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'ResourceIds', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', + 'description' => 'The ID information of the file system and virtual storage channel. A maximum of 10 entries can be specified per batch.', + 'type' => 'array', + 'items' => [ + 'description' => 'The ID information of the file system and virtual storage channel. A maximum of 10 entries can be specified per batch.', + 'type' => 'object', + 'properties' => [ + 'FileSystemId' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => false, 'example' => 'bmcpfs-290t15yn4uo8lid****'."\n", 'title' => ''], + 'VscId' => ['description' => 'The virtual storage channel ID.', 'type' => 'string', 'required' => false, 'example' => 'vsc-8vb864o3ppwfvh****'."\n", 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => true, 'docRequired' => true, - 'example' => '31a8e4****', + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'Keytab', + 'name' => 'ClientToken', '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', - ], + '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 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 RequestId of the API request as the ClientToken. The RequestId may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], ], [ - 'name' => 'KeytabMd5', + 'name' => 'RoleChain', 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'description' => 'The string that is generated after the system encodes the keytab file by using MD5.'."\n", - 'type' => 'string', + 'description' => 'The role chain.'."\n" + .'> This parameter is required only for cross-account scenarios.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RoleType' => ['description' => 'The role type. Valid values: service and user.', 'type' => 'string', 'required' => false, 'example' => 'service', 'title' => ''], + 'RoleArn' => ['description' => 'The resource descriptor of the specified role. Format: acs:ram::$accountID:role/$roleName.', 'type' => 'string', 'required' => false, 'example' => 'acs:ram::123472233814****:role/aliyunnasclientvsc****', 'title' => ''], + 'AssumeRoleFor' => ['description' => 'The UID of the Alibaba Cloud account on whose behalf the service assumes the role.', 'type' => 'string', 'required' => false, 'example' => '528394183225****', 'title' => ''], + ], + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', + ], 'required' => false, - 'docRequired' => true, - 'example' => 'E3CCF7E2416DF04FA958AA4513EAxxxx', + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', + 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', 'title' => ''], ], - 'description' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter is invalid.', 'description' => 'Illegal parameter.'], + ['errorCode' => 'InvalidParameter.FileSystem', 'errorMessage' => 'Invalid FileSystem in ResourceIds.', 'description' => ''], + ['errorCode' => 'InvalidParameter.ResourceIds', 'errorMessage' => 'Invalid ResourceIds, can not be empty or batch size large than 10.', 'description' => ''], + ['errorCode' => 'InvalidFilesystemType.NotSupport', 'errorMessage' => 'This Api does not support this fileSystem type.', 'description' => 'The current interface does not support this type of file system.'], + ['errorCode' => 'InvalidParameter.VscId', 'errorMessage' => 'Invalid VscId in ResourceIds.', 'description' => ''], + ['errorCode' => 'InvalidParameter.VscIds', 'errorMessage' => 'Invalid VscId in ResourceIds.VscIds must be the same.', 'description' => ''], + ['errorCode' => 'Ram.AddRamParamFailed', 'errorMessage' => 'Ram check has failed due to param invalid, please check param.', 'description' => ''], + ['errorCode' => 'FeatureOrAPI.NotSupported', 'errorMessage' => 'The Feature/API is not supported in this region now.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbbiden.Ram', 'errorMessage' => 'User not authorized to operate on the specified resource, or this API doesn\'t support RAM.', 'description' => 'The user is not authorized to operate the specified resource, or the API does not support RAM.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Dissociate a VSC device from a file system', + 'description' => '- Only CPFS for Lingjun supports this feature.'."\n" + .'- Batch operations are supported. In batch mode, only one VscId can be associated with multiple FileSystemIds. This means the ResourceIds.VscId values must be the same.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:DetachVscFromFilesystems', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Vsc', 'arn' => 'acs:eflo:{#regionId}:{#accountId}:vsc/{#VscId}'], + ], + ], + ], ], - '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', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\"\\n}","type":"json"}]', ], - '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', - ], + 'DisableAndCleanRecycleBin' => [ + 'summary' => 'Disables and empties the recycle bin of a General-purpose NAS file system.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -12162,11 +12927,9 @@ 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'high', - 'chargeType' => 'free', - 'abilityTreeCode' => '13966', - 'abilityTreeNodes' => [ - 'FEATUREnasWJVZ38', - ], + 'chargeType' => 'paid', + 'abilityTreeCode' => '14454', + 'abilityTreeNodes' => ['FEATUREnas0A1PB1'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], @@ -12174,46 +12937,66 @@ [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '1ca404****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '9E15E394-38A6-457A-A62A-D9797C9A****'], ], - 'description' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'OperationDenied.RecycleBinDisabled', 'errorMessage' => 'The operation is denied because the recycle bin is disabled.', 'description' => 'The operation is denied because the recycle bin is disabled.'], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ], ], - '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', + '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", + 'changeSet' => [ + ['createdAt' => '2021-06-02T07:10:58.000Z', 'description' => 'Request parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisableAndCleanRecycleBin'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:DisableAndCleanRecycleBin', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], ], + ], + 'DisableNfsAcl' => [ + 'summary' => 'Disables the NFS ACL feature for a file system.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -12223,12 +13006,10 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', - 'riskType' => 'none', + 'riskType' => 'high', 'chargeType' => 'free', - 'abilityTreeCode' => '13980', - 'abilityTreeNodes' => [ - 'FEATUREnasWJVZ38', - ], + 'abilityTreeCode' => '13965', + 'abilityTreeNodes' => ['FEATUREnasWJVZ38'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], @@ -12236,115 +13017,136 @@ [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '1ca404****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '91fcdxxxx', 'title' => ''], ], - [ - 'name' => 'Keytab', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ '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****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '24487C24-AE54-57EC-B4E4-4EDEEEB83B01', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - [ - '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****', + ], + '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', + 'description' => '仅通用型NAS NFS协议文件系统支持该功能。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisableNfsAcl'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:DisableNfsAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], + ], + ], + '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' => [ [ - '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', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13966', + 'abilityTreeNodes' => ['FEATUREnasWJVZ38'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ [ - 'name' => 'EncryptData', + 'name' => 'FileSystemId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ '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', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + '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', + 'changeSet' => [ + ['createdAt' => '2021-12-17T06:24:59.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisableSmbAcl'], + ], + ], + 'ramActions' => [ [ - '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', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:DisableSmbAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], + ], + ], + 'EnableNfsAcl' => [ + 'summary' => 'Enables the NFS ACL feature for a file system.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - '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', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13967', + 'abilityTreeNodes' => ['FEATUREnasWJVZ38'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ [ - 'name' => 'HomeDirPath', + 'name' => 'FileSystemId', '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', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '43f264xxxx', 'title' => ''], ], ], 'responses' => [ @@ -12352,47 +13154,55 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '29F4F360-A6A8-561A-A45B-A0F6882969BA', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + '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', + 'description' => '仅通用型NAS NFS协议文件系统支持该功能。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'EnableNfsAcl'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:EnableNfsAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], - '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', - ], + 'EnableRecycleBin' => [ + 'summary' => 'Enables the recycle bin feature for a file system.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '13960', - 'abilityTreeNodes' => [ - 'FEATUREnasWJVZ38', - ], + 'chargeType' => 'paid', + 'abilityTreeCode' => '14453', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], @@ -12400,94 +13210,73 @@ [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '31a8e4****', - ], + '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****', 'title' => ''], + ], + [ + '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', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", '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', - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '9E15E394-38A6-457A-A62A-D9797C9A****'], ], - 'description' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'OperationDenied.RecycleBinEnabled', 'errorMessage' => 'The recycle bin is already enabled.', 'description' => 'The recycle bin is already enabled.'], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ], ], - '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', + '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", + 'changeSet' => [ + ['createdAt' => '2021-06-02T07:10:28.000Z', 'description' => 'Request parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'EnableRecycleBin'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:EnableRecycleBin', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], + ], + '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' => [], @@ -12496,195 +13285,191 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'high', 'chargeType' => 'free', - 'abilityTreeCode' => '137907', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', - ], - 'autoTest' => false, - 'notSupportAutoTestReason' => '为特殊用户使用API', - 'tenantRelevance' => 'publicInformation', + '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' => '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', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '31a8e4****', 'title' => ''], ], [ - 'name' => 'Owner', + 'name' => 'Keytab', '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****', - ], + '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', 'title' => ''], ], [ - 'name' => 'OwnerAccessInheritable', + 'name' => 'KeytabMd5', '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', - ], + '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', 'title' => ''], ], ], '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****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + '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', + 'changeSet' => [ + ['createdAt' => '2022-08-05T02:39:08.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-07-18T02:03:58.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-12-17T06:24:59.000Z', 'description' => 'Error codes changed'], ], - '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', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'EnableSmbAcl'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:EnableSmbAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], + ], + 'GetAgenticSpace' => [ + 'path' => '', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'high', + 'operationType' => 'get', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13967', - 'abilityTreeNodes' => [ - 'FEATUREnasWJVZ38', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeNodes' => ['FEATUREnasXEQXVN'], ], 'parameters' => [ [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '43f264xxxx', - ], + 'schema' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '06229oypxjgox0u****', 'title' => ''], + ], + [ + 'name' => 'AgenticSpaceId', + 'in' => 'query', + 'schema' => ['description' => 'AgenticSpace Id。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'agentic-229oypxjgpau2****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '29F4F360-A6A8-561A-A45B-A0F6882969BA', + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0D****3E'], + 'AgenticSpace' => [ + 'description' => 'The AgenticSpace information.', + 'type' => 'object', + 'properties' => [ + 'FileSystemId' => ['description' => 'The file system ID.', 'type' => 'string', 'example' => '06229oypxjgox0u****', 'title' => ''], + 'AgenticSpaceId' => ['description' => 'AgenticSpace Id。', 'type' => 'string', 'example' => 'agentic-229oypxjgpau2****', 'title' => ''], + 'Description' => ['description' => 'AgenticSpace Description。', 'type' => 'string', 'example' => 'AgenticSpace Description。', 'title' => ''], + 'FileSystemPath' => ['description' => 'The absolute path of the file.', 'type' => 'string', 'example' => '/test/', 'title' => ''], + 'Azone' => ['description' => 'The zone ID.', 'type' => 'string', 'example' => 'cn-hangzhou-i', 'title' => ''], + 'Status' => ['description' => 'The status of the AgenticSpace. Valid values:'."\n" + .'- Running', 'type' => 'string', 'example' => 'Running', 'title' => ''], + 'CreateTimeUtc' => ['description' => 'The time when the AgenticSpace was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format.', 'type' => 'string', 'example' => '2026-06-10T10:08:08Z', 'title' => ''], + 'UpdateTimeUtc' => ['description' => 'The time when the AgenticSpace was last updated. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format.', 'type' => 'string', 'example' => '2026-06-10T10:08:08Z', 'title' => ''], + 'Quota' => [ + 'description' => 'The quota information.', + 'type' => 'object', + 'properties' => [ + 'SizeLimit' => ['description' => 'The total capacity limit of the quota. Unit: bytes.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- Minimum value: 10,737,418,240 (10 GiB).'."\n" + .'- Maximum value: 1,099,511,627,776,000 (1024000 GiB).'."\n" + .'- Step: 1,073,741,824 (1 GiB).', 'type' => 'integer', 'format' => 'int64', 'example' => '10737418240', 'title' => ''], + 'FileCountLimit' => ['description' => 'The file count limit of the quota. Valid values:'."\n" + ."\n" + .'- Minimum value: 10,000.'."\n" + ."\n" + .'- Maximum value: 100,000,000.', 'type' => 'integer', 'format' => 'int64', 'example' => '10000000', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'FileCountUsage' => ['description' => 'The number of files used.', 'type' => 'integer', 'format' => 'int64', 'example' => '100', 'title' => ''], + 'SpaceUsage' => ['description' => 'The capacity usage. Unit: bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '1024', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'example' => '', ], ], ], - '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', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => 'The FileSystemId parameter is not specified.'], + ], + 403 => [ + ['errorCode' => 'OperationDenied.FilesetNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => 'The file system does not support Fileset.'], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified filesystem does not exist.', 'description' => 'The specified file system does not exist.'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query an agentic space', + 'summary' => 'Queries an Agentic space.', + 'description' => 'Applicable to agentic-type file systems.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0D****3E\\",\\n \\"AgenticSpace\\": {\\n \\"FileSystemId\\": \\"06229oypxjgox0u****\\",\\n \\"AgenticSpaceId\\": \\"agentic-229oypxjgpau2****\\",\\n \\"Description\\": \\"AgenticSpace Description。\\",\\n \\"FileSystemPath\\": \\"/test/\\",\\n \\"Azone\\": \\"cn-hangzhou-i\\",\\n \\"Status\\": \\"Running\\",\\n \\"CreateTimeUtc\\": \\"2026-06-10T10:08:08Z\\",\\n \\"UpdateTimeUtc\\": \\"2026-06-10T10:08:08Z\\",\\n \\"Quota\\": {\\n \\"SizeLimit\\": 10737418240,\\n \\"FileCountLimit\\": 10000000\\n },\\n \\"FileCountUsage\\": 100,\\n \\"SpaceUsage\\": 1024\\n }\\n}","type":"json"}]', + ], + 'GetDirectoryOrFileProperties' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'high', + 'operationType' => 'get', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13965', - 'abilityTreeNodes' => [ - 'FEATUREnasWJVZ38', - ], + 'abilityTreeCode' => '19614', + 'abilityTreeNodes' => ['FEATUREnasZ6WBFV'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], @@ -12692,13 +13477,14 @@ [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '91fcdxxxx', - ], + 'schema' => ['description' => 'The ID of the file system.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '31a8e4****', 'title' => ''], + ], + [ + 'name' => 'Path', + 'in' => 'query', + 'schema' => ['description' => 'The absolute path of the directory or file.'."\n" + ."\n" + .'The path must start with a forward slash (/) and must be an existing path in the mount target.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '/pathway/to/folder', 'title' => ''], ], ], 'responses' => [ @@ -12706,32 +13492,127 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '24487C24-AE54-57EC-B4E4-4EDEEEB83B01', + 'Entry' => [ + 'description' => 'The properties of the directory or file.', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The type of the returned entry.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- File: The entry is a file.'."\n" + ."\n" + .'- Directory: The entry is a directory.', 'type' => 'string', 'example' => 'File', 'title' => ''], + 'HasInfrequentAccessFile' => ['description' => 'Indicates whether the directory contains an Infrequent Access (IA) file.'."\n" + ."\n" + .'This parameter is returned only if Type is set to Directory.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: The directory contains at least one IA file.'."\n" + ."\n" + .'- false: The directory does not contain IA files.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'MTime' => ['description' => 'The time when the file was last modified.'."\n" + ."\n" + .'The time is displayed in the ISO 8601 standard format and is returned in UTC. Format: YYYY-MM-DDThh:mm:ssZ.'."\n" + ."\n" + .'This parameter is returned only if Type is set to File.', 'type' => 'string', 'example' => '2021-02-11T10:08:08Z', 'title' => ''], + 'ATime' => ['description' => 'The time when the file was last accessed.'."\n" + ."\n" + .'The time is displayed in the ISO 8601 standard format and is returned in UTC. Format: YYYY-MM-DDThh:mm:ssZ.'."\n" + ."\n" + .'This parameter is returned only if Type is set to File.', 'type' => 'string', 'example' => '2021-02-01T10:08:08Z', 'title' => ''], + 'Size' => ['description' => 'The size of the file.'."\n" + ."\n" + .'Unit: bytes.'."\n" + ."\n" + .'This parameter is returned only if Type is set to File.', 'type' => 'integer', 'format' => 'int64', 'example' => '1024', 'title' => ''], + 'CTime' => ['description' => 'The time when the metadata of the file was last modified.'."\n" + ."\n" + .'The time is displayed in the ISO 8601 standard format and is returned in UTC. Format: YYYY-MM-DDThh:mm:ssZ.'."\n" + ."\n" + .'This parameter is returned only if Type is set to File.', 'type' => 'string', 'example' => '2021-02-11T10:08:10Z', 'title' => ''], + 'StorageType' => ['description' => 'The storage type of the file.'."\n" + ."\n" + .'This parameter is returned only if Type is set to File.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- Standard: General-purpose NAS file systems'."\n" + ."\n" + .'- InfrequentAccess: IA storage medium', 'type' => 'string', 'example' => 'InfrequentAccess', 'title' => ''], + 'Name' => ['description' => 'The name of the file or directory.', 'type' => 'string', 'example' => 'file.txt', 'title' => ''], + 'RetrieveTime' => ['description' => 'The time when the last data retrieval task was run.'."\n" + ."\n" + .'The time is displayed in the ISO 8601 standard format and is returned in UTC. Format: YYYY-MM-DDThh:mm:ssZ.'."\n" + ."\n" + .'This parameter is returned only if Type is set to File.', 'type' => 'string', 'example' => '2021-02-11T10:08:08Z', 'title' => ''], + 'Inode' => ['description' => 'The inode of the file or directory.', 'type' => 'string', 'example' => '40', 'title' => ''], + 'HasArchiveFile' => ['description' => 'Indicates whether the directory contains an archive file.'."\n" + ."\n" + .'This parameter is returned only if Type is set to Directory.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: The directory contains at least one archive file.'."\n" + ."\n" + .'- false: The directory does not contain archive files.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'OfflineDuration' => ['type' => 'integer', 'format' => 'int64', 'description' => '', 'title' => '', 'example' => ''], + 'OfflineUnchangedDuration' => ['type' => 'integer', 'format' => 'int64', 'description' => '', 'title' => '', 'example' => ''], + ], + 'title' => '', + 'example' => '', ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 404 => [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidParameter.PathNotExist', 'errorMessage' => 'The specified path does not exist.', 'description' => 'The specified path does not exist.'], + ], ], - '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', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'GetDirectoryOrFileProperties', + 'summary' => 'Checks if a specified directory contains infrequent access or archive storage files, or if a specified file is an infrequent access or archive storage file.', + 'description' => 'This operation is available only for general-purpose NAS file systems.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-03-25T10:51:46.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-04-08T08:36:16.000Z', 'description' => 'OpenAPI offline'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetDirectoryOrFileProperties'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:GetDirectoryOrFileProperties', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'GetFileset' => [ + 'summary' => 'Queries the information about the created fileset.', + 'path' => '', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -12743,244 +13624,392 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13958', - 'abilityTreeNodes' => [ - 'FEATUREnasWJVZ38', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeNodes' => ['FEATUREnasPWYFYN'], ], 'parameters' => [ [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '206614xxxx', - ], + '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****', 'title' => ''], + ], + [ + '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****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Response information'."\n", '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", + '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' => [ - 'Enabled' => [ - 'description' => 'Indicates whether the NFS ACL feature is enabled.'."\n" + 'Description' => ['description' => 'The description of the fileset.'."\n", 'type' => 'string', 'example' => 'Description', 'title' => ''], + 'FileSystemPath' => ['description' => 'The directory of the fileset in the CPFS file system.'."\n", 'type' => 'string', 'example' => 'pathtoroot/fset/', 'title' => ''], + 'FsetId' => ['description' => 'The fileset ID.'."\n" + ."\n" + .'> This parameter is required for CPFS file systems.'."\n", 'type' => 'string', 'example' => 'fset-03250e8fe78d****', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + 'Quota' => [ + 'description' => 'The quota information.'."\n" ."\n" - .'* true: The NFS ACL feature is enabled.'."\n" - .'* false: The NFS ACL feature is disabled.'."\n", - 'type' => 'boolean', - 'example' => 'true', + .'> 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', 'title' => ''], + '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', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], + '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****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'example' => '', ], ], ], - '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', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'OperationDenied.FilesetNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified filesystem does not exist.', 'description' => ''], + ], ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'GetFileset', + 'description' => '仅CPFS 2.2.0和CPFS智算版2.7.0及以上版本支持Fileset。您可以在控制台文件系统详情页面查看版本信息。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:GetFileset', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + '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"}]', + 'translator' => 'manual', + ], + 'GetProtocolMountTarget' => [ + 'summary' => 'Query the export directory information of the protocol service', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13933', - 'abilityTreeNodes' => [ - 'FEATUREnasA0C6YC', - ], + 'abilityTreeCode' => '124960', + 'abilityTreeNodes' => ['FEATUREnasQ7YV89', 'FEATUREnas0GUIX5'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + '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==', 'title' => ''], + ], + [ + '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', 'maximum' => '100', 'minimum' => '10', 'default' => '20', 'required' => false, 'example' => '20', 'title' => ''], ], [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '174494xxxx', - ], + '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****', 'title' => ''], + ], + [ + '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', 'maxLength' => 64, 'minLength' => 1, 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], + ], + [ + 'name' => 'ProtocolServiceId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the protocol service.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ptc-197ed6a00f2b****', 'title' => ''], + ], + [ + 'name' => 'ExportId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the export directory for the protocol service.'."\n", 'type' => 'string', 'required' => true, 'example' => 'exp-19abf5beab8d****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5B4511A7-C99E-4071-AA8C-32E2529DA963', + '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==', 'title' => ''], + '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****', 'title' => ''], + 'ProtocolMountTargetDomain' => ['description' => 'The domain name of the export directory for the protocol service.'."\n", 'type' => 'string', 'example' => 'cpfs-0229cb80bcc0****-x******.cn-*****.cpfs.aliyuncs.com', 'title' => ''], + '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', 'title' => ''], + 'VpcId' => ['description' => 'The VPC ID of the export directory.'."\n", 'type' => 'string', 'example' => 'vpc-bp1h5mxoqfuo3xurf****', 'title' => ''], + 'VSwitchId' => ['description' => 'The vSwitch ID of the export directory.'."\n", 'type' => 'string', 'example' => 'vsw-8vb2qjnxs6hiobzve****', 'title' => ''], + '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****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'FsetId' => ['description' => 'The fileset ID.'."\n", 'type' => 'string', 'example' => 'fset-299b4ca04de8****', 'title' => ''], + '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' => '/', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + 'Description' => ['description' => 'The description of the export directory.'."\n", 'type' => 'string', 'example' => '此协议服务导出的描述。', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingExportId', 'errorMessage' => 'ExportId is mandatory for this action.', 'description' => ''], ], 404 => [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'Resource.NotFound', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'GetProtocolMountTarget', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:GetProtocolMountTarget', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - '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' => ' ', + '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"}]', + 'translator' => 'manual', ], - 'DeleteLogAnalysis' => [ - 'summary' => 'Disables log dumping for a General-purpose NAS file system.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetRecycleBinAttribute' => [ + 'summary' => 'Queries the recycle bin configurations of a General-purpose NAS file system.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13942', - 'abilityTreeNodes' => [ - 'FEATUREnas0MLWQI', - 'FEATUREnas3DACY7', - 'FEATUREnas71NBOZ', - 'FEATUREnasA0C6YC', - ], + 'abilityTreeCode' => '14459', + 'abilityTreeNodes' => ['FEATUREnas0A1PB1'], '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', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '70EACC9C-D07A-4A34-ADA4-77506C42B023', + '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', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + 'EnableTime' => ['description' => 'The time at which the recycle bin was enabled.'."\n", 'type' => 'string', 'example' => '2021-05-30T10:08:08Z', 'title' => ''], + 'ArchiveSize' => ['description' => 'The size of the archived data that is dumped to the recycle bin. Unit: bytes.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1611661312', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ], ], - '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', + '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.', + 'changeSet' => [ + ['createdAt' => '2024-08-14T02:36:48.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-06-02T07:10:56.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-06-02T07:10:56.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:GetRecycleBinAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetRecycleBinAttribute'], + ], ], + ], + 'ListAccessPoints' => [ + 'summary' => '', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -12989,73 +14018,61 @@ 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13955', - 'abilityTreeNodes' => [ - 'FEATUREnasA0C6YC', - ], + 'abilityTreeCode' => '189598', + 'abilityTreeNodes' => ['FEATUREnas0MLWQI', 'FEATUREnas3DACY7', 'FEATUREnas71NBOZ', 'FEATUREnas5IJRRZ'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['type' => 'string', 'required' => true, 'description' => '', 'example' => '0913nx15amuix9a****', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'Filters', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The number of entries per page. Valid values: 1 to 100. Default value: 10.'."\n", - 'type' => 'integer', - 'format' => 'int32', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Name' => [ + 'type' => 'string', + 'example' => 'AccessPointId', + 'enum' => ['AccessPointId', 'AgenticSpaceId', 'AccessGroup'], + 'title' => '', + 'description' => '', + 'required' => false, + 'enumValueTitles' => ['AccessGroup' => '权限组名称', 'AccessPointId' => '接入点ID', 'AgenticSpaceId' => 'Agentic空间ID'], + ], + 'Value' => ['type' => 'string', 'example' => 'TestValue', 'title' => '', 'description' => '', 'required' => false], + ], + 'title' => '', + 'description' => '', + 'required' => false, + 'example' => '', + ], + 'maxItems' => 21, + 'title' => '', + 'description' => '', 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '1', - 'default' => '10', + 'example' => '', ], ], [ - 'name' => 'PageNumber', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: 1.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - ], + 'schema' => ['type' => 'string', 'description' => '', 'required' => false, 'example' => 'MTY4NzcxOTcwMjAzMDk2Nzc0MyM4MDM4****', 'title' => ''], ], [ - 'name' => 'FileSystemType', + 'name' => 'MaxResults', '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', - ], - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'description' => '', 'example' => '10', 'title' => ''], ], ], 'responses' => [ @@ -13063,263 +14080,192 @@ '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' => [ + 'RequestId' => ['type' => 'string', 'required' => true, 'title' => '', 'description' => '', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****'], + 'AccessPoints' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ARN' => ['type' => 'string', 'description' => '', 'example' => 'acs:nas:cn-hangzhou:178321033379****:accesspoint/ap-ie15yd****', 'title' => ''], + 'AccessGroup' => ['type' => 'string', 'description' => '', 'example' => 'DEFAULT_VPC_GROUP_NAME', 'title' => ''], + 'AccessPointId' => ['type' => 'string', 'description' => '', 'example' => 'ap-ie15y*****'."\n", 'title' => ''], + 'AccessPointName' => ['type' => 'string', 'description' => '', 'example' => 'test', 'title' => ''], + 'CreateTime' => ['type' => 'string', 'description' => '', 'example' => '2026-03-28T06:32:14Z', 'title' => ''], + 'DomainName' => ['type' => 'string', 'description' => '', 'example' => 'ap-ie15ydanoz.001014****-w****.cn-hangzhou.nas.aliyuncs.com', 'title' => ''], + 'EnabledRam' => ['type' => 'boolean', 'description' => '', 'example' => 'false', 'title' => ''], + 'FileSystemId' => ['type' => 'string', 'description' => '', 'example' => '091yj49baxscll2****', 'title' => ''], + 'ModifyTime' => ['type' => 'string', 'description' => '', 'example' => '2026-06-24T02:10:23Z', 'title' => ''], + 'PosixUser' => [ 'type' => 'object', 'properties' => [ - 'MetaKey' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'example' => '0c7154xxxx', + 'PosixGroupId' => ['type' => 'integer', 'format' => 'int32', 'description' => '', 'example' => '10', 'title' => ''], + 'PosixUserId' => ['type' => 'integer', 'format' => 'int32', 'description' => '', 'example' => '156', 'title' => ''], + 'PosixSecondaryGroupIds' => [ + 'type' => 'array', + 'items' => ['type' => 'integer', 'format' => 'int32', 'description' => '', 'example' => '[100,123]', 'title' => ''], + 'description' => '', + 'title' => '', + 'example' => '', ], - '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', - ], - ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'RootPath' => ['type' => 'string', 'description' => '', 'example' => '/', 'title' => ''], + 'RootPathPermission' => [ + 'type' => 'object', + 'properties' => [ + 'OwnerGroupId' => ['type' => 'integer', 'format' => 'int64', 'description' => '', 'example' => '12', 'title' => ''], + 'OwnerUserId' => ['type' => 'integer', 'format' => 'int64', 'description' => '', 'example' => '1', 'title' => ''], + 'Permission' => ['type' => 'string', 'description' => '', 'example' => '0755', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'RootPathStatus' => ['type' => 'string', 'description' => '', 'example' => '2', 'title' => ''], + 'Status' => ['type' => 'string', 'description' => '', 'example' => 'Active', 'title' => ''], + 'VSwitchId' => ['type' => 'string', 'description' => '', 'example' => 'vsw-2zevmwkwyztjuoffg****'."\n", 'title' => ''], + 'VpcId' => ['type' => 'string', 'description' => '', 'example' => 'vpc-2zesj9afh3y518k9o****'."\n", 'title' => ''], + 'Tags' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['type' => 'string', 'example' => 'TestKey', 'title' => '', 'description' => ''], + 'Value' => ['type' => 'string', 'example' => 'TestValue', 'title' => '', 'description' => ''], ], + 'title' => '', + 'description' => '', + 'example' => '', ], + 'title' => '', + 'description' => '', + 'example' => '', ], + 'AgenticSpaceId' => ['type' => 'string', 'description' => '', 'example' => 'agentic-229oypxjgpau2****', 'title' => ''], + 'CreateTimeUtc' => ['type' => 'string', 'description' => '', 'example' => '2026-06-10T10:08:08Z', 'title' => ''], + 'ModifyTimeUtc' => ['type' => 'string', 'description' => '', 'example' => '2026-06-10T10:08:08Z', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'description' => '', + 'title' => '', + 'example' => '', ], - 'Code' => [ - 'description' => 'The HTTP status code.'."\n", - 'type' => 'string', - 'example' => '200', - ], + 'NextToken' => ['type' => 'string', 'description' => '', 'example' => '52frCAAAAABoZS90cm****==', 'title' => ''], + 'TotalCount' => ['type' => 'integer', 'format' => 'int32', 'description' => '', 'example' => '20', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidFilesystemType.NotSupport', 'errorMessage' => 'The API operation does not support the file system type.', 'description' => 'The API operation does not support the file system type.'], + ], + 403 => [ + ['errorCode' => 'InvalidProtocolType.NotSupported', 'errorMessage' => 'The specified protocol type does not supported.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidAccessGroup.NotFound', 'errorMessage' => 'The specified AccessGroup does not exist.', 'description' => 'The permission group that you specified does not exist or has been deleted.'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '', + 'description' => '仅通用型 NAS NFS 协议文件系统支持。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"AccessPoints\\": [\\n {\\n \\"ARN\\": \\"acs:nas:cn-hangzhou:178321033379****:accesspoint/ap-ie15yd****\\",\\n \\"AccessGroup\\": \\"DEFAULT_VPC_GROUP_NAME\\",\\n \\"AccessPointId\\": \\"ap-ie15y*****\\\\n\\",\\n \\"AccessPointName\\": \\"test\\",\\n \\"CreateTime\\": \\"2026-03-28T06:32:14Z\\",\\n \\"DomainName\\": \\"ap-ie15ydanoz.001014****-w****.cn-hangzhou.nas.aliyuncs.com\\",\\n \\"EnabledRam\\": false,\\n \\"FileSystemId\\": \\"091yj49baxscll2****\\",\\n \\"ModifyTime\\": \\"2026-06-24T02:10:23Z\\",\\n \\"PosixUser\\": {\\n \\"PosixGroupId\\": 10,\\n \\"PosixUserId\\": 156,\\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 \\"AgenticSpaceId\\": \\"agentic-229oypxjgpau2****\\",\\n \\"CreateTimeUtc\\": \\"2026-06-10T10:08:08Z\\",\\n \\"ModifyTimeUtc\\": \\"2026-06-10T10:08:08Z\\"\\n }\\n ],\\n \\"NextToken\\": \\"52frCAAAAABoZS90cm****==\\",\\n \\"TotalCount\\": 20\\n}","type":"json"}]', + ], + 'ListDirectoriesAndFiles' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '55589', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - 'FEATUREnasXEQXVN', - ], + 'abilityTreeCode' => '19613', + 'abilityTreeNodes' => ['FEATUREnas0A1PB1', 'FEATUREnasZ6WBFV'], + '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-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****', - ], + 'schema' => ['description' => 'The ID of the file system.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '31a8e4****', 'title' => ''], ], [ - 'name' => 'FileSystemPath', + 'name' => 'Path', '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/', - ], + 'schema' => ['description' => 'The absolute path of the directory.'."\n" + ."\n" + .'The path must start with a forward slash (/) and exist on the mount target.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '/pathway/to/folder', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'NextToken', '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', - ], + 'schema' => ['description' => 'A continuation token used to retrieve the next page of results when the response is truncated.', 'type' => 'string', 'required' => false, 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0= ', 'title' => ''], ], [ - 'name' => 'DeletionProtection', + 'name' => 'StorageType', '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" + 'description' => 'The storage type.'."\n" ."\n" - .'* true: enables release protection.'."\n" - .'* false (default): disables release protection.'."\n" + .'- `InfrequentAccess`: infrequent access.'."\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" + .'- `Archive`: archive storage.'."\n" + ."\n" + .'- `All`: all storage types.'."\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", + .'> If you set `StorageType` to `All`, you must set `DirectoryOnly` to `true`.', 'type' => 'string', - 'required' => false, - 'example' => 'test', + 'required' => true, + 'docRequired' => true, + 'enum' => ['InfrequentAccess', 'All', 'Archive'], + 'example' => 'InfrequentAccess', + 'title' => '', ], ], [ - 'name' => 'ClientToken', + 'name' => 'DirectoryOnly', '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, - ], + 'schema' => ['description' => 'Whether to list only directories.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- `false` (default): Lists both directories and files.'."\n" + ."\n" + .'- `true`: Lists only directories.'."\n" + ."\n" + .'> If you set `StorageType` to `All`, you must set `DirectoryOnly` to `true`.', 'type' => 'boolean', 'required' => false, 'default' => 'false', 'example' => 'false', 'title' => ''], ], [ - 'name' => 'Quota', + 'name' => 'MaxResults', '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, - ], + 'schema' => ['description' => 'The maximum number of directories or files to return per page.'."\n" + ."\n" + .'Value range: 10–128'."\n" + ."\n" + .'Default value: 100', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '128', 'minimum' => '10', 'default' => '100', 'example' => '100', 'title' => ''], ], ], 'responses' => [ @@ -13327,499 +14273,428 @@ '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****', + 'NextToken' => ['description' => 'The pagination token. If the response is truncated, include this token in the next request to retrieve the next page of results.', 'type' => 'string', 'example' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', 'title' => ''], + 'Entries' => [ + 'description' => 'The list of directory and file entries.', + 'type' => 'array', + 'items' => [ + 'description' => 'A directory or file entry.', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The type of the entry.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- `File`: a file'."\n" + ."\n" + .'- `Directory`: a directory', 'type' => 'string', 'example' => 'File', 'title' => ''], + 'HasInfrequentAccessFile' => ['description' => 'Specifies whether the directory contains any infrequent access files.'."\n" + ."\n" + .'This parameter is returned only when `Type` is `Directory`.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- `true`: Yes'."\n" + ."\n" + .'- `false`: No', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'Ctime' => ['description' => 'The metadata change time (ctime) of the file.'."\n" + ."\n" + .'The time is in the ISO 8601 format: `yyyy-MM-ddTHH:mm:ssZ`.'."\n" + ."\n" + .'This parameter is returned only when `Type` is `File`.', 'type' => 'string', 'example' => '2021-02-11T10:08:10Z', 'title' => ''], + 'Mtime' => ['description' => 'The last modification time (mtime) of the file.'."\n" + ."\n" + .'The time is in the ISO 8601 format: `yyyy-MM-ddTHH:mm:ssZ`.'."\n" + ."\n" + .'This parameter is returned only when `Type` is `File`.', 'type' => 'string', 'example' => '2021-02-11T10:08:08Z', 'title' => ''], + 'Size' => ['description' => 'The size of the file, in bytes.'."\n" + ."\n" + .'This parameter is returned only when `Type` is `File`.'."\n" + ."\n" + .'This value is returned and is meaningful only when Type is File.', 'type' => 'integer', 'format' => 'int64', 'example' => '1024', 'title' => ''], + 'StorageType' => ['description' => 'The storage class of the file.'."\n" + ."\n" + .'This parameter is returned only when `Type` is `File`.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- `InfrequentAccess`'."\n" + ."\n" + .'- `Archive`', 'type' => 'string', 'example' => 'InfrequentAccess', 'title' => ''], + 'Atime' => ['description' => 'The last access time (atime) of the file.'."\n" + ."\n" + .'The time is in the ISO 8601 format: `yyyy-MM-ddTHH:mm:ssZ`.'."\n" + ."\n" + .'This parameter is returned only when `Type` is `File`.', 'type' => 'string', 'example' => '2021-02-01T10:08:08Z', 'title' => ''], + 'Name' => ['description' => 'The name of the file or directory.', 'type' => 'string', 'example' => 'file.txt', 'title' => ''], + 'RetrieveTime' => ['description' => 'The last data retrieval time.'."\n" + ."\n" + .'The time is in the ISO 8601 format: `yyyy-MM-ddTHH:mm:ssZ`.'."\n" + ."\n" + .'This parameter is returned only when `Type` is `File`.', 'type' => 'string', 'example' => '2021-02-11T10:08:08Z', 'title' => ''], + 'Inode' => ['description' => 'The inode of the file or directory.', 'type' => 'string', 'example' => '66', 'title' => ''], + 'FileId' => ['description' => 'The ID of the file or directory.', 'type' => 'string', 'example' => '66', 'title' => ''], + 'Owner' => ['description' => 'The owner of the file or directory. This parameter is returned only when `ProtocolType` is `SMB` and access control is enabled.', 'type' => 'string', 'example' => '37862c****', 'title' => ''], + 'HasArchiveFile' => ['description' => 'Specifies whether the directory contains any archive files.'."\n" + ."\n" + .'This parameter is returned only when `Type` is `Directory`.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- `true`: Yes'."\n" + ."\n" + .'- `false`: No', 'type' => 'string', 'example' => 'true', 'title' => ''], + 'OfflineDuration' => ['type' => 'integer', 'format' => 'int64', 'description' => '', 'title' => '', 'example' => ''], + 'OfflineUnchangedDuration' => ['type' => 'integer', 'format' => 'int64', 'description' => '', 'title' => '', 'example' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'OperationDenied.InvalidNextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], ], - 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.', - ], + 404 => [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidParameter.PathNotExist', 'errorMessage' => 'The specified path does not exist.', 'description' => 'The specified path does not exist.'], ], - [ - [ - '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.', + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListDirectoriesAndFiles', + 'summary' => 'Lists Infrequent Access files and the subdirectories that contain them from a specified directory on a General-purpose NAS file system.', + 'description' => 'Only general-purpose NAS file systems support this feature.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-03-25T10:51:46.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-07-15T06:43:28.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-04-08T08:36:16.000Z', 'description' => 'OpenAPI offline'], + ['createdAt' => '2021-04-08T08:36:16.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDirectoriesAndFiles'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:ListDirectoriesAndFiles', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], ], - '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", + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'DeleteFileset' => [ - 'summary' => 'Deletes a fileset.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListLifecycleRetrieveJobs' => [ + 'summary' => 'Queries data retrieval tasks.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '55630', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], + 'abilityTreeCode' => '19612', + 'abilityTreeNodes' => ['FEATUREnas7AL8PW', 'FEATUREnasEER7AI', 'FEATUREnasZ6WBFV'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'PageSize', '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****', - ], + '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', 'title' => ''], ], [ - 'name' => 'FsetId', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The fileset ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'fset-1902718ea0ae****', - ], + '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', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'FileSystemId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => false, 'example' => '31a8e4****', 'title' => ''], + ], + [ + 'name' => 'Status', '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" + 'description' => 'The status of the data retrieval task. 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', + .'* 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' => 'false', - 'default' => 'false', + 'example' => 'completed', + 'default' => '', + 'enum' => ['active', 'canceled', 'completed', 'failed'], + 'title' => '', ], ], [ - 'name' => 'ClientToken', + 'name' => 'StorageType', 'in' => 'query', + 'allowEmptyValue' => true, '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" + 'description' => 'The storage class.'."\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" + .'* InfrequentAccess: the Infrequent Access (IA) storage class.'."\n" + .'* Archive: the Archive storage class.'."\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", + .'> If the StorageType parameter is not specified, data retrieval tasks of all types are returned.'."\n", 'type' => 'string', 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'example' => 'InfrequentAccess', + 'enum' => ['InfrequentAccess', 'Archive'], + 'title' => '', ], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + 'TotalCount' => ['description' => 'The total number of data retrieval tasks.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + '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****', 'title' => ''], + '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', 'title' => ''], + 'DiscoveredFileCount' => ['description' => 'The total number of files that are read in the data retrieval task.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '100', 'title' => ''], + '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', 'title' => ''], + '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"]', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'RetrievedFileCount' => ['description' => 'The total number of files that are retrieved.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '80', 'title' => ''], + 'JobId' => ['description' => 'The ID of the data retrieval task.'."\n", 'type' => 'string', 'example' => 'lrj-nfstest-ia-160****853-hshvw', 'title' => ''], + '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', 'title' => ''], + 'StorageType' => ['description' => 'The storage class.'."\n" + ."\n" + .'* InfrequentAccess: the IA storage class.'."\n" + .'* Archive: the Archive storage class.'."\n", 'type' => 'string', 'example' => 'InfrequentAccess', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + 404 => [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], ], - 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.', - ], + ], + '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' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-03-25T11:38:01.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2021-04-08T08:36:16.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListLifecycleRetrieveJobs'], ], + ], + 'ramActions' => [ [ - [ - '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.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:ListLifecycleRetrieveJobs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], ], ], ], - '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', - ], + 'ListRecentlyRecycledDirectories' => [ + 'summary' => 'Queries the directories that are recently deleted.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '55631', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], + 'abilityTreeCode' => '14465', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], + '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-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****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], ], [ - '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', + 'name' => 'NextToken', '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', - ], + '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', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'MaxResults', '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****', - ], + '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', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', + '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', 'title' => ''], + 'Path' => ['description' => 'The absolute path to the directory.'."\n", 'type' => 'string', 'example' => '/a/b', 'title' => ''], + 'Name' => ['description' => 'The name of the directory.'."\n", 'type' => 'string', 'example' => 'b', 'title' => ''], + 'LastDeleteTime' => ['description' => 'The time when the directory was last deleted.'."\n", 'type' => 'string', 'example' => '2021-05-30T10:08:08Z', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidParameter.KMSKeyId.KMSUnauthorized', 'errorMessage' => 'KMS is not authorized.', 'description' => 'KMS is not authorized.'], + ['errorCode' => 'InvalidParameter.KMSKeyId.CMKNotEnabled', 'errorMessage' => 'The CMK needs to be enabled.', 'description' => 'The CMK needs to be enabled.'], ], - 403 => [ - [ - 'errorCode' => 'OperationDenied.DependencyViolation', - 'errorMessage' => 'The operation is denied due to dependancy violation.', - ], - [ - 'errorCode' => 'OperationDenied.FilesetNotSupported', - 'errorMessage' => 'The operation is not supported.', - ], + 404 => [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidParameter.InvalidNextToken', 'errorMessage' => 'The specified NextToken is invaild.', 'description' => ''], ], + ], + '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", + 'changeSet' => [ + ['createdAt' => '2021-06-02T07:10:56.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListRecentlyRecycledDirectories'], + ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], - [ - 'errorCode' => 'InvalidFsetId.NotFound', - 'errorMessage' => 'The specified Fileset ID does not exist.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:ListRecentlyRecycledDirectories', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], ], - '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', - ], + 'ListRecycleBinJobs' => [ + 'summary' => 'Queries the jobs of the recycle bin.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -13831,36 +14706,57 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], + 'abilityTreeCode' => '14463', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], + '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****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], ], [ - 'name' => 'FsetId', + 'name' => 'JobId', + 'in' => 'query', + 'schema' => ['description' => 'The job ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rb-15****ed-r-1625****2441', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], + [ + 'name' => 'Status', 'in' => 'query', 'schema' => [ - 'description' => 'The fileset ID.'."\n" + 'description' => 'The job status. Valid values:'."\n" ."\n" - .'> This parameter is required for CPFS file systems.'."\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' => true, - 'docRequired' => true, - 'example' => 'fset-1902718ea0ae****', + 'required' => false, + 'example' => 'All', + 'default' => 'All', + 'enum' => ['Running', 'Defragmenting', 'PartialSuccess', 'Success', 'Fail', 'Cancelled', 'All'], + 'title' => '', ], ], ], @@ -13868,169 +14764,99 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Response information'."\n", + '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****', - ], - '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" + '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', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of jobs returned per page.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''], + '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', 'title' => ''], + 'Type' => ['description' => 'The type of the job. Valid values:'."\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" + .'* Restore: a file restoration job'."\n" + .'* Delete: a file deletion job'."\n", 'type' => 'string', 'example' => 'Restore', 'title' => ''], + 'FileId' => ['description' => 'The ID of the file or directory in the job.'."\n", 'type' => 'string', 'example' => '04***08', 'title' => ''], + 'Status' => ['description' => 'The status of the job. Valid values:'."\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" + .'* 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', 'title' => ''], + 'ErrorCode' => ['description' => 'The error code returned.'."\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" + .'A valid value is returned only if you set the Status parameter to Fail or PartialSuccess.'."\n", 'type' => 'string', 'example' => 'InvalidFileId.NotFound', 'title' => ''], + 'Progress' => ['description' => 'The progress of the job.'."\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" + .'Valid values: 1 to 100.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''], + 'CreateTime' => ['description' => 'The time when the job was created.'."\n", 'type' => 'string', 'example' => '2021-05-30T10:08:08Z', 'title' => ''], + 'FileName' => ['description' => 'The name of the file or directory that is associated with the job.'."\n", 'type' => 'string', 'example' => 'test001', 'title' => ''], + 'ErrorMessage' => ['description' => 'The error message.'."\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****', + .'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.', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalCharacters', - 'errorMessage' => 'The parameter contains illegal characters.', - ], - [ - 'errorCode' => 'MissingFileSystemId', - 'errorMessage' => 'FileSystemId is mandatory for this action.', - ], + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidStatus', 'errorMessage' => 'Specified parameter Status is not valid.', 'description' => 'The specified parameter Status is invalid.'], ], - 403 => [ - [ - 'errorCode' => 'OperationDenied.FilesetNotSupported', - 'errorMessage' => 'The operation is not supported.', - ], + 404 => [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidJobId.NotFound', 'errorMessage' => 'The specified JobId(%JobId) does not exist.', 'description' => '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":"","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", + 'changeSet' => [ + ['createdAt' => '2021-06-02T07:10:56.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListRecycleBinJobs'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified filesystem does not exist.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:ListRecycleBinJobs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], ], ], ], - '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', - ], + 'ListRecycledDirectoriesAndFiles' => [ + 'summary' => 'Queries deleted files or directories.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14039,142 +14865,216 @@ 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '55590', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], + 'abilityTreeCode' => '14464', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], + '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-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****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], ], [ - 'name' => 'Filters', + 'name' => 'FileId', 'in' => 'query', - 'style' => 'repeatList', + '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', 'title' => ''], + ], + [ + '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' => '1256****25', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ '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', + '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' => '无'], + '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', 'title' => ''], + 'Type' => ['description' => 'The type of the returned object. Valid values:'."\n" + ."\n" + .'* File'."\n" + .'* Directory'."\n", 'type' => 'string', 'example' => 'File', 'title' => ''], + 'Name' => ['description' => 'The name of the file or directory before it was deleted.'."\n", 'type' => 'string', 'example' => 'test001', 'title' => ''], + 'DeleteTime' => ['description' => 'The time when the file or directory was deleted.'."\n", 'type' => 'string', 'example' => '2021-05-30T10:08:08Z', 'title' => ''], + 'Inode' => ['description' => 'The inode of the file or directory.'."\n", 'type' => 'string', 'example' => '04***08', 'title' => ''], + 'ATime' => ['description' => 'The time when the file or directory was last accessed.'."\n", 'type' => 'string', 'example' => '2019-10-30T10:08:08Z', 'title' => ''], + 'MTime' => ['description' => 'The time when the file or directory was last modified.'."\n", 'type' => 'string', 'example' => '2019-10-30T10:08:08Z', 'title' => ''], + 'CTime' => ['description' => 'The time when the metadata was last modified.'."\n", 'type' => 'string', 'example' => '2019-10-30T10:08:08Z', 'title' => ''], + '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', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], - '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****', - ], + 'title' => '', + 'example' => '', ], - 'required' => false, - 'description' => '', ], - 'required' => false, - 'docRequired' => false, - 'maxItems' => 5, + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidParameter.KMSKeyId.KMSUnauthorized', 'errorMessage' => 'KMS is not authorized.', 'description' => 'KMS is not authorized.'], + ['errorCode' => 'InvalidParameter.KMSKeyId.CMKNotEnabled', 'errorMessage' => 'The CMK needs to be enabled.', 'description' => 'The CMK needs to be enabled.'], + ], + 404 => [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidFileId.NotFound', 'errorMessage' => 'The specified FileId(%FileId) does not exist.', 'description' => 'The specified FileId (%FileId) does not exist.'], + ['errorCode' => 'InvalidParameter.InvalidNextToken', 'errorMessage' => 'The specified NextToken is invaild.', 'description' => ''], + ], + ], + '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":"","errorExample":""}]', + 'title' => 'ListRecycledDirectoriesAndFiles', + 'description' => 'Only General-purpose NAS file systems support this operation.'."\n", + 'changeSet' => [ + ['createdAt' => '2021-06-02T07:10:56.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:ListRecycledDirectoriesAndFiles', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListRecycledDirectoriesAndFiles'], + ], + ], + ], + 'ListTagResources' => [ + 'summary' => 'Queries tags.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'NextToken', + '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 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=', - ], + 'schema' => ['description' => 'The type of the resource. Valid values:'."\n" + ."\n" + .'* filesystem'."\n" + .'* accesspoint'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'filesystem', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'NextToken', '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', - ], + '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' => '无', 'title' => ''], ], [ - 'name' => 'OrderByField', + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The condition by which the results are sorted. Valid values:'."\n" + 'description' => 'The ID of the resource.'."\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', + .'The ID of the destination resource. Valid values of N: 1 to 50.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The resource ID.'."\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" + .'* Access Point: An access point created under a General-purpose NAS, associated with the specified file system ID, such as ‘31a8e4\\*\\*\\*\\*/ap-896m22\\*\\*\\*\\*’.'."\n", 'type' => 'string', 'required' => false, 'example' => '03e08484f0', 'title' => ''], 'required' => false, - 'example' => 'FileCountLimit', - 'enum' => [ - 'SpaceUsage', - 'FileCountUsage', - 'SizeLimit', - 'FileCountLimit', - ], + 'example' => '03e08484f0', + 'maxItems' => 51, + 'title' => '', ], ], [ - 'name' => 'SortOrder', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', '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', + 'description' => 'The tags of the reserved instance. 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 key of a tag.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'* The tag key cannot be null or an empty string.'."\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' => 'nastest', 'title' => ''], + 'Value' => ['description' => 'The value of a tag.'."\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', 'required' => false, 'example' => 'filetest', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', ], + 'required' => false, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], ], @@ -14183,211 +15083,87 @@ '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' => [ + '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' => ' 无', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', 'title' => ''], + 'TagResources' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Entrie' => [ - 'description' => 'The fileset information.'."\n", + 'TagResource' => [ + 'description' => 'The list of resources.'."\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****', - ], + 'ResourceType' => ['description' => 'The resource type.'."\n", 'type' => 'string', 'example' => 'filesystem', 'title' => ''], + 'TagValue' => ['description' => 'The tag value.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], + 'ResourceId' => ['description' => 'The resource ID.'."\n", 'type' => 'string', 'example' => 'i-2zebd226fxed6h4iadhe', 'title' => ''], + 'TagKey' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'example' => 'test1', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'MissingParameter.ResourceIdOrTag', 'errorMessage' => 'Either ResourceId or Tag must be specified.', 'description' => 'Either ResourceId or Tag must be specified.'], + ['errorCode' => 'InvalidNextToken', 'errorMessage' => 'The NextToken is invalid.', 'description' => 'The NextToken is invalid.'], + ['errorCode' => 'NumberExceed.ResourceIds', 'errorMessage' => 'The maximum number of ResourceIds is exceeded. The maximum is 50.', 'description' => 'The maximum number of resource ID is exceeded. The maximum is 50.'], + ['errorCode' => 'MissingParameter.ResourceIds', 'errorMessage' => 'You must specify ResourceIds.', 'description' => 'You must specify ResourceId.'], + ['errorCode' => 'Duplicate.ResourceId', 'errorMessage' => 'The request contains duplicated ResourceId.', 'description' => 'ResourceId cannot be duplicated.'], + ['errorCode' => 'NumberExceed.Tags', 'errorMessage' => 'The maximum number of Tags is exceeded. The maximum is 20.', 'description' => 'The maximum number of Tags is exceeded. The maximum is 20.'], + ['errorCode' => 'Duplicate.TagKey', 'errorMessage' => 'The Tag.N.Key contains a duplicated key.', 'description' => 'The specified TagKey is duplicated.'], + ['errorCode' => 'InvalidResourceId.NotFound', 'errorMessage' => 'The ResourceId does not exist.', 'description' => 'The specified ResourceId does not exist.'], + ['errorCode' => 'InvalidParameter.TagKey', 'errorMessage' => 'The specified Tag.n.Key is invalid.', 'description' => 'The specified TagKey is invalid.'], + ['errorCode' => 'InvalidParameter.TagValue', 'errorMessage' => 'The specified Tag.n.Value is invalid.', 'description' => 'The specified TagValue is invalid.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'ListTagResources', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListTagResources'], ], + ], + 'ramActions' => [ [ - [ - '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.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:ListTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], ], - '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", + 'translator' => 'manual', ], - 'SetFilesetQuota' => [ - 'summary' => 'Sets the quota for a fileset.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'ModifyAccessGroup' => [ + 'summary' => 'Modifies a permission group.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14399,99 +15175,49 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '238301', - 'abilityTreeNodes' => [ - 'FEATUREnasXEQXVN', - ], - 'autoTest' => false, - 'notSupportAutoTestReason' => '特殊用户支持的API', + 'abilityTreeCode' => '13973', + 'abilityTreeNodes' => ['FEATUREnas2SBOJD'], + 'autoTest' => true, 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'AccessGroupName', '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****', - ], + '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', 'title' => ''], ], [ - 'name' => 'FsetId', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The fileset ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'fset-1902718ea0ae****', - ], + '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', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'FileSystemType', '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" + 'description' => 'The type of the file system.'."\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", + .'* standard (default): General-purpose NAS file system'."\n" + .'* extreme: Extreme NAS file system'."\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', + 'default' => 'standard', + 'enum' => ['standard', 'extreme'], + 'example' => 'standard', + 'title' => '', ], ], ], @@ -14500,95 +15226,48 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'ED2AE737-9D50-4CA4-B0DA-31BD610C****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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.', - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"ED2AE737-9D50-4CA4-B0DA-31BD610C****\\"\\n}","type":"json"}]', + 'title' => 'ModifyAccessGroup', + 'description' => '默认权限组(DEFAULT_VPC_GROUP_NAME)不支持修改。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:22:55.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyAccessGroup'], ], + ], + 'ramActions' => [ [ - [ - '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.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyAccessGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], + ], ], ], ], - '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", + 'translator' => 'manual', ], - 'CancelFilesetQuota' => [ - 'summary' => 'Cancels the quota set for a fileset.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'ModifyAccessPoint' => [ + 'summary' => 'Modifies access point information.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14598,428 +15277,317 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', - 'riskType' => 'none', + 'riskType' => 'high', 'chargeType' => 'free', - 'abilityTreeCode' => '238649', - 'abilityTreeNodes' => [ - 'FEATUREnasXEQXVN', - ], - 'autoTest' => false, - 'notSupportAutoTestReason' => '为特殊用户使用API', - 'tenantRelevance' => 'publicInformation', + 'abilityTreeCode' => '189621', + 'abilityTreeNodes' => ['FEATUREnas5IJRRZ'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], '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****', - ], + 'schema' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], ], [ - 'name' => 'FsetId', + 'name' => 'AccessPointId', 'in' => 'query', - 'schema' => [ - 'description' => 'The fileset ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'fset-1902718ea0ae****'."\n", - ], + 'schema' => ['description' => 'The access point ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-ie15yd****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'AccessPointName', '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', - ], + 'schema' => ['description' => 'The access point name.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'AccessGroup', '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****', - ], + 'schema' => ['description' => 'The permission group name.'."\n" + ."\n" + .'This parameter is required when the file system is a General-purpose NAS file system.'."\n" + ."\n" + .'Default permission group: DEFAULT_VPC_GROUP_NAME (the default VPC permission group).'."\n" + .'> Agentic file systems do not support this parameter.', 'type' => 'string', 'required' => false, 'example' => 'DEFAULT_VPC_GROUP_NAME', 'title' => ''], + ], + [ + 'name' => 'EnabledRam', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable the RAM policy. Valid values:'."\n" + ."\n" + .'- true: Enabled.'."\n" + .'- false (default): Not enabled.'."\n" + ."\n" + .'> After you enable the access point RAM policy, all Resource Access Management (RAM) users are denied access to mount and access data through the access point by default. You must grant the corresponding access permissions through authorization and mount and access data through the access point. After you disable the RAM policy, the access point allows anonymity mounting.'."\n" + ."\n" + .'> Agentic file systems do not support this parameter.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****'."\n", - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'required' => true, 'example' => '70EACC9C-D07A-4A34-ADA4-77506C42****'."\n"], ], - 'description' => '', + 'example' => '', ], ], ], '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.', - ], + 404 => [ + ['errorCode' => 'InvalidAccessPointId.NotFound', 'errorMessage' => 'The access point id does not exist.', 'description' => 'The specified APid does not exist.'], + ['errorCode' => 'InvalidAccessGroup.NotFound', 'errorMessage' => 'The specified AccessGroup does not exist.', 'description' => 'The permission group that you specified does not exist or has been deleted.'], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], ], - 429 => [ - [ - 'errorCode' => 'Throttling.Api', - 'errorMessage' => 'Request was denied due to api flow control.', + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"70EACC9C-D07A-4A34-ADA4-77506C42****\\\\n\\"\\n}","type":"json"}]', + 'title' => 'Modify access point information', + 'description' => 'Only General-purpose NAS NFS file systems support this feature.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyAccessPoint'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyAccessPoint', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - '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', - ], + 'ModifyAccessRule' => [ + 'summary' => 'Modifies a rule in a permission group.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', - 'abilityTreeCode' => '49006', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '13974', + 'abilityTreeNodes' => ['FEATUREnas2SBOJD'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'AccessGroupName', '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****', - ], + 'schema' => ['description' => 'The name of the permission group.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-test', 'title' => ''], ], [ - 'name' => 'FsetId', + 'name' => 'AccessRuleId', '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****', - ], + 'schema' => ['description' => 'The rule ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1', 'title' => ''], ], [ - 'name' => 'SourceStorage', + 'name' => 'SourceCidrIp', '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, - ], + '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.**.**', 'title' => ''], ], [ - 'name' => 'SourceSecurityType', + 'name' => 'RWAccessType', '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" + 'description' => 'The access permissions of the authorized object on the file system.'."\n" + ."\n" + .'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", + .'* RDWR (default): the read and write permissions.'."\n" + .'* RDONLY: the read-only permission.'."\n", 'type' => 'string', 'required' => false, - 'example' => 'SSL', + 'default' => 'RDWR', + 'enum' => ['RDWR', 'RDONLY'], + 'example' => 'RDWR', + 'title' => '', ], ], [ - 'name' => 'Throughput', + 'name' => 'UserAccessType', 'in' => 'query', 'schema' => [ - 'description' => 'The maximum data flow throughput. Unit: MB/s. Valid values:'."\n" + 'description' => 'The access permissions for different types of users in the authorized object.'."\n" ."\n" - .'* 600'."\n" - .'* 1200'."\n" - .'* 1500'."\n" + .'Valid values:'."\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', + .'* 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, - 'docRequired' => false, - 'example' => '600', - 'enum' => [ - '600', - '1200', - '1500', - '2000', - ], + 'default' => 'no_squash', + 'enum' => ['no_squash', 'root_squash', 'all_squash'], + 'example' => 'all_squash', + 'title' => '', ], ], [ - 'name' => 'Description', + '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', 'default' => '1', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'FileSystemType', 'in' => 'query', - 'allowEmptyValue' => true, 'schema' => [ - 'description' => 'The description of the dataflow.'."\n" + 'description' => 'The type of the file system.'."\n" ."\n" - .'Limits:'."\n" + .'Valid values:'."\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", + .'* standard: General-purpose Apsara File Storage NAS (NAS) file system'."\n" + .'* extreme: Extreme NAS file system.'."\n", 'type' => 'string', 'required' => false, - 'example' => 'Bucket01 DataFlow', + 'default' => 'standard', + 'enum' => ['standard', 'extreme'], + 'example' => 'standard', + 'title' => '', ], ], [ - 'name' => 'AutoRefreshs', + 'name' => 'Ipv6SourceCidrIp', 'in' => 'query', - 'allowEmptyValue' => false, - 'style' => 'repeatList', + '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:****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ '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' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '6299428C-3861-435D-AE54-9B330A00****', 'title' => ''], ], - 'required' => false, - 'maxItems' => 10, + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParam.Ipv6SourceCidrIp', 'errorMessage' => 'IPv6 address verification failed.', 'description' => 'IPv6 address verification failed.'], + ['errorCode' => 'InvalidParam.SourceCidrIp', 'errorMessage' => 'IPv4 address verification failed.', 'description' => 'IPv4 address verification failed.'], + ['errorCode' => 'InvalidParam.IPv4AndIPv6MutuallyExclusive', 'errorMessage' => 'You cannot configure IPv4 and IPv6 at the same time.', 'description' => 'You cannot configure IPv4 and IPv6 at the same time.'], + ['errorCode' => 'InvalidAccessGroup.NotsupportedIPv6', 'errorMessage' => 'The access group does not support IPv6.', 'description' => 'The access group does not support IPv6.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6299428C-3861-435D-AE54-9B330A00****\\"\\n}","type":"json"}]', + 'title' => 'ModifyAccessRule', + 'description' => '默认权限组(DEFAULT_VPC_GROUP_NAME)中的规则不支持修改。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-02-26T07:03:21.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAccessRule'], + ], + ], + 'ramActions' => [ [ - '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', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyAccessRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], ], ], ], + ], + 'translator' => 'manual', + ], + 'ModifyAgenticSpace' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'AutoRefreshInterval', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '55631', + 'abilityTreeNodes' => ['FEATUREnasXEQXVN'], + ], + 'parameters' => [ + [ + 'name' => 'FileSystemId', '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', - ], + 'schema' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '31a8e4****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'AgenticSpaceId', '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', - ], + 'schema' => ['description' => 'AgenticSpace Id。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'agentic-229oypxjgpau2****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Description', '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, - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The description of the AgenticSpace.', 'type' => 'string', 'required' => false, 'example' => 'Agentic Space Description', 'title' => ''], ], [ - 'name' => 'SourceStoragePath', + 'name' => 'DryRun', '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, - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run for this request.'."\n" + ."\n" + .'A dry run checks parameter validity and resource availability without actually modifying the instance or incurring charges.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: Sends a check request without modifying the instance. The check items include whether required parameters are specified, request format, business limits, and NAS resource availability. If the check fails, the corresponding error is returned. If the check passes, HTTP status code 200 is returned, but FileSystemId is empty.'."\n" + .'- false (default): Sends a normal request and directly modifies the instance after the check passes.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'FileSystemPath', + 'name' => 'ClientToken', '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, - ], + 'schema' => ['description' => 'Ensures the idempotence of the request. Generate a unique parameter value from your client to ensure that the value is unique across different requests.'."\n" + ."\n" + .'ClientToken supports 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 RequestId of the API request as the ClientToken. The RequestId may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], ], ], 'responses' => [ @@ -15027,287 +15595,51 @@ '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****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => 'The FileSystemId parameter is not specified.'], + ['errorCode' => 'MissingFsetId', 'errorMessage' => 'FsetId is mandatory for this action.', 'description' => 'The Fileset ID parameter is not specified.'], + ['errorCode' => 'InvalidFilesetId.NotFound', 'errorMessage' => 'Invalid FilesetId.', 'description' => 'Fileset does not exist'], ], 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' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => 'The conditions for this operation are not met.'], + ['errorCode' => 'OperationDenied.FilesetNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => 'The file system does not support Fileset.'], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidFsetId.NotFound', 'errorMessage' => 'The specified Fileset ID does not exist.', 'description' => 'The specified fileset 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', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => 'Modify an agentic space', + 'summary' => 'Modifies an Agentic space.', + 'description' => 'Applicable to agentic file systems.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\"\\n}","type":"json"}]', + 'gatewayOptions' => [ + 'gatewayProtocols' => [], ], + ], + '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' => [], @@ -15316,75 +15648,62 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'high', + 'operationType' => 'update', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '49024', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], + 'abilityTreeCode' => '13975', + 'abilityTreeNodes' => ['FEATUREnas5QOAQE'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'AutoSnapshotPolicyId', '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", - ], + '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****', 'title' => ''], ], [ - 'name' => 'DataFlowId', + 'name' => 'AutoSnapshotPolicyName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the dataflow.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'df-194433a5be31****', - ], + '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', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'RepeatWeekdays', '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', - ], + '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', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RetentionDays', '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, - ], + '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', 'title' => ''], + ], + [ + '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', 'title' => ''], ], ], 'responses' => [ @@ -15392,79 +15711,49 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', - ], + '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****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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.', - ], + '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' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:22:54.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyAutoSnapshotPolicy'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], - [ - 'errorCode' => 'InvalidDataFlow.NotFound', - 'errorMessage' => 'The specified data flow does not exist.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyAutoSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - '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', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -15477,9 +15766,7 @@ 'riskType' => 'none', 'chargeType' => 'paid', 'abilityTreeCode' => '49026', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], + 'abilityTreeNodes' => ['FEATUREnasPWYFYN'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], @@ -15487,102 +15774,70 @@ [ '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****', - ], + 'schema' => ['description' => 'The file system ID.'."\n" + ."\n" + .'- CPFS: The ID must start with `cpfs-`, such as cpfs-125487\\*\\*\\*\\*.'."\n" + ."\n" + .'- CPFS for Lingjun: The ID must start with `bmcpfs-`, such as bmcpfs-0015\\*\\*\\*\\*.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cpfs-099394bd928c****', 'title' => ''], ], [ 'name' => 'DataFlowId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the dataflow.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'df-194433a5be31****', - ], + 'schema' => ['description' => 'The data flow ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'df-194433a5be31****', 'title' => ''], ], [ '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', - ], + 'schema' => ['description' => 'The description of the data flow. '."\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 digits, colons (:), underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => false, 'example' => 'Bucket01数据流动', 'title' => ''], ], [ 'name' => 'Throughput', 'in' => 'query', 'allowEmptyValue' => true, 'schema' => [ - 'description' => 'The maximum data flow throughput. Unit: MB/s. Valid values:'."\n" + 'description' => 'The maximum transmission bandwidth of the data flow. Unit: MB/s.'."\n" + .'Valid values: '."\n" ."\n" - .'* 600'."\n" - .'* 1200'."\n" - .'* 1500'."\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", + .'> The transmission bandwidth of the data flow must be less than the I/O bandwidth of the file system. This parameter is required when the file system type is CPFS.', 'type' => 'integer', 'format' => 'int64', + 'enum' => ['600', '1200', '1500', '2000'], 'required' => false, 'example' => '600', - 'enum' => [ - '600', - '1200', - '1500', - '1800', - ], + 'title' => '', ], ], [ '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', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run for this request.'."\n" + ."\n" + .'A dry run checks parameter validity and resource availability without actually creating the instance or incurring charges.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: Sends a check request without creating the instance. The check items include whether required parameters are specified, the request format, business limitations, and NAS inventory. If the check fails, the corresponding error is returned. If the check passes, HTTP status code 200 is returned, but FileSystemId is empty.'."\n" + .'- false (default): Sends a normal request. After the check passes, the instance is directly created.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], ], [ '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, - ], + 'schema' => ['description' => 'Ensures the idempotency of the request. Generate a parameter value from your client to ensure that the value is unique across different requests.'."\n" + ."\n" + .'ClientToken supports only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotency](~~25693~~).'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the RequestId of the API request as the ClientToken. The RequestId may differ for each API request.', 'type' => 'string', 'maxLength' => 64, 'minLength' => 1, 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], ], ], 'responses' => [ @@ -15590,117 +15845,89 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => 'The FileSystemId parameter is not specified.'], + ['errorCode' => 'MissingDataFlowId', 'errorMessage' => 'DataFlowId is mandatory for this action.', 'description' => 'The DataFlowId parameter is not specified.'], ], 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' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => 'The conditions for this operation are not met.'], + ['errorCode' => 'OperationDenied.NoStock', 'errorMessage' => 'The operation is denied due to no stock.', 'description' => ''], + ['errorCode' => 'OperationDenied.ConflictOperation', 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', 'description' => 'The dataflow cannot be created because it conflicts with the current file system operation.'], + ['errorCode' => 'OperationDenied.InvalidState', 'errorMessage' => 'The operation is not permitted when the status is processing.', 'description' => 'The operation is not permitted when the status is processing.'], + ['errorCode' => 'OperationDenied.DataFlowNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => 'The file system does not support dataflow.'], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidDataFlow.NotFound', 'errorMessage' => 'The specified data flow does not exist.', 'description' => 'The specified dataflow does not exist.'], + ['errorCode' => 'InvalidThroughput.OutOfBounds', 'errorMessage' => 'Throughput is out of bounds.', 'description' => 'The specified Throughput is not within the valid range.'], + ['errorCode' => 'InvalidDescription.InvalidFormat', 'errorMessage' => 'Description format is invalid.', 'description' => 'The format of the specified description is invalid.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Modify a data flow', + 'summary' => 'Modifies the attributes of a data flow.', + 'description' => '- CPFS 2.2.0 and later and CPFS for Lingjun 2.4.0 and later support data flows.'."\n" + .'- You can modify the properties of a data flow only when the data flow is in the `Running (Normal)` state.'."\n" + .'- Modifying a data flow typically takes 2 to 5 minutes. You can call [DescribeDataFlows](~~2402270~~) to query the status of the data flow modification.'."\n" + .'- CPFS data flow specifications:'."\n" + .' - Data flow bandwidth (Throughput) supports three specifications: 600 MB/s, 1,200 MB/s, and 1,500 MB/s. The data flow bandwidth refers to the maximum transmission bandwidth that can be achieved when the data flow imports or exports data.'."\n" + .' - Inventory check: When DryRun is set to true, you can verify whether the resources required to modify the data flow with the specified specifications are sufficient.'."\n" + .'- CPFS billing'."\n" + ."\n" + .' Modifying the data flow bandwidth (Throughput) involves data flow bandwidth billing. Familiarize yourself with the billable methods of CPFS in advance. For more details, see [CPFS billing](~~111858~~).'."\n" + ."\n" + .' Settings for the data stream property can affect billing.', + 'changeSet' => [ + ['createdAt' => '2024-06-03T06:50:00.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2021-10-28T08:34:23.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyDataFlow'], ], + ], + 'ramActions' => [ [ - [ - '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.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyDataFlow', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], ], - '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", + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","type":"json"}]', ], - 'DescribeDataFlows' => [ - 'summary' => 'Queries the dataflows of a CPFS file system.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyDataFlowAutoRefresh' => [ + 'summary' => 'Modifies an AutoRefresh configuration of a dataflow.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '49017', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], + 'abilityTreeCode' => '59400', + 'abilityTreeNodes' => ['FEATUREnasPWYFYN'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], @@ -15708,101 +15935,56 @@ [ '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****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cpfs-099394bd928c****', 'title' => ''], ], [ - 'name' => 'Filters', + 'name' => 'DataFlowId', '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, - ], + 'schema' => ['description' => 'The ID of the dataflow.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'df-194433a5be31****', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'AutoRefreshPolicy', '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", + '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' => 'TGlzdFJlc291cmNlU****mVzJjE1MTI2NjY4NzY5MTAzOTEmMiZORnI4NDhVeEtrUT0=', + 'enum' => ['None', 'ImportChanged'], + 'example' => 'None', + 'title' => '', ], ], [ - 'name' => 'MaxResults', + 'name' => 'AutoRefreshInterval', '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', - ], + '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', 'title' => ''], + ], + [ + '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, 'default' => 'false', 'example' => 'false', 'title' => ''], + ], + [ + '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****', 'title' => ''], ], ], 'responses' => [ @@ -15810,299 +15992,68 @@ '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' => '', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingDataFlowId', 'errorMessage' => 'DataFlowId is mandatory for this action.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'OperationDenied.DataFlowNotSupported', - 'errorMessage' => 'The operation is not supported.', - ], + ['errorCode' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => ''], + ['errorCode' => 'OperationDenied.ConflictOperation', 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', 'description' => ''], + ['errorCode' => 'OperationDenied.DataFlowNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidDataFlow.NotFound', 'errorMessage' => 'The specified data flow does not exist.', 'description' => ''], + ['errorCode' => 'InvalidRefreshPolicy.InvalidParameter', 'errorMessage' => 'Refresh policy is invalid.', 'description' => ''], + ['errorCode' => 'InvalidRefreshInterval.OutOfBounds', 'errorMessage' => 'Refresh interval is out of bounds.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","type":"json"}]', + 'title' => 'ModifyDataFlowAutoRefresh', + 'description' => '- 该接口仅适用于CPFS文件系统。'."\n" + .'- 仅CPFS 2.2.0及以上版本支持数据流动。您可以在控制台文件系统详情页面查看版本信息。'."\n" + .'- 仅支持修改`Running(正常`)、`Stopped(停止)`状态数据流动的自动更新配置。'."\n" + ."\n" + .'- 修改自动更新配置一般耗时2~5分钟,您可以通过[DescribeDataFlows](~~2402270~~)查询修改自动更新任务的状态。', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:22:54.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-11-23T06:46:17.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-10-28T08:34:23.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyDataFlowAutoRefresh'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyDataFlowAutoRefresh', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], - '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", + 'translator' => 'manual', ], - 'StopDataFlow' => [ - 'summary' => 'Disables a dataflow.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyFileSystem' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -16114,10 +16065,8 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '49021', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], + 'abilityTreeCode' => '13976', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], @@ -16125,57 +16074,48 @@ [ '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", - ], + 'schema' => ['description' => 'The ID of the file system.'."\n" + ."\n" + .'- General-purpose NAS: For example, `31a8e4****`.'."\n" + ."\n" + .'- Extreme NAS: The ID must start with `extreme-`. For example, `extreme-0015****`.'."\n" + ."\n" + .'- CPFS: The ID must start with `cpfs-`. For example, `cpfs-125487****`.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'Description', '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', - ], + 'schema' => ['description' => 'The description of the file system.'."\n" + ."\n" + .'Limits:'."\n" + ."\n" + .'- The description must be 2 to 128 characters.'."\n" + ."\n" + .'- It must start with an uppercase or lowercase letter or a Chinese character, and cannot start with `http://` or `https://`.'."\n" + ."\n" + .'- It can contain digits, colons (:), underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => false, 'example' => 'NAS-test-1', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Options', 'in' => 'query', + 'style' => 'json', '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', + 'description' => 'Additional options for the file system.', + 'type' => 'object', + 'properties' => [ + 'EnableOplock' => ['description' => 'Specifies whether to enable OpLock. Valid values:'."\n" + ."\n" + .'- true: Enables OpLock.'."\n" + ."\n" + .'- false: Disables OpLock.'."\n" + ."\n" + .'> This feature is available only for file systems that use the SMB protocol.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + 'EnableABE' => ['type' => 'boolean', 'description' => '', 'title' => '', 'example' => ''], + 'VscAccessPointAccessOnly' => ['type' => 'boolean', 'description' => '', 'title' => '', 'example' => ''], + ], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-42665544****', - 'maxLength' => 64, - 'minLength' => 1, + 'title' => '', + 'example' => '', ], ], ], @@ -16184,82 +16124,47 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5BC5CB97-9F28-42FE-84A4-0CD0DF42****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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.', - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ModifyFileSystem', + 'summary' => 'Modifies the description of a file system.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-07-08T02:24:35.000Z', 'description' => 'Request parameters changed, Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyFileSystem'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], - [ - 'errorCode' => 'InvalidDataFlow.NotFound', - 'errorMessage' => 'The specified data flow does not exist.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyFileSystem', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], ], - '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", + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5BC5CB97-9F28-42FE-84A4-0CD0DF42****\\"\\n}","type":"json"}]', ], - 'StartDataFlow' => [ - 'summary' => 'Enables a dataflow.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyFileset' => [ + 'summary' => 'Modifies a fileset.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -16271,69 +16176,60 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '49022', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeCode' => '55631', + 'abilityTreeNodes' => ['FEATUREnasPWYFYN'], ], 'parameters' => [ [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cpfs-099394bd928c****', - ], + '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****', 'title' => ''], ], [ - 'name' => 'DataFlowId', + 'name' => 'FsetId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the dataflow.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'df-194433a5be31****', - ], + 'schema' => ['description' => 'The fileset ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'fset-1902718ea0ae****', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The fileset description.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], [ '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', - ], + '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, 'default' => 'false', 'example' => 'false', 'title' => ''], + ], + [ + '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', 'title' => ''], ], [ '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, - ], + '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****', 'title' => ''], ], ], 'responses' => [ @@ -16341,382 +16237,224 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingFsetId', 'errorMessage' => 'FsetId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidFilesetId.NotFound', 'errorMessage' => 'Invalid FilesetId.', 'description' => 'Fileset does not exist'], ], 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' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => ''], + ['errorCode' => 'OperationDenied.FilesetNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], ], [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], - [ - 'errorCode' => 'InvalidDataFlow.NotFound', - 'errorMessage' => 'The specified data flow does not exist.', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidFsetId.NotFound', 'errorMessage' => 'The specified Fileset ID does not exist.', 'description' => ''], ], ], - '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', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\"\\n}","type":"json"}]', + 'title' => 'ModifyFileset', + 'description' => '仅支持CPFS 2.2.0和CPFS智算版2.7.0及以上版本修改Fileset信息。', + 'changeSet' => [ + ['createdAt' => '2024-10-24T08:25:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-05-31T02:47:37.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-08-22T02:34:43.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-10-28T08:36:25.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyFileset'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyFileset', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Fileset', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'ModifyLDAPConfig' => [ + 'summary' => 'Used to modify LDAP configuration.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, + 'deprecated' => true, 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'high', - 'chargeType' => 'paid', - 'abilityTreeCode' => '49027', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], + '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" - ."\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****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'example' => '109c042666', 'title' => ''], ], [ - 'name' => 'DataFlowId', + 'name' => 'URI', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the dataflow.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'df-194433a5be31****', - ], + 'schema' => ['description' => 'The LDAP service address.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ldap://ldap.example.example', 'title' => ''], ], [ - 'name' => 'SrcTaskId', + 'name' => 'BindDN', '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****', - ], + 'schema' => ['description' => 'The LDAP entry.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'cn=alibaba,dc=com', 'title' => ''], ], [ - 'name' => 'TaskAction', + 'name' => 'SearchBase', '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', - ], - ], + 'schema' => ['description' => 'The LDAP search base.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'dc=example', 'title' => ''], ], - [ - 'name' => 'DataType', - 'in' => 'query', - 'allowEmptyValue' => true, + ], + 'responses' => [ + 200 => [ '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', - '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '5B4511A7-C99E-4071-AA8C-32E2529DA963', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - [ - '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, - ], + ], + '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' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyLDAPConfig'], ], + ], + 'ramActions' => [ [ - '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, + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyLDAPConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], ], ], + ], + ], + 'ModifyLifecyclePolicy' => [ + 'summary' => 'Modifies a lifecycle policy.', + 'methods' => ['post', 'get', 'put'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - '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', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREnasZ6WBFV'], + ], + 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'FileSystemId', '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****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '31a8e4****', 'title' => ''], ], [ - 'name' => 'ConflictPolicy', + 'name' => 'LifecyclePolicyName', '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', - ], - ], + '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', 'title' => ''], ], [ - 'name' => 'DstDirectory', + 'name' => 'Path', '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/', - ], + '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', 'title' => ''], ], [ - 'name' => 'CreateDirIfNotExist', + 'name' => 'LifecycleRuleName', '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" + 'description' => 'The management rule that is associated with the lifecycle policy.'."\n" ."\n" - .'> '."\n" + .'Valid values:'."\n" ."\n" - .'* This parameter is required if the TaskAction parameter is set to Import.'."\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" - .'* Only CPFS for Lingjun V2.6.0 and later support this parameter.'."\n", - 'type' => 'boolean', + .'> 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' => 'false', + 'enum' => ['DEFAULT_ATIME_14', 'DEFAULT_ATIME_30', 'DEFAULT_ATIME_60', 'DEFAULT_ATIME_90', 'DEFAULT_ATIME_180'], + 'example' => 'DEFAULT_ATIME_14', + 'title' => '', ], ], [ - 'name' => 'Includes', + 'name' => 'StorageType', '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" + 'description' => 'The storage class.'."\n" ."\n" - .'* Only CPFS for Lingjun supports this parameter.'."\n", + .'* InfrequentAccess: the Infrequent Access (IA) storage class.'."\n" + .'* Archive: the Archive storage class.'."\n", 'type' => 'string', 'required' => false, - 'example' => '["/test/","/test1/"]', + 'default' => 'InfrequentAccess', + 'enum' => ['InfrequentAccess', 'Archive', 'Capacity', 'Performance'], + 'example' => 'InfrequentAccess', + 'title' => '', ], ], [ - 'name' => 'TransferFileListPath', + 'name' => 'LifecyclePolicyId', '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/', - ], + 'schema' => ['description' => 'The ID of the lifecycle policy.'."\n", 'type' => 'string', 'example' => 'lc-xxx', 'title' => '', 'required' => false], ], ], 'responses' => [ @@ -16724,121 +16462,62 @@ '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****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the request was successful.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true'."\n" + .'* false'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'InvalidLifecyclePolicy.NotFound', 'errorMessage' => 'The specified LifecyclePolicy does not exist.', 'description' => 'The specified LifecyclePolicy does not exist.'], ], - 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.', - ], + 404 => [ + ['errorCode' => 'InvalidLifecycleRule.NotFound', 'errorMessage' => 'The specified LifecycleRule does not exist.', 'description' => 'The specified LifecycleRule does not exist.'], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], ], - [ - [ - '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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BC7C825C-5F65-4B56-BEF6-98C56C7C****\\",\\n \\"Success\\": true\\n}","type":"json"}]', + 'title' => 'ModifyLifecyclePolicy', + 'description' => '仅通用型NAS文件系统支持该功能。', + 'changeSet' => [ + ['createdAt' => '2025-05-08T06:05:41.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-03-19T01:52:49.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-03-25T10:51:46.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-04-08T08:36:16.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyLifecyclePolicy'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyLifecyclePolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'LifecyclePolicy', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], ], - '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", + 'translator' => 'manual', ], - 'CreateDataFlowSubTask' => [ - 'summary' => 'Creates a data streaming subtask.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyMountTarget' => [ + 'summary' => 'Modifies the properties of a mount target.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -16847,139 +16526,66 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', + 'operationType' => 'update', + 'riskType' => 'high', 'chargeType' => 'free', - 'abilityTreeCode' => '225698', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], - 'autoTest' => false, - 'notSupportAutoTestReason' => '特殊用户使用', - 'tenantRelevance' => 'publicInformation', + 'abilityTreeCode' => '13979', + 'abilityTreeNodes' => ['FEATUREnasOIBEFL'], + '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****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n" + ."\n" + .'- For a General-purpose NAS file system, the ID is similar to `31a8e4****`.'."\n" + ."\n" + .'- For an Extreme NAS file system, the ID must start with `extreme-`, for example, `extreme-0015****`.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], ], [ - 'name' => 'DataFlowId', + 'name' => 'MountTargetDomain', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the data flow.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'df-194433a5be31****', - ], + 'schema' => ['description' => 'The domain name of the IPv4 mount target.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '1ca404a666-w****.cn-hangzhou.nas.aliyuncs.com', 'title' => ''], ], [ - 'name' => 'DataFlowTaskId', + 'name' => 'AccessGroupName', '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", - ], + 'schema' => ['description' => 'The name of the access group that is associated with the mount target.', 'type' => 'string', 'required' => false, 'example' => 'classic-test', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'Status', '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" + 'description' => 'The status of the mount target.'."\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" + .'- Active: The mount target is available.'."\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" + .'- Inactive: The mount target is unavailable.'."\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", + .'> You can change the status of a mount target only if the mount target is attached to a General-purpose NAS file system.', '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', + 'enum' => ['Active', 'Inactive'], + 'example' => 'Inactive', + 'title' => '', ], ], [ - 'name' => 'DstFilePath', + 'name' => 'DualStackMountTargetDomain', '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', - ], + 'schema' => ['description' => 'The domain name of the dual-stack mount target.'."\n" + ."\n" + .'> The IPv6 feature is available only for Extreme NAS file systems in the Chinese mainland.', 'type' => 'string', 'required' => false, 'example' => '174494b666-x****.dualstack.cn-hangzhou.nas.aliyuncs.com', 'title' => ''], ], [ - 'name' => 'Condition', + 'name' => 'AccessPointAccessOnly', '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, - ], + 'allowEmptyValue' => true, + 'schema' => ['type' => 'boolean', 'title' => '', 'description' => '', 'example' => ''], ], ], 'responses' => [ @@ -16987,113 +16593,51 @@ '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****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'FF387D95-34C4-4879-B65A-99D1FA1B****', 'title' => ''], ], - 'description' => '', + 'description' => 'The response object.', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'InvalidFileSystem.NotsupportedIPv6', 'errorMessage' => 'The file system does not support IPv6.', 'description' => 'The file system does not support IPv6.'], + ['errorCode' => 'InvalidParam.MountTargetDomain', 'errorMessage' => 'The specified mount target domain does not exist.', 'description' => 'The specified mount target domain does not exist.'], + ['errorCode' => 'InvalidParam.DualStackMountTargetDomain', 'errorMessage' => 'The specified dual stack mount target domain does not exist.', 'description' => 'The specified dual stack mount point does not exist.'], ], - 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.', - ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ModifyMountTarget', + 'description' => 'This operation applies only to mount targets on General-purpose NAS and Extreme NAS file systems.', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyMountTarget'], ], + ], + 'ramActions' => [ [ - [ - '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.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyMountTarget', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], ], - '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", + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"FF387D95-34C4-4879-B65A-99D1FA1B****\\"\\n}","type":"json"}]', ], - 'CancelDataFlowTask' => [ - 'summary' => 'Cancels a batch or streaming task that is in the Pending or Execute state.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + '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' => [], @@ -17102,170 +16646,128 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'high', + 'operationType' => 'update', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '49029', - 'abilityTreeNodes' => [ - 'FEATUREnasQ7YV89', - 'FEATUREnas0GUIX5', - ], + 'abilityTreeCode' => '124957', + 'abilityTreeNodes' => ['FEATUREnasQ7YV89', 'FEATUREnas0GUIX5'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'ProtocolServiceId', '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****', - ], + 'schema' => ['description' => 'The ID of the protocol service.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ptc-197ed6a00f2b****', 'title' => ''], ], [ - 'name' => 'DataFlowId', + 'name' => 'ExportId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the dataflow.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'df-194433a5be31****', - ], + 'schema' => ['description' => 'The ID of the export directory for the protocol service.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'exp-19abf5beab8d****', 'title' => ''], ], [ - 'name' => 'TaskId', + 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the dataflow task.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'task-38aa8e890f45****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'deprecated' => false, 'required' => true, 'docRequired' => true, 'example' => 'cpfs-099394bd928c****', 'title' => ''], + ], + [ + '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' => '此导出目录的描述信息', 'title' => ''], ], [ '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', - ], + '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, 'default' => 'false', 'example' => 'true', 'title' => ''], ], [ '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****', - ], + '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, 'maxLength' => 64, 'minLength' => 1, 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], ], - 'description' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingExportId', 'errorMessage' => 'ExportId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingAccessGroupName', 'errorMessage' => 'AccessGroupName is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingProtocolServiceId', 'errorMessage' => 'ProtocolServiceId is mandatory for this action.', 'description' => ''], ], 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' => 'Instance.IncorrectStatus', 'errorMessage' => 'The specified instance is in an incorrect status.', 'description' => ''], + ['errorCode' => 'OperationDenied.InvalidMntStatus', 'errorMessage' => 'The operation is denied due to invalid protocol mount targte status.', 'description' => ''], + ['errorCode' => 'OperationDenied.InvalidPtcStatus', 'errorMessage' => 'The operation is denied due to invalid protocol service status.', 'description' => ''], + ['errorCode' => 'OperationDenied.InvalidState', 'errorMessage' => 'The operation is denied due to invalid file system state.', 'description' => ''], + ['errorCode' => 'OperationDenied.NotSupported', 'errorMessage' => 'The operation is denied due to not supported.', 'description' => ''], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidProtocolService.NotFound', 'errorMessage' => 'The specified protocol service does not exist.', 'description' => ''], + ['errorCode' => 'InvalidExportId.NotFound', 'errorMessage' => 'The specified ExportId does not exist.', 'description' => ''], + ['errorCode' => 'InvalidAccessGroupName.NotFound', 'errorMessage' => 'The specified access group does not exist.', 'description' => ''], + ['errorCode' => 'InvalidAccessGroupName.NotAccessRule', 'errorMessage' => 'There has no rule in access group.', 'description' => ''], + ['errorCode' => 'InvalidDescription.InvalidFormat', 'errorMessage' => 'Description format is invalid.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]', + 'title' => 'ModifyProtocolMountTarget', + 'description' => '该接口仅适用于CPFS文件系统。', + 'changeSet' => [ + ['createdAt' => '2022-04-28T09:25:04.000Z', 'description' => 'OpenAPI offline'], ], - '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', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyProtocolMountTarget'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyProtocolMountTarget', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'ModifyProtocolService' => [ + 'summary' => 'Modifies a protocol service. You can modify the description of a protocol service.', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17277,813 +16779,381 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '225734', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], + 'abilityTreeCode' => '124952', + 'abilityTreeNodes' => ['FEATUREnasQ7YV89', 'FEATUREnas0GUIX5'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'ProtocolServiceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'bmcpfs-370lx1ev9ss27o0****'."\n", - ], + 'schema' => ['description' => 'The ID of the protocol service.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ptc-197ed6a00f2b****', 'title' => ''], ], [ - 'name' => 'DataFlowId', + 'name' => 'FileSystemId', 'in' => 'query', 'schema' => [ - 'description' => 'The ID of the data flow.'."\n", + 'description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, - 'example' => 'df-194433a5be31****', + 'enum' => [], + 'example' => 'cpfs-099394bd928c****', + 'title' => '', ], ], [ - 'name' => 'DataFlowTaskId', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the data flow task.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'task-38aa8e890f45****'."\n", - ], + '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' => '此协议服务的描述信息', 'title' => ''], ], [ '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', - ], + '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, 'default' => 'false', 'example' => 'false', 'title' => ''], ], [ '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****', - ], + '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, 'maxLength' => 64, 'minLength' => 1, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****'], ], - 'description' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingProtocolServiceId', 'errorMessage' => 'ProtocolServiceId is mandatory for this action.', 'description' => ''], ], 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' => 'Instance.IncorrectStatus', 'errorMessage' => 'The specified instance is in an incorrect status.', 'description' => ''], + ['errorCode' => 'InvalidProtocolSpec.NotSupported', 'errorMessage' => 'The specified protocol spec does not supported.', 'description' => ''], + ['errorCode' => 'PermissionDenied.ThroughputInvalid', 'errorMessage' => 'Standard protocol service should not specified throughput.', 'description' => ''], + ['errorCode' => 'InvalidVSwitchId.IpShortage', 'errorMessage' => 'The specified vswitch ip shortage.', 'description' => ''], + ['errorCode' => 'OperationDenied.InvalidPtcStatus', 'errorMessage' => 'The operation is denied due to invalid protocol service status.', 'description' => ''], + ['errorCode' => 'OperationDenied.InvalidState', 'errorMessage' => 'The operation is denied due to invalid file system state.', 'description' => ''], + ['errorCode' => 'OperationDenied.NotSupported', 'errorMessage' => 'The operation is denied due to not supported.', 'description' => ''], + ['errorCode' => 'PermissionDenied.CLThroughputInvalid', 'errorMessage' => 'Throughput of caching protocol service is invalid.', 'description' => ''], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidProtocolService.NotFound', 'errorMessage' => 'The specified protocol service does not exist.', 'description' => ''], + ['errorCode' => 'InvalidDescription.InvalidFormat', 'errorMessage' => 'Description format is invalid.', 'description' => ''], + ['errorCode' => 'OperationDenied.NoStock', 'errorMessage' => 'The operation is denied due to no stock.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","type":"json"}]', + 'title' => 'ModifyProtocolService', + 'description' => '该接口仅适用于CPFS文件系统。', + 'changeSet' => [ + ['createdAt' => '2022-04-28T09:25:04.000Z', 'description' => 'OpenAPI offline'], ], - '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', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyProtocolService'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyProtocolService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], ], + 'translator' => 'manual', + ], + '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' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '49028', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], + 'abilityTreeCode' => '13980', + 'abilityTreeNodes' => ['FEATUREnasWJVZ38'], + '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-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****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], ], [ - 'name' => 'Filters', + '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****', 'title' => ''], + ], + [ + '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****', 'title' => ''], + ], + [ + 'name' => 'EnableAnonymousAccess', '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, - ], + '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', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'EncryptData', '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=', - ], + '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', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'RejectUnencryptedAccess', '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', - ], + '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', 'title' => ''], ], [ - 'name' => 'WithReports', + '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', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ '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', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], + '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', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifySmbAcl'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifySmbAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], + ], + ], + 'OpenNASService' => [ + 'summary' => 'Activates the NAS service.', + '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' => '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' => '', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '427DB0B3-9436-4A3C-B2BC-B961F95E****', 'title' => ''], + 'OrderId' => ['description' => 'The order ID for enabling the service.', 'type' => 'string', 'example' => '20671870151****', 'title' => ''], + 'AccessDeniedDetail' => ['description' => 'The access denied details.', '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" + .' }', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'ORDER.OPEND', 'errorMessage' => 'You have already open the service. Go to the console to start using it.', 'description' => 'you have activated the nas service.'], + ['errorCode' => 'InvalidIntlAccount.NotComplete', 'errorMessage' => 'Intl account is not complete.', 'description' => 'The basic information of the international station account is not complete.'], ], - 403 => [ - [ - 'errorCode' => 'OperationDenied.DataFlowNotSupported', - 'errorMessage' => 'The operation is not supported.', - ], + 500 => [ + ['errorCode' => 'OpenNasService.GetCommodityInfoFail', 'errorMessage' => 'Fail to get commodity info for open nas service.', 'description' => 'unable to obtain the product information of the open nas service.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'OpenNASService', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-03-25T07:41:44.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-08-23T02:49:52.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'OpenNASService'], ], + ], + 'ramActions' => [ [ - [ - '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.', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'nas:OpenNASService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - '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', - ], + 'RemoveClientFromBlackList' => [ + 'summary' => 'Remove the client from the blacklist.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', + 'deprecated' => true, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '225738', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], + 'abilityTreeCode' => '13982', + 'abilityTreeNodes' => ['FEATUREnas2SBOJD'], 'autoTest' => false, - 'notSupportAutoTestReason' => '特殊用户使用', + 'notSupportAutoTestReason' => '弃用接口', 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'FileSystemId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'bmcpfs-370lx1ev9ss27o0****'."\n", - ], + 'schema' => ['description' => 'The ID of the region where the file system resides.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Filters', + 'name' => 'FileSystemId', '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, - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cpfs-00d91ca404a348****', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'ClientIP', '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=', - ], + 'schema' => ['description' => 'The IP address of a client to remove from the blacklist.'."\n", 'type' => 'string', 'required' => true, 'example' => '192.168.0.0', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'ClientToken', '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', - ], + '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****', 'title' => ''], ], ], 'responses' => [ @@ -18091,372 +17161,84 @@ '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' => '', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'A70BEE5D-76D3-49FB-B58F-1F398211****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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.', - ], + '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' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-03-12T11:38:28.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveClientFromBlackList'], ], + ], + 'ramActions' => [ [ - [ - '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.', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:RemoveClientFromBlackList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], ], ], ], - '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', - ], + 'RemoveTags' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, + 'deprecated' => true, 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'high', + 'operationType' => 'delete', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '59398', - 'abilityTreeNodes' => [ - 'FEATUREnasQ7YV89', - 'FEATUREnas0GUIX5', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeCode' => '13983', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], + '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' => 'cpfs-099394bd928c****', - ], - ], - [ - 'name' => 'DataFlowId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the dataflow.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'df-194433a5be31****'."\n", - ], + 'schema' => ['type' => 'string', 'required' => true, 'docRequired' => true], ], [ - 'name' => 'AutoRefreshs', + 'name' => 'Tag', '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, - ], + 'Key' => ['type' => 'string', 'required' => false], + 'Value' => ['type' => 'string', 'required' => false], ], - '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, + 'maxItems' => 10, ], ], ], @@ -18465,129 +17247,28 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', - ], + 'RequestId' => ['type' => 'string'], ], - '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' => [ + 'substitutions' => ['NAS::2017-06-26::UntagResources'], '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', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:08.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"\\"\\n}","type":"json"}]', + ], + 'ResetFileSystem' => [ + 'summary' => 'Rolls back a file system to a snapshot of the file system.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18598,12 +17279,9 @@ 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'high', - 'chargeType' => 'free', - 'abilityTreeCode' => '59403', - 'abilityTreeNodes' => [ - 'FEATUREnasQ7YV89', - 'FEATUREnas0GUIX5', - ], + 'chargeType' => 'paid', + 'abilityTreeCode' => '13984', + 'abilityTreeNodes' => ['FEATUREnas5QOAQE', 'FEATUREnas6KFX9N'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], @@ -18611,75 +17289,84 @@ [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cpfs-099394bd928c****', - ], + 'schema' => ['description' => 'The ID of the advanced Extreme NAS file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'extreme-012dd****', 'title' => ''], ], [ - 'name' => 'DataFlowId', + 'name' => 'SnapshotId', 'in' => 'query', + 'schema' => ['description' => 'The snapshot ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 's-extreme-snapsho****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ID of the dataflow.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'df-194433a5be31****'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + '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' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:23:07.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ResetFileSystem'], + ], + ], + 'ramActions' => [ [ - '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/', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ResetFileSystem', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + ], + 'RetryLifecycleRetrieveJob' => [ + 'summary' => 'Retries failed a data retrieval task.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - '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', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '19611', + 'abilityTreeNodes' => ['FEATUREnasZ6WBFV'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'JobId', '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****', - ], + 'schema' => ['description' => 'The ID of the data retrieval task.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'lrj-nfstest-ia-160****853-hshvw', 'title' => ''], ], ], 'responses' => [ @@ -18687,84 +17374,56 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'BC7C825C-5F65-4B56-BEF6-98C56C7C****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'OperationDenied.LifecycleRetrieveJobNotFailed', 'errorMessage' => 'The specified LifecycleRetrieveJob has not failed.', 'description' => 'The specified LifecycleRetrieveJob has not failed.'], + ['errorCode' => 'OperationDenied.LifecycleRetrieveJobCountLimitExceeded', 'errorMessage' => 'The maximum number of LifecycleRetrieveJobs is exceeded.', 'description' => 'The maximum number of LifecycleRetrieveJobs is exceeded.'], ], - 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.', - ], + 404 => [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidLifecycleRetrieveJob.NotFound', 'errorMessage' => 'The specified LifecycleRetrieveJob does not exist.', 'description' => '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' => ' ', + 'changeSet' => [ + ['createdAt' => '2021-04-08T08:36:16.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RetryLifecycleRetrieveJob'], ], + ], + 'ramActions' => [ [ - [ - '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.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:RetryLifecycleRetrieveJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - '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', - ], + 'SetAgenticSpaceQuota' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -18776,10 +17435,8 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '59400', - 'abilityTreeNodes' => [ - 'FEATUREnasPWYFYN', - ], + 'abilityTreeCode' => '238301', + 'abilityTreeNodes' => ['FEATUREnasXEQXVN'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], @@ -18787,89 +17444,51 @@ [ 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cpfs-099394bd928c****', - ], + 'schema' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], ], [ - 'name' => 'DataFlowId', + 'name' => 'AgenticSpaceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the dataflow.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'df-194433a5be31****'."\n", - ], + 'schema' => ['description' => 'AgenticSpace Id。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'agentic-229oypxjgpau2****', 'title' => ''], ], [ - 'name' => 'AutoRefreshPolicy', + 'name' => 'FileCountLimit', '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', - ], - ], + 'schema' => ['description' => 'The file count limit for the quota. Valid values:'."\n" + ."\n" + .'- Minimum value: 10,000.'."\n" + ."\n" + .'- Maximum value: 100,000,000.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10000', 'title' => ''], ], [ - 'name' => 'AutoRefreshInterval', + 'name' => 'SizeLimit', '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', - ], + 'schema' => ['description' => 'The total capacity limit for the quota. Unit: bytes.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- Minimum value: 10,737,418,240 (10 GiB).'."\n" + .'- Maximum value: 1,099,511,627,776,000 (1,024,000 GiB).'."\n" + .'- Step: 1,073,741,824 (1 GiB).', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10737418240', 'title' => ''], ], [ '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', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run for this request. A dry run checks parameter validity and dependencies without actually modifying the instance or incurring charges.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: Sends a dry run request without modifying the protocol service. The check items include required parameters, request format, and business dependency conditions. If the check fails, the corresponding error is returned. If the check passes, HTTP status code 200 is returned.'."\n" + .'- false (default): Sends a normal request. After the check passes, the protocol service is directly modified.', 'type' => 'boolean', 'default' => 'false', 'required' => false, 'example' => 'false', 'title' => ''], ], [ '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****', - ], + 'schema' => ['description' => 'Ensures the idempotency of the request. Generate a unique parameter value from your client to ensure that the value is unique across different requests.'."\n" + ."\n" + .'ClientToken supports only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotency](~~25693~~).'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the RequestId of the API request as the ClientToken. The RequestId may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], ], ], 'responses' => [ @@ -18877,84 +17496,57 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => 'The FileSystemId parameter is not specified.'], + ['errorCode' => 'MissingFsetId', 'errorMessage' => 'FsetId is mandatory for this action.', 'description' => 'The Fileset ID parameter is not specified.'], + ['errorCode' => 'Quota.Invalid.Limit', 'errorMessage' => 'Quota limit is invalid.', 'description' => 'Invalid quota.'], + ['errorCode' => 'Quota.Exceed.Limit', 'errorMessage' => 'Quota exceed limit.', 'description' => 'The quota is below the Fileset limit.'], + ['errorCode' => 'InvalidFilesetId.NotFound', 'errorMessage' => 'Invalid FilesetId.', 'description' => 'Fileset does not exist'], ], 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' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => 'The conditions for this operation are not met.'], + ['errorCode' => 'OperationDenied.FilesetNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => 'The file system does not support Fileset.'], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidFsetId.NotFound', 'errorMessage' => 'The specified Fileset ID does not exist.', 'description' => 'The specified fileset does not exist.'], + ], + 429 => [ + ['errorCode' => 'Throttling.Api', 'errorMessage' => 'Request was denied due to api flow control.', 'description' => 'The request is throttled.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - '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', + 'title' => 'Set agentic space quota', + 'summary' => 'Sets the quota for an Agentic space.', + 'description' => 'Applies to agentic-type file systems.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","type":"json"}]', + 'gatewayOptions' => [ + 'gatewayProtocols' => [], ], + ], + 'SetDirQuota' => [ + 'summary' => 'Creates a directory quota for a file system.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18963,468 +17555,293 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', + 'operationType' => 'create', + 'riskType' => 'high', 'chargeType' => 'free', - 'abilityTreeCode' => '202852', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', - ], + 'abilityTreeCode' => '13985', + 'abilityTreeNodes' => ['FEATUREnasXEQXVN'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'FileSystemId', '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', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], ], [ - 'name' => 'ResourceId', + 'name' => 'Path', 'in' => 'query', - 'schema' => [ - 'title' => '资源Id', - 'description' => 'The resource ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '31a8e4****', - ], + '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', 'title' => ''], ], [ - 'name' => 'NewResourceGroupId', + 'name' => 'QuotaType', 'in' => 'query', 'schema' => [ - 'description' => 'The ID of the new resource group.'."\n" + 'description' => 'The type of the quota.'."\n" + ."\n" + .'Valid values:'."\n" ."\n" - .'You can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups?) to view resource group IDs.'."\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' => 'rg-acfmwavnfdf****', + 'example' => 'Accounting', + 'enum' => ['Accounting', 'Enforcement'], + 'title' => '', ], ], [ - 'name' => 'ResourceType', + 'name' => 'UserType', 'in' => 'query', 'schema' => [ - 'description' => 'The resource type.'."\n" + 'description' => 'The type of the user.'."\n" + ."\n" + .'Valid values:'."\n" ."\n" - .'Set the value to filesystem.'."\n", + .'* Uid: user ID'."\n" + .'* Gid: user group ID'."\n" + .'* AllUsers: all users'."\n", 'type' => 'string', 'required' => true, - 'example' => 'filesystem', - 'enum' => [ - 'filesystem', - ], + 'example' => 'Uid', + 'enum' => ['Uid', 'Gid', 'AllUsers'], + 'title' => '', ], ], + [ + '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', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], ], '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****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '5BC5CB97-9F28-42FE-84A4-0CD0DF42****', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the request was successful.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* true'."\n" + .'* false'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 404 => [ - [ - 'errorCode' => 'EntityNotExist.ResourceGroup', - 'errorMessage' => 'The resource group does not exist.', - ], - [ - 'errorCode' => 'EntityNotExist.ResourceId', - 'errorMessage' => 'The resource does not exist.', - ], + ['errorCode' => 'InvalidParameter.DirPathNotExist', 'errorMessage' => 'The Dir Path does not exist', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + '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' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:22:53.000Z', 'description' => 'Response parameters changed'], ], - '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', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'SetDirQuota'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:SetDirQuota', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], + ], + 'SetFilesetQuota' => [ + 'summary' => 'Sets the quota for a fileset.', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeCode' => '124566', - 'abilityTreeNodes' => [ - 'FEATUREnas155MFA', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'chargeType' => 'free', + 'abilityTreeCode' => '238301', + 'abilityTreeNodes' => ['FEATUREnasXEQXVN'], + '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' => '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', - ], - ], + '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****', 'title' => ''], ], [ - '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', + 'name' => 'FsetId', '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', - ], + 'schema' => ['description' => 'The fileset ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'fset-1902718ea0ae****', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'DryRun', '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****', - ], + '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, 'default' => 'false', 'example' => 'false', 'title' => ''], ], [ - 'name' => 'VSwitchId', + 'name' => 'ClientToken', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'The vSwitch ID of the protocol service.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'vsw-123****', - ], + '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****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'FileCountLimit', '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', - ], + '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', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'SizeLimit', '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, - ], + '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', 'title' => ''], ], ], '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****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingFsetId', 'errorMessage' => 'FsetId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'Quota.Invalid.Limit', 'errorMessage' => 'Quota limit is invalid.', 'description' => 'Invalid quota.'], + ['errorCode' => 'Quota.Exceed.Limit', 'errorMessage' => 'Quota exceed limit.', 'description' => 'The quota is below the Fileset limit.'], + ['errorCode' => 'InvalidFilesetId.NotFound', 'errorMessage' => 'Invalid FilesetId.', 'description' => 'Fileset does not exist'], ], 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' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => ''], + ['errorCode' => 'OperationDenied.FilesetNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidFsetId.NotFound', 'errorMessage' => 'The specified Fileset ID does not exist.', 'description' => ''], + ], + 429 => [ + ['errorCode' => 'Throttling.Api', 'errorMessage' => 'Request was denied due to api flow control.', 'description' => 'The request is throttled.'], ], ], - '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', + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2D69A58F-345C-4FDE-88E4-BF518948****\\"\\n}","type":"json"}]', + 'title' => 'SetFilesetQuota', + 'description' => '- 仅CPFS智算版2.7.0及以上版本支持为文件集设置配额。'."\n" + .'- Fileset容量配额,最小起步10 GiB,扩容单位为1 GiB。'."\n" + .'- Fileset最多支持100亿个文件或目录,最小起步10000,扩容单位为1。'."\n" + .'- 修改目录配额时,设置的配额容量或文件数必须高于已使用容量或文件数。'."\n" + .'- 容量限制和文件数限制至少填写其中一项。'."\n" + .'- 配额的统计有15分钟的延迟,当前的实际使用量15分钟之后才会生效。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'SetFilesetQuota'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:SetFilesetQuota', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Fileset', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'StartDataFlow' => [ + 'summary' => 'Enables a dataflow.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -19433,1000 +17850,509 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'high', - 'chargeType' => 'paid', - 'abilityTreeCode' => '124951', - 'abilityTreeNodes' => [ - 'FEATUREnasQ7YV89', - 'FEATUREnas0GUIX5', - 'FEATUREnasRXWLI5', - ], + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '49022', + 'abilityTreeNodes' => ['FEATUREnasPWYFYN'], 'autoTest' => true, 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'ProtocolServiceId', + 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the protocol service.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ptc-123****', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cpfs-099394bd928c****', 'title' => ''], ], [ - 'name' => 'FileSystemId', + 'name' => 'DataFlowId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cpfs-123****', - 'enum' => [], - ], + 'schema' => ['description' => 'The ID of the dataflow.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'df-194433a5be31****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'DryRun', '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, - ], + '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, 'default' => 'false', 'example' => 'false', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'ClientToken', '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', - ], + '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, 'maxLength' => 64, 'minLength' => 1, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], ], ], '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****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingFileSystemId', - 'errorMessage' => 'FileSystemId is mandatory for this action.', - ], - [ - 'errorCode' => 'MissingProtocolServiceId', - 'errorMessage' => 'ProtocolServiceId is mandatory for this action.', - ], + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingDataFlowId', 'errorMessage' => 'DataFlowId is mandatory for this action.', 'description' => ''], ], 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' => 'OperationDenied.InvalidState', 'errorMessage' => 'The operation is not permitted when the status is processing.', 'description' => 'The operation is not permitted when the status is processing.'], + ['errorCode' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => ''], + ['errorCode' => 'OperationDenied.NoStock', 'errorMessage' => 'The operation is denied due to no stock.', 'description' => ''], + ['errorCode' => 'OperationDenied.ConflictOperation', 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', 'description' => ''], + ['errorCode' => 'OperationDenied.DataFlowNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], ], [ - [ - 'errorCode' => 'InvalidProtocolService.NotFound', - 'errorMessage' => 'The specified protocol service does not exist.', - ], - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidDataFlow.NotFound', 'errorMessage' => 'The specified data flow does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","type":"json"}]', + 'title' => 'StartDataFlow', + 'description' => '- 该接口仅适用于CPFS文件系统。'."\n" + .'- 仅CPFS 2.2.0及以上版本支持数据流动。您可以在控制台文件系统详情页面查看版本信息。'."\n" + .'- 只能启动`Stopped(停止)`状态的数据流动。'."\n" + .'- 当DryRun为`true`时,可校验启动该规格的数据流动的资源是否充足。如果库存资源不足,数据流动则无法启动。'."\n" + .'- 启动数据流动一般耗时2~5分钟,您可通过[DescribeDataFlows](~~2402270~~)查询数据流动状态。', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:22:53.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-10-28T08:34:23.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartDataFlow'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:StartDataFlow', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], - '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", + 'translator' => 'manual', ], - 'ModifyProtocolService' => [ - 'summary' => 'Modifies a protocol service. You can modify the description of a protocol service.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'StartLifecyclePolicyExecution' => [ + 'summary' => 'Starts the execution of a lifecycle policy.', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '124952', - 'abilityTreeNodes' => [ - 'FEATUREnasQ7YV89', - 'FEATUREnas0GUIX5', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'chargeType' => 'paid', + 'abilityTreeNodes' => ['FEATUREnasZ6WBFV'], ], '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', - ], + 'schema' => ['description' => 'The file system ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'bmcpfs-0015****', 'title' => ''], ], [ - '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', + 'name' => 'LifecyclePolicyId', '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, - ], + 'schema' => ['description' => 'The lifecycle policy ID.', 'type' => 'string', 'required' => true, 'example' => 'lc-xxx', 'title' => ''], ], ], '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****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '70EACC9C-D07A-4A34-ADA4-77506C42****', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the request was successful.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: The request was successful.'."\n" + ."\n" + .'- false: The request failed.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingFileSystemId', - 'errorMessage' => 'FileSystemId is mandatory for this action.', - ], - [ - 'errorCode' => 'MissingProtocolServiceId', - 'errorMessage' => 'ProtocolServiceId is mandatory for this action.', - ], + ['errorCode' => 'InvalidLifecyclePolicy.NotFound', 'errorMessage' => 'The specified LifecyclePolicy does not exist.', 'description' => 'The specified LifecyclePolicy does not exist.'], + ['errorCode' => 'Lifecycle.RunningTask.Exist', 'errorMessage' => 'There are running tasks for this lifecycle policy.', 'description' => 'A file system supports only 2 OnDemand lifecycle policies in operation.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], ], 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' => 'OperationDenied.LifecycleLogsCountsExceeded', 'errorMessage' => 'The amount of Lifecycle Logs has reached its limits.', 'description' => 'The OnDemand lifecycle policy only supports 1 run.'], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => 'StartLifecyclePolicyExecution', + 'description' => 'This operation is supported only when the `LifecyclePolicyType` of a lifecycle policy is set to `OnDemand` for a CPFS AI-Computing Edition file system.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - '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", + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"70EACC9C-D07A-4A34-ADA4-77506C42****\\",\\n \\"Success\\": true\\n}","type":"json"}]', ], - 'DescribeProtocolService' => [ - 'summary' => 'Queries the information about protocol services.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'StopDataFlow' => [ + 'summary' => 'Disables a dataflow.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '124567', - 'abilityTreeNodes' => [ - 'FEATUREnasQ7YV89', - 'FEATUREnas0GUIX5', - ], + 'abilityTreeCode' => '49021', + 'abilityTreeNodes' => ['FEATUREnasPWYFYN'], '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', + 'name' => 'FileSystemId', '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', - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cpfs-099394bd928c****', 'title' => ''], ], [ - 'name' => 'FileSystemId', + 'name' => 'DataFlowId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cpfs-099394bd928c****', - 'enum' => [], - ], + 'schema' => ['description' => 'The ID of the dataflow.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'df-194433a5be31****', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'DryRun', '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, - ], + '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, 'default' => 'false', 'example' => 'false', 'title' => ''], ], [ '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, - ], + '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, 'maxLength' => 64, 'minLength' => 1, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], ], ], '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', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingFileSystemId', - 'errorMessage' => 'FileSystemId is mandatory for this action.', - ], - [ - 'errorCode' => 'InvalidParam.TooManyProtocolServiceIds', - 'errorMessage' => 'Too many protocol service ids given.', - ], + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingDataFlowId', 'errorMessage' => 'DataFlowId is mandatory for this action.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'InvalidStatus.NotSupported', - 'errorMessage' => 'The specified protocol service status does not support.', - ], + ['errorCode' => 'OperationDenied.InvalidState', 'errorMessage' => 'The operation is not permitted when the status is processing.', 'description' => 'The operation is not permitted when the status is processing.'], + ['errorCode' => 'OperationDenied.DependencyViolation', 'errorMessage' => 'The operation is denied due to dependancy violation.', 'description' => ''], + ['errorCode' => 'OperationDenied.ConflictOperation', 'errorMessage' => 'The operation is denied due to a conflict with an ongoing operation.', 'description' => ''], + ['errorCode' => 'OperationDenied.DataFlowNotSupported', 'errorMessage' => 'The operation is not supported.', 'description' => ''], ], [ - [ - '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' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], + ['errorCode' => 'InvalidDataFlow.NotFound', 'errorMessage' => 'The specified data flow does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","type":"json"}]', + 'title' => 'StopDataFlow', + 'description' => '- 该接口仅适用于CPFS文件系统。'."\n" + .'- 仅CPFS 2.2.0及以上版本支持数据流动。您可以在控制台文件系统详情页面查看版本信息。'."\n" + .'- 只能停用`Running(正常)`状态的数据流动。'."\n" + .'- 停用后,不可在数据流动上创建数据流动任务。如果配置了自动更新,源端发生的数据更新也不会同步到CPFS上。'."\n" + .'- 停用后,由于资源被回收,数据流动带宽将不再计费,但重新启动数据流动可能因为库存不足导致启动失败。'."\n" + .'- 停用数据流动一般耗时2~5分钟,您可通过[DescribeDataFlows](~~2402271~~)查询数据流动状态。', + 'changeSet' => [ + ['createdAt' => '2024-09-05T09:22:53.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-10-28T08:34:23.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StopDataFlow'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:StopDataFlow', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], ], - '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", + 'translator' => 'manual', ], - 'CreateProtocolMountTarget' => [ - 'summary' => 'Creates an export directory for a protocol service.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'StopLifecyclePolicyExecution' => [ + 'summary' => 'Stops the execution of a lifecycle policy.', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '124954', - 'abilityTreeNodes' => [ - 'FEATUREnasQ7YV89', - 'FEATUREnas0GUIX5', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'chargeType' => 'paid', + 'abilityTreeNodes' => ['FEATUREnasZ6WBFV'], ], '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' => [], - ], + 'schema' => ['description' => 'The ID of the file system.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'bmcpfs-290w65p03ok64ya****', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'LifecyclePolicyId', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'The VPC ID of the export directory.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'vpc-123****', - ], + 'schema' => ['description' => 'The ID of the lifecycle policy.', 'type' => 'string', 'required' => true, 'example' => 'lc-xxx', 'title' => ''], ], - [ - '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', + ], + 'responses' => [ + 200 => [ '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****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n" + ."\n" + .'A request ID is returned regardless of whether the call succeeds.', 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the request succeeded.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: The request succeeded.'."\n" + ."\n" + .'- false: The request failed.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - [ - '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, - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidLifecyclePolicy.NotFound', 'errorMessage' => 'The specified LifecyclePolicy does not exist.', 'description' => 'The specified LifecyclePolicy does not exist.'], ], - [ - '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', - ], + 404 => [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], ], + ], + 'title' => 'StopLifecyclePolicyExecution', + 'description' => 'This operation applies only when the LifecyclePolicyType parameter of a lifecycle management policy for a CPFS file system is set to OnDemand.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"Success\\": true\\n}","type":"json"}]', + ], + 'TagResources' => [ + 'summary' => 'Creates tags and binds the tags to file systems.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - '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', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13986', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'ResourceType', '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, - ], + 'schema' => ['description' => 'The resource type. Set the value to filesystem.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'filesystem', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', '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" + 'description' => 'The resource IDs. Valid values of N: 1 to 50.', + 'type' => 'array', + 'items' => ['description' => 'The ID of the file system.'."\n" ."\n" - .'Valid values:'."\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" - .'* 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', + .'> * 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****', 'title' => ''], + 'required' => true, + 'example' => '03e08484f0', + 'maxItems' => 51, + 'title' => '', ], ], [ - 'name' => 'VSwitchIds', + 'name' => 'Tag', 'in' => 'query', - 'allowEmptyValue' => true, 'style' => 'repeatList', 'schema' => [ - 'title' => '同城冗余虚拟交换机ID列表', - 'description' => 'The list of vSwitch IDs of the export directory.'."\n", + 'description' => 'The details about the tags.'."\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', + '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', 'title' => ''], + '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', 'title' => ''], + ], 'required' => false, - 'example' => 'vsw-123xxx', + 'description' => '', + 'title' => '', + 'example' => '', ], - 'required' => false, - 'maxItems' => 3, - 'minItems' => 0, + 'required' => true, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], ], '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****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingFileSystemId', - 'errorMessage' => 'FileSystemId is mandatory for this action.', - ], - [ - 'errorCode' => 'MissingProtocolServiceId', - 'errorMessage' => 'ProtocolServiceId is mandatory for this action.', - ], + ['errorCode' => 'NumberExceed.ResourceIds', 'errorMessage' => 'The maximum number of ResourceIds is exceeded. The maximum is 50.', 'description' => 'The maximum number of resource ID is exceeded. The maximum is 50.'], + ['errorCode' => 'MissingParameter.ResourceIds', 'errorMessage' => 'You must specify ResourceIds.', 'description' => 'You must specify ResourceId.'], + ['errorCode' => 'Duplicate.ResourceId', 'errorMessage' => 'The request contains duplicated ResourceId.', 'description' => 'ResourceId cannot be duplicated.'], + ['errorCode' => 'NumberExceed.Tags', 'errorMessage' => 'The maximum number of Tags is exceeded. The maximum is 20.', 'description' => 'The maximum number of Tags is exceeded. The maximum is 20.'], + ['errorCode' => 'Duplicate.TagKey', 'errorMessage' => 'The Tag.N.Key contains a duplicated key.', 'description' => 'The specified TagKey is duplicated.'], + ['errorCode' => 'InvalidResourceId.NotFound', 'errorMessage' => 'The ResourceId does not exist.', 'description' => 'The specified ResourceId does not exist.'], + ['errorCode' => 'InvalidParameter.TagKey', 'errorMessage' => 'The specified Tag.n.Key is invalid.', 'description' => 'The specified TagKey is invalid.'], + ['errorCode' => 'InvalidParameter.TagValue', 'errorMessage' => 'The specified Tag.n.Value is invalid.', 'description' => 'The specified TagValue is invalid.'], + ['errorCode' => 'CustomTag.NumberExceed', 'errorMessage' => 'The maximum number of system tags for each resource is 20.', 'description' => 'The maximum number of user tags for each resource is 20.'], ], 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' => 'OperationDenied.KeyValueNotNull', 'errorMessage' => 'The key value cannot be null.', 'description' => 'You must specify tag value.'], + ], + ], + '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' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'TagResources'], ], + ], + 'ramActions' => [ [ - [ - '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.', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:TagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], ], - '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', - ], + 'UntagResources' => [ + 'summary' => 'Removes tags from a file system.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -20436,160 +18362,121 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'delete', - 'riskType' => 'high', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '131496', - 'abilityTreeNodes' => [ - 'FEATUREnas5IJRRZ', - ], + 'abilityTreeCode' => '13987', + 'abilityTreeNodes' => ['FEATUREnasI92PYN'], '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', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cpfs-123****', - ], + 'schema' => ['description' => 'The resource type.'."\n" + ."\n" + .'Set the value to filesystem.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'filesystem', 'title' => ''], ], [ - 'name' => 'ExportId', + 'name' => 'All', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the export directory.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'exp-123****', - ], + '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', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', '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" + 'description' => 'The resource IDs. Valid values of N: 1 to 50.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the file system.'."\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" + .'* 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" - .'> 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****', + .'> CPFS file systems are available only on the China site (aliyun.com).'."\n", 'type' => 'string', 'required' => false, 'example' => '31a8e4****', 'title' => ''], + 'required' => true, + 'example' => '03e08484f0', + 'maxItems' => 51, + 'title' => '', ], ], [ - 'name' => 'DryRun', + 'name' => 'TagKey', 'in' => 'query', + 'style' => 'repeatList', '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', + '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', 'title' => ''], 'required' => false, - 'example' => 'true', + 'example' => 'nastest', + 'maxItems' => 21, + 'title' => '', ], ], ], '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****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'NumberExceed.ResourceIds', 'errorMessage' => 'The maximum number of ResourceIds is exceeded. The maximum is 50.', 'description' => 'The maximum number of resource ID is exceeded. The maximum is 50.'], + ['errorCode' => 'Duplicate.ResourceId', 'errorMessage' => 'The request contains duplicated ResourceId.', 'description' => 'ResourceId cannot be duplicated.'], + ['errorCode' => 'MissingParameter.ResourceIds', 'errorMessage' => 'You must specify ResourceIds.', 'description' => 'You must specify ResourceId.'], + ['errorCode' => 'InvalidParameter.TagKey', 'errorMessage' => 'The specified Tag.n.Key is invalid.', 'description' => 'The specified TagKey is invalid.'], + ['errorCode' => 'InvalidParameter.TagValue', 'errorMessage' => 'The specified Tag.n.Value is invalid.', 'description' => 'The specified TagValue is invalid.'], + ['errorCode' => 'Duplicate.TagKey', 'errorMessage' => 'The Tag.N.Key contains a duplicated key.', 'description' => 'The specified TagKey is duplicated.'], ], - 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.', - ], + ], + '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', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UntagResources'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], - [ - 'errorCode' => 'InvalidProtocolService.NotFound', - 'errorMessage' => 'The specified protocol service does not exist.', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:UntagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], ], - '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", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', ], - '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', - ], + 'UpdateLifecyclePolicy' => [ + 'summary' => 'Updates the rules of a lifecycle policy. This operation is supported only for CPFS for AI file systems. The `UpdateLifecyclePolicy` operation overwrites the entire policy. Omitting an optional parameter deletes its corresponding configuration. To add a rule to an existing policy, call the `DescribeLifecyclePolicies` operation to retrieve the current policy, append the new rule, and then call `UpdateLifecyclePolicy` with the updated configuration.', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -20600,332 +18487,210 @@ 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '124957', - 'abilityTreeNodes' => [ - 'FEATUREnasQ7YV89', - 'FEATUREnas0GUIX5', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'chargeType' => 'paid', + 'abilityTreeNodes' => ['FEATUREnasZ6WBFV'], ], 'parameters' => [ [ - 'name' => 'ProtocolServiceId', + 'name' => 'FileSystemId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the protocol service.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ptc-197ed6a00f2b****', - ], + 'schema' => ['description' => 'The ID of the file system.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'bmcpfs-290w65p03ok64y*****', 'title' => ''], ], [ - 'name' => 'ExportId', + 'name' => 'StorageType', 'in' => 'query', 'schema' => [ - 'description' => 'The ID of the export directory for the protocol service.'."\n", + 'description' => 'The storage tier.'."\n" + ."\n" + .'- `InfrequentAccess`: The Infrequent Access storage tier. This is the default value.'."\n" + ."\n" + .'- `Archive`: The Archive storage tier.', 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'exp-19abf5beab8d****', + 'required' => false, + 'default' => 'InfrequentAccess', + 'enum' => ['InfrequentAccess'], + 'example' => 'InfrequentAccess', + 'title' => '', ], ], [ - 'name' => 'FileSystemId', + 'name' => 'LifecyclePolicyId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'deprecated' => false, - 'required' => true, - 'docRequired' => true, - 'example' => 'cpfs-099394bd928c****', - ], + 'schema' => ['description' => 'The ID of the lifecycle policy.'."\n" + ."\n" + .'> This parameter is required for CPFS for AI file systems.', 'type' => 'string', 'required' => true, 'example' => 'lsp-bp1234567890ab****', 'title' => ''], ], [ 'name' => 'Description', 'in' => 'query', + 'schema' => ['description' => 'The description of the lifecycle policy.'."\n" + ."\n" + .'The description must be 3 to 64 characters long and must start with a letter. It can contain letters, digits, underscores (\\_), and hyphens (-).'."\n" + ."\n" + .'> This parameter is supported only for CPFS for AI file systems.', 'type' => 'string', 'required' => false, 'example' => 'Lifecycle policy description', 'title' => ''], + ], + [ + 'name' => 'Paths', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The description of the export directory for the protocol service.'."\n" - ."\n" - .'Limits:'."\n" + 'type' => 'array', + 'items' => ['description' => 'The absolute path of a directory to which the lifecycle policy applies.'."\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', + .'You can specify 1 to 10 paths. Each path must start with a forward slash (/) and be an existing path in the mount target.', 'type' => 'string', 'required' => false, 'example' => '/path1', 'title' => ''], + 'maxItems' => 100, + 'description' => 'The absolute paths of the directories to which the lifecycle policy applies.', 'required' => false, - 'example' => 'test', + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'DryRun', + 'name' => 'TransitRules', 'in' => 'query', + 'style' => 'repeatList', '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" + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Attribute' => ['description' => 'The rule attribute.'."\n" + ."\n" + .'Valid value:'."\n" + ."\n" + .'- `Atime`: The last access time of a file.', 'type' => 'string', 'required' => false, 'example' => 'Atime', 'title' => ''], + 'Threshold' => ['description' => 'The rule threshold.'."\n" + ."\n" + .'Valid value:'."\n" + ."\n" + .'- If `Attribute` is set to `Atime`, this parameter specifies the number of days since a file was last accessed. The value must be between 1 and 365.', 'type' => 'string', 'required' => false, 'example' => '3', 'title' => ''], + ], + 'description' => 'A transition rule for the files.', + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'maxItems' => 1, + 'description' => 'The transition rule for files. You can specify only one transition rule.'."\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', + .'> This parameter is supported only for CPFS for AI file systems when `LifecyclePolicyType` is set to `Auto`.', 'required' => false, - 'example' => 'true', - 'default' => 'false', + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'ClientToken', + 'name' => 'RetrieveRules', 'in' => 'query', + 'style' => 'repeatList', '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" + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Attribute' => ['description' => 'The rule attribute. Valid value:'."\n" + ."\n" + .'- `RetrieveType`: The retrieval method.', 'type' => 'string', 'required' => false, 'example' => 'RetrieveType', 'title' => ''], + 'Threshold' => [ + 'description' => 'The retrieval method. Valid values:'."\n" + ."\n" + .'- If `Attribute` is set to `RetrieveType`:'."\n" + ."\n" + .' - `AfterVisit`: Retrieves data on a best-effort basis after a file is accessed. This value is valid only when `LifecyclePolicyType` is `Auto`.'."\n" + ."\n" + .' - `All`: Retrieves all data. This value is valid only when `LifecyclePolicyType` is `OnDemand`.', + 'enumValueTitles' => ['All' => '', 'AfterVisit' => ''], + 'type' => 'string', + 'required' => false, + 'example' => 'All', + 'title' => '', + ], + ], + 'description' => 'A retrieval rule for the files.', + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'maxItems' => 1, + 'description' => 'The retrieval rule for files. You can specify only one retrieval rule.'."\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', + .'> This parameter is supported only for CPFS for AI file systems.', 'required' => false, - 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', - 'maxLength' => 64, - 'minLength' => 1, + 'title' => '', + 'example' => '', ], ], ], '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', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the request succeeded.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- true: The request succeeded.'."\n" + ."\n" + .'- false: The request failed.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], ], + 'description' => 'The response object.', + 'title' => '', + 'example' => '', ], ], ], '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' => 'InvalidLifecyclePolicy.NotFound', 'errorMessage' => 'The specified LifecyclePolicy does not exist.', 'description' => 'The specified LifecyclePolicy does not exist.'], ], - [ - [ - '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.', - ], + 404 => [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => 'UpdateLifecyclePolicy', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - '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", + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\",\\n \\"Success\\": true\\n}","type":"json"}]', ], - 'DescribeProtocolMountTarget' => [ - 'summary' => 'Queries the export directories of a protocol service.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateRecycleBinAttribute' => [ + 'summary' => 'Modifies the retention period of data in the recycle bin of a file system.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'update', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '124960', - 'abilityTreeNodes' => [ - 'FEATUREnasQ7YV89', - 'FEATUREnas0GUIX5', - ], + 'chargeType' => 'paid', + 'abilityTreeCode' => '14458', + 'abilityTreeNodes' => ['FEATUREnas0A1PB1'], '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, - ], + 'schema' => ['description' => 'The ID of the file system.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1ca404****', 'title' => ''], ], [ - 'name' => 'ProtocolServiceIds', + 'name' => 'ReservedDays', 'in' => 'query', - 'schema' => [ - 'title' => '协议服务Id列表', - 'description' => 'Protocol service ID list'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ptc-123xxx', - ], + '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', 'title' => ''], ], ], 'responses' => [ @@ -20935,2084 +18700,2285 @@ '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', - ], - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'BC7C825C-5F65-4B56-BEF6-98C5****546E'], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingFileSystemId', - 'errorMessage' => 'FileSystemId is mandatory for this action.', - ], + ['errorCode' => 'IllegalCharacters', 'errorMessage' => 'The parameter contains illegal characters.', 'description' => 'The parameter contains illegal characters.'], + ['errorCode' => 'MissingFileSystemId', 'errorMessage' => 'FileSystemId is mandatory for this action.', 'description' => ''], ], - 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.', - ], + 403 => [ + ['errorCode' => 'OperationDenied.RecycleBinDisabled', 'errorMessage' => 'The operation is denied because the recycle bin is disabled.', 'description' => 'The operation is denied because the recycle bin is disabled.'], + ], + [ + ['errorCode' => 'InvalidFileSystem.NotFound', 'errorMessage' => 'The specified file system does not exist.', 'description' => 'The specified file system does not exist.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + '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", + 'changeSet' => [ + ['createdAt' => '2021-06-02T07:10:56.000Z', 'description' => 'Request parameters changed'], ], - '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', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateRecycleBinAttribute'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:UpdateRecycleBinAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], + ], ], + ], + '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' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '124960', - 'abilityTreeNodes' => [ - 'FEATUREnasQ7YV89', - 'FEATUREnas0GUIX5', - ], + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'paid', + 'abilityTreeCode' => '13988', + 'abilityTreeNodes' => ['FEATUREnasCF11NZ', 'FEATUREnasQ7YV89', 'FEATUREnas6KFX9N', '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****', - ], + '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' => 'extreme-0015****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Capacity', '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, - ], + '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', 'title' => ''], ], [ - 'name' => 'ProtocolServiceId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the protocol service.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ptc-197ed6a00f2b****', - ], + '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, 'default' => 'false', 'example' => 'true', 'title' => ''], ], [ - 'name' => 'ExportId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the export directory for the protocol service.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'exp-19abf5beab8d****', - ], + '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****', 'title' => ''], ], ], '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.', - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '98696EF0-1607-4E9D-B01D-F20930B6****', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MissingFileSystemId', - 'errorMessage' => 'FileSystemId is mandatory for this action.', - ], - [ - 'errorCode' => 'MissingExportId', - 'errorMessage' => 'ExportId is mandatory for this action.', - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"98696EF0-1607-4E9D-B01D-F20930B6****\\"\\n}","type":"json"}]', + 'title' => 'UpgradeFileSystem', + 'description' => '- 仅支持极速型NAS文件系统和CPFS文件系统扩容。'."\n" + .'- 通用型NAS按需自动扩容,无须使用本API。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-14T05:41:00.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpgradeFileSystem'], ], - 404 => [ - [ - 'errorCode' => 'InvalidFileSystem.NotFound', - 'errorMessage' => 'The specified file system does not exist.', - ], - [ - 'errorCode' => 'Resource.NotFound', - 'errorMessage' => 'The specified resource does not exist.', + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:UpgradeFileSystem', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], + 'additionalActions' => [], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'translator' => 'manual', + ], + ], + 'endpoints' => [ + ['regionId' => 'cn-wulanchabu', 'regionName' => 'China (Ulanqab)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.cn-wulanchabu.aliyuncs.com', 'endpoint' => 'nas.cn-wulanchabu.aliyuncs.com', 'vpc' => 'nas-vpc.cn-wulanchabu.aliyuncs.com'], + ['regionId' => 'cn-beijing', 'regionName' => 'China (Beijing)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.cn-beijing.aliyuncs.com', 'endpoint' => 'nas.cn-beijing.aliyuncs.com', 'vpc' => 'nas-vpc.cn-beijing.aliyuncs.com'], + ['regionId' => 'cn-shanghai', 'regionName' => 'China (Shanghai)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.cn-shanghai.aliyuncs.com', 'endpoint' => 'nas.cn-shanghai.aliyuncs.com', 'vpc' => 'nas-vpc.cn-shanghai.aliyuncs.com'], + ['regionId' => 'cn-hongkong', 'regionName' => 'China (Hong Kong)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.cn-hongkong.aliyuncs.com', 'endpoint' => 'nas.cn-hongkong.aliyuncs.com', 'vpc' => 'nas-vpc.cn-hongkong.aliyuncs.com'], + ['regionId' => 'cn-heyuan', 'regionName' => 'China (Heyuan)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.cn-heyuan.aliyuncs.com', 'endpoint' => 'nas.cn-heyuan.aliyuncs.com', 'vpc' => 'nas-vpc.cn-heyuan.aliyuncs.com'], + ['regionId' => 'cn-zhangjiakou', 'regionName' => 'China (Zhangjiakou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.cn-zhangjiakou.aliyuncs.com', 'endpoint' => 'nas.cn-zhangjiakou.aliyuncs.com', 'vpc' => 'nas-vpc.cn-zhangjiakou.aliyuncs.com'], + ['regionId' => 'cn-shenzhen', 'regionName' => 'China (Shenzhen)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.cn-shenzhen.aliyuncs.com', 'endpoint' => 'nas.cn-shenzhen.aliyuncs.com', 'vpc' => 'nas-vpc.cn-shenzhen.aliyuncs.com'], + ['regionId' => 'ap-northeast-2', 'regionName' => 'South Korea (Seoul)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.ap-northeast-2.aliyuncs.com', 'endpoint' => 'nas.ap-northeast-2.aliyuncs.com', 'vpc' => 'nas-vpc.ap-northeast-2.aliyuncs.com'], + ['regionId' => 'ap-northeast-1', 'regionName' => 'Japan (Tokyo)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.ap-northeast-1.aliyuncs.com', 'endpoint' => 'nas.ap-northeast-1.aliyuncs.com', 'vpc' => 'nas-vpc.ap-northeast-1.aliyuncs.com'], + ['regionId' => 'cn-chengdu', 'regionName' => 'China (Chengdu)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.cn-chengdu.aliyuncs.com', 'endpoint' => 'nas.cn-chengdu.aliyuncs.com', 'vpc' => 'nas-vpc.cn-chengdu.aliyuncs.com'], + ['regionId' => 'cn-guangzhou', 'regionName' => 'China (Guangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.cn-guangzhou.aliyuncs.com', 'endpoint' => 'nas.cn-guangzhou.aliyuncs.com', 'vpc' => 'nas-vpc.cn-guangzhou.aliyuncs.com'], + ['regionId' => 'ap-southeast-1', 'regionName' => 'Singapore', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.ap-southeast-1.aliyuncs.com', 'endpoint' => 'nas.ap-southeast-1.aliyuncs.com', 'vpc' => 'nas-vpc.ap-southeast-1.aliyuncs.com'], + ['regionId' => 'ap-southeast-3', 'regionName' => 'Malaysia (Kuala Lumpur)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.ap-southeast-3.aliyuncs.com', 'endpoint' => 'nas.ap-southeast-3.aliyuncs.com', 'vpc' => 'nas-vpc.ap-southeast-3.aliyuncs.com'], + ['regionId' => 'cn-huhehaote', 'regionName' => 'China (Hohhot)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.cn-huhehaote.aliyuncs.com', 'endpoint' => 'nas.cn-huhehaote.aliyuncs.com', 'vpc' => 'nas-vpc.cn-huhehaote.aliyuncs.com'], + ['regionId' => 'ap-southeast-5', 'regionName' => 'Indonesia (Jakarta)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.ap-southeast-5.aliyuncs.com', 'endpoint' => 'nas.ap-southeast-5.aliyuncs.com', 'vpc' => 'nas-vpc.ap-southeast-5.aliyuncs.com'], + ['regionId' => 'ap-southeast-6', 'regionName' => 'Philippines (Manila)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.ap-southeast-6.aliyuncs.com', 'endpoint' => 'nas.ap-southeast-6.aliyuncs.com', 'vpc' => 'nas-vpc.ap-southeast-6.aliyuncs.com'], + ['regionId' => 'ap-southeast-7', 'regionName' => 'Thailand (Bangkok)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.ap-southeast-7.aliyuncs.com', 'endpoint' => 'nas.ap-southeast-7.aliyuncs.com', 'vpc' => 'nas-vpc.ap-southeast-7.aliyuncs.com'], + ['regionId' => 'cn-hangzhou', 'regionName' => 'China (Hangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'nas.cn-hangzhou.aliyuncs.com', 'endpoint' => 'nas.cn-hangzhou.aliyuncs.com', 'vpc' => 'nas-vpc.cn-hangzhou.aliyuncs.com'], + ['regionId' => 'us-east-1', 'regionName' => 'US (Virginia)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'nas.us-east-1.aliyuncs.com', 'endpoint' => 'nas.us-east-1.aliyuncs.com', 'vpc' => 'nas-vpc.us-east-1.aliyuncs.com'], + ['regionId' => 'eu-west-1', 'regionName' => 'UK (London)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'nas.eu-west-1.aliyuncs.com', 'endpoint' => 'nas.eu-west-1.aliyuncs.com', 'vpc' => 'nas-vpc.eu-west-1.aliyuncs.com'], + ['regionId' => 'us-west-1', 'regionName' => 'US (Silicon Valley)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'nas.us-west-1.aliyuncs.com', 'endpoint' => 'nas.us-west-1.aliyuncs.com', 'vpc' => 'nas-vpc.us-west-1.aliyuncs.com'], + ['regionId' => 'eu-central-1', 'regionName' => 'Germany (Frankfurt)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'nas.eu-central-1.aliyuncs.com', 'endpoint' => 'nas.eu-central-1.aliyuncs.com', 'vpc' => 'nas-vpc.eu-central-1.aliyuncs.com'], + ['regionId' => 'me-east-1', 'regionName' => 'UAE (Dubai)', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'nas.me-east-1.aliyuncs.com', 'endpoint' => 'nas.me-east-1.aliyuncs.com', 'vpc' => 'nas-vpc.me-east-1.aliyuncs.com'], + ['regionId' => 'me-central-1', 'regionName' => 'Saudi Arabia (Riyadh)', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'nas.me-central-1.aliyuncs.com', 'endpoint' => 'nas.me-central-1.aliyuncs.com', 'vpc' => 'nas-vpc.me-central-1.aliyuncs.com'], + ['regionId' => 'cn-hangzhou-finance', 'regionName' => 'China East 1 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'nas.cn-hangzhou-finance.aliyuncs.com', 'endpoint' => 'nas.cn-hangzhou-finance.aliyuncs.com', 'vpc' => 'nas-vpc.cn-hangzhou-finance.aliyuncs.com'], + ['regionId' => 'cn-shenzhen-finance-1', 'regionName' => 'China South 1 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'nas.cn-shenzhen-finance-1.aliyuncs.com', 'endpoint' => 'nas.cn-shenzhen-finance-1.aliyuncs.com', 'vpc' => 'nas-vpc.cn-shenzhen-finance-1.aliyuncs.com'], + ['regionId' => 'cn-beijing-finance-1', 'regionName' => 'China North 2 Finance (Preview)', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'nas.cn-beijing-finance-1.aliyuncs.com', 'endpoint' => 'nas.cn-beijing-finance-1.aliyuncs.com', 'vpc' => 'nas-vpc.cn-beijing-finance-1.aliyuncs.com'], + ['regionId' => 'cn-shanghai-finance-1', 'regionName' => 'China East 2 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'nas.cn-shanghai-finance-1.aliyuncs.com', 'endpoint' => 'nas.cn-shanghai-finance-1.aliyuncs.com', 'vpc' => 'nas-vpc.cn-shanghai-finance-1.aliyuncs.com'], + ], + 'errorCodes' => [ + ['code' => 'AssumeRoleFailed', 'message' => 'Failed to assume the role.', 'http_code' => 400, 'description' => 'Role assumption failed.'], + ['code' => 'BadRequest', 'message' => 'BadRequest', 'http_code' => 400, 'description' => 'The request is invalid.'], + ['code' => 'Capacity.NotEqual.SnapshotFileSystem', 'message' => 'The set file system capacity is not equal to the snapshot source file system capacity.', 'http_code' => 400, 'description' => 'The set file system capacity is not equal to the snapshot source file system capacity.'], + ['code' => 'COMMODITY.INVALID_COMPONENT', 'message' => 'Order configuration parameters do not meet the verification conditions, please re-match the product.', 'http_code' => 400, 'description' => 'Order configuration parameters do not meet the verification conditions, please re-match the product.'], + ['code' => 'CustomTag.NumberExceed', 'message' => 'The maximum number of system tags for each resource is 20.', 'http_code' => 400, 'description' => 'The maximum number of user tags for each resource is 20.'], + ['code' => 'DataFlow.Bucket.AccessDenied', 'message' => 'Bucket access denied.', 'http_code' => 403, 'description' => 'Data flow authentication error.'], + ['code' => 'DataFlow.Bucket.NotExist', 'message' => 'Bucket does not exist.', 'http_code' => 404, 'description' => 'The bucket does not exist.'], + ['code' => 'DataFlow.Bucket.RegionUnmatched', 'message' => 'The bucket and file system are not in the same region.', 'http_code' => 400, 'description' => 'The bucket is inconsistent with the filesystem region.'], + ['code' => 'DescVscAttachInfo.InvalidParam', 'message' => 'DescVscAttachInfo param mountPointId, instanceIds, vscIds could only have one and must have one.', 'http_code' => 403, 'description' => 'mountPointId,instanceIds, there can only be one vscIds input, and there must be one.'], + ['code' => 'Disabled', 'message' => 'Your account does not open Nas Service yet or balance is insufficient.', 'http_code' => 423, 'description' => 'File Storage NAS has not been activated for your account, or your account balance is insufficient.'], + ['code' => 'DryRunOperation', 'message' => 'The request is validated with DryRun flag set.', 'http_code' => 400, 'description' => 'The request is validated with DryRun flag set.'], + ['code' => 'Duplicate.ResourceId', 'message' => 'The request contains duplicated ResourceId.', 'http_code' => 400, 'description' => 'ResourceId cannot be duplicated.'], + ['code' => 'Duplicate.TagKey', 'message' => 'The Tag.N.Key contains a duplicated key.', 'http_code' => 400, 'description' => 'The specified TagKey is duplicated.'], + ['code' => 'ENIRamRole.NotAuth', 'message' => 'The service you purchased requires authorization. Please authorize it first.', 'http_code' => 403, 'description' => 'The service you purchased requires authorization. Please authorize it first.'], + ['code' => 'EntityNotExist.ResourceGroup', 'message' => 'The resource group does not exist.', 'http_code' => 404, 'description' => 'The resource group does not exist.'], + ['code' => 'EntityNotExist.ResourceId', 'message' => 'The resource does not exist.', 'http_code' => 404, 'description' => 'The specified resource does not exist.'], + ['code' => 'Fileset.Path.Duplicate', 'message' => 'Fileset path is duplicate.', 'http_code' => 400, 'description' => 'Fileset path is duplicate.'], + ['code' => 'Fileset.Path.Exist', 'message' => 'Fileset already exist.', 'http_code' => 400, 'description' => 'Fileset path already exists.'], + ['code' => 'Fileset.Path.Nested', 'message' => 'Fileset path is nested.', 'http_code' => 400, 'description' => 'Fileset path is nested.'], + ['code' => 'Fileset.Path.NotExist', 'message' => 'Fileset.Path.Not.Exist.', 'http_code' => 400, 'description' => 'Fileset parent directory path does not exist.'], + ['code' => 'Fileset.Status.Invalid', 'message' => 'Fileset status is invalid.', 'http_code' => 400, 'description' => 'Invalid Fileset state.'], + ['code' => 'FileSystem.CountLimit.Reach', 'message' => 'FileSystem count limit.', 'http_code' => 400, 'description' => 'The maximum number of file systems has been reached.'], + ['code' => 'Forbbiden', 'message' => 'Permission Denied', 'http_code' => 403, 'description' => 'You do not have sufficient permissions.'], + ['code' => 'Forbbiden.Ram', 'message' => 'User not authorized to operate on the specified resource, or this API doesn\'t support RAM.', 'http_code' => 403, 'description' => 'The user is not authorized to operate the specified resource, or the API does not support RAM.'], + ['code' => 'Fset.IncorrectStatus', 'message' => 'The specified fset is in an incorrect status.', 'http_code' => 404, 'description' => 'The specified fileset is unavailable.'], + ['code' => 'GrayCondition.NotMet', 'message' => 'Your request does not meet the gray condition.', 'http_code' => 400, 'description' => 'Your request does not meet the grayscale criteria.'], + ['code' => 'IdempotentParameterMismatch', 'message' => 'The same client token was passed in to different parameters.', 'http_code' => 400, 'description' => 'The same client token was passed in to different parameters.'], + ['code' => 'IllegalCharacters', 'message' => 'The parameter contains illegal characters.', 'http_code' => 400, 'description' => 'The parameter contains illegal characters.'], + ['code' => 'Instance.IncorrectStatus', 'message' => 'The specified instance is in an incorrect status.', 'http_code' => 403, 'description' => 'The operation is not allowed in the current state.'], + ['code' => 'Insufficient.Inventory', 'message' => 'The inventory is insufficient now.', 'http_code' => 400, 'description' => 'The inventory is insufficient now.'], + ['code' => 'InsufficientInventory', 'message' => 'Current inventory is insufficient.', 'http_code' => 403, 'description' => 'Current inventory is insufficient.'], + ['code' => 'InvaildZone.NotExist', 'message' => 'The zone does not exist.', 'http_code' => 400, 'description' => 'The zone does not exist.'], + ['code' => 'InvalidAccessGroup.NotFound', 'message' => 'The specified AccessGroup does not exist.', 'http_code' => 404, 'description' => 'The permission group that you specified does not exist or has been deleted.'], + ['code' => 'InvalidAccessGroup.NotsupportedIPv6', 'message' => 'The access group does not support IPv6.', 'http_code' => 400, 'description' => 'The access group does not support IPv6.'], + ['code' => 'InvalidAccessGroupName.NotAccessRule', 'message' => 'There has no rule in access group.', 'http_code' => 404, 'description' => 'No rules exist in the specified permission group.'], + ['code' => 'InvalidAccessGroupName.NotFound', 'message' => 'The specified access group does not exist.', 'http_code' => 404, 'description' => 'The specified permission group does not exist.'], + ['code' => 'InvalidAccessPointId.NotFound', 'message' => 'The access point id does not exist.', 'http_code' => 404, 'description' => 'The specified APid does not exist.'], + ['code' => 'InvalidAccessRule.NotFound', 'message' => 'The specified AccessRule does not exist.', 'http_code' => 404, 'description' => 'The permission rule that you specified does not exist or has been deleted.'], + ['code' => 'InvalidAccountStatus.NotEnoughBalance', 'message' => 'Your account does not have enough balance.', 'http_code' => 403, 'description' => 'Your account balance is insufficient.'], + ['code' => 'InvalidAuthMethod.NotSupport', 'message' => 'This Api does not support this auth method.', 'http_code' => 400, 'description' => 'This API does not support this authentication method.'], + ['code' => 'InvalidAutoRefresh.TooManyAutoRefreshes', 'message' => 'The number of auto refreshes exceeds the limit.', 'http_code' => 404, 'description' => 'The number of specified automatic update configurations exceeds the limit.'], + ['code' => 'InvalidAutoSnapshotPolicyId.NotEmpty', 'message' => 'The specified auto snapshot policy also has a file system reference.', 'http_code' => 403, 'description' => 'The specified automatic snapshot policy has been referenced by the file system.'], + ['code' => 'InvalidAZone.NotFound', 'message' => 'The specified AZone inventory is insufficient.', 'http_code' => 404, 'description' => 'The specified zone is out of stock.'], + ['code' => 'InvalidAzone.NotSupport', 'message' => 'Invalid azone not support specified protocol or storage.', 'http_code' => 400, 'description' => 'The zone does not support the specified protocol type or storage specification.'], + ['code' => 'InvalidDataFlow.NotFound', 'message' => 'The specified data flow does not exist.', 'http_code' => 404, 'description' => 'The specified dataflow does not exist.'], + ['code' => 'InvalidDataType.NotSupported', 'message' => 'The data type is not supported.', 'http_code' => 404, 'description' => 'The specified data type is not supported.'], + ['code' => 'InvalidDescription.InvalidFormat', 'message' => 'Description format is invalid.', 'http_code' => 404, 'description' => 'The format of the specified description is invalid.'], + ['code' => 'InvalidEcsInstance.NotFound', 'message' => 'The specified EcsInstanceId does not exist.', 'http_code' => 404, 'description' => 'The specified ECS instance does not exist.'], + ['code' => 'InvalidEcsInstanceTypeWithNasProtocolType.NotMatch', 'message' => 'The ECS Linux instance can only mount NFS file system. The ECS Windows instance can only mount SMB file system.', 'http_code' => 403, 'description' => 'The ECS Linux instance can only mount NFS file system. The ECS Windows instance can only mount SMB file system.'], + ['code' => 'InvalidExportId.NotFound', 'message' => 'The specified ExportId does not exist.', 'http_code' => 404, 'description' => 'The specified protocol service export directory does not exist.'], + ['code' => 'InvalidFileId.NotDirectory', 'message' => 'The specified FileId is not directory.', 'http_code' => 403, 'description' => 'The specified FileId is not a directory.'], + ['code' => 'InvalidFileId.NotFound', 'message' => 'The specified FileId(%FileId) does not exist.', 'http_code' => 404, 'description' => 'The specified FileId (%FileId) does not exist.'], + ['code' => 'InvalidFileset.NotEmpty', 'message' => 'The specified fileset is not empty.', 'http_code' => 403, 'description' => 'The specified file set is not empty.'], + ['code' => 'InvalidFilesetId.NotFound', 'message' => 'Invalid FilesetId.', 'http_code' => 400, 'description' => 'Fileset does not exist'], + ['code' => 'InvalidFilesetPath.InvalidParameter', 'message' => 'Fileset path is invalid.', 'http_code' => 404, 'description' => 'The specified fileset path is invalid.'], + ['code' => 'InvalidFileSystem.AlreadyExisted', 'message' => 'The specified file system already exists.', 'http_code' => 403, 'description' => 'The specified file system already exists.'], + ['code' => 'InvalidFileSystem.NotFound', 'message' => 'The specified filesystem does not exist.', 'http_code' => 404, 'description' => 'The specified file system does not exist.'], + ['code' => 'InvalidFileSystem.NotFound', 'message' => 'The specified file system does not exist.', 'http_code' => 404, 'description' => 'The specified file system does not exist.'], + ['code' => 'InvalidFileSystem.NotsupportedIPv6', 'message' => 'The file system does not support IPv6.', 'http_code' => 400, 'description' => 'The file system does not support IPv6.'], + ['code' => 'InvalidFileSystemPath.InvalidCharacters', 'message' => 'The specified fileset path contains invalid characters.', 'http_code' => 404, 'description' => 'The specified file system path contains invalid characters.'], + ['code' => 'InvalidFileSystemPath.InvalidCharacters', 'message' => 'The specified idir parent path contains invalid characters.', 'http_code' => 404, 'description' => 'The specified file system path contains invalid characters.'], + ['code' => 'InvalidFileSystemPath.InvalidCharacters', 'message' => 'The specified filesystem path contains invalid characters.', 'http_code' => 403, 'description' => 'The specified file system path contains invalid characters.'], + ['code' => 'InvalidFileSystemPath.NotDirectory', 'message' => 'The specified idir parent path is not directory.', 'http_code' => 404, 'description' => 'The specified parent directory is not a directory.'], + ['code' => 'InvalidFileSystemPath.NotFound', 'message' => 'The specified idir parent path does not exist.', 'http_code' => 404, 'description' => 'The specified parent directory does not exist.'], + ['code' => 'InvalidFileSystemPath.ParentNotFound', 'message' => 'The specified parent path does not exist.', 'http_code' => 404, 'description' => 'The specified parent directory does not exist.'], + ['code' => 'InvalidFileSystemStatus.Ordering', 'message' => 'The filesystem is ordering now, please check it later.', 'http_code' => 400, 'description' => 'The file system is in production, please check later.'], + ['code' => 'InvalidFilesystemType.NotSupport', 'message' => 'The API operation does not support the file system type.', 'http_code' => 400, 'description' => 'The API operation does not support the file system type.'], + ['code' => 'InvalidFilesystemType.NotSupport', 'message' => 'This Api does not support this fileSystem type.', 'http_code' => 400, 'description' => 'The current interface does not support this type of file system.'], + ['code' => 'InvalidFilesystemVersion.NotSupport', 'message' => 'This Api does not support this fileSystem version.', 'http_code' => 400, 'description' => 'This Api does not support this fileSystem version.'], + ['code' => 'InvalidFilterName', 'message' => 'The specified parameter Filter.1.Name is invalid.', 'http_code' => 400, 'description' => 'The specified parameter Filter.1.Name is invalid.'], + ['code' => 'InvalidFilterParam', 'message' => 'The specified Filter.N.Key is invalid.', 'http_code' => 404, 'description' => 'The specified Filter.N.Key parameter is invalid.'], + ['code' => 'InvalidFilterValue', 'message' => 'The specified parameter Filter.1.Value is invalid.', 'http_code' => 400, 'description' => 'The specified parameter Filter.1.Value is invalid.'], + ['code' => 'InvalidFilterValue', 'message' => 'The specified Filter.N.Value is invalid.', 'http_code' => 404, 'description' => 'The specified Filter.N.Value parameter is invalid.'], + ['code' => 'InvalidFset.InUse', 'message' => 'Fset already used by other export.', 'http_code' => 403, 'description' => 'The specified fileset is already in use.'], + ['code' => 'InvalidFsetId.NotFound', 'message' => 'The specified Fileset ID does not exist.', 'http_code' => 404, 'description' => 'The specified fileset does not exist.'], + ['code' => 'InvalidIntlAccount.NotComplete', 'message' => 'Intl account is not complete.', 'http_code' => 400, 'description' => 'The basic information of the international station account is not complete.'], + ['code' => 'InvalidJobId.NotFound', 'message' => 'The specified JobId(%JobId) does not exist.', 'http_code' => 404, 'description' => 'The specified JobId (%JobId) does not exist.'], + ['code' => 'InvalidLifecyclePolicy.AlreadyExist', 'message' => 'The specified LifecyclePolicy already exists.', 'http_code' => 400, 'description' => 'The specified LifecyclePolicy already exists.'], + ['code' => 'InvalidLifecyclePolicy.NotFound', 'message' => 'The specified LifecyclePolicy does not exist.', 'http_code' => 400, 'description' => 'The specified LifecyclePolicy does not exist.'], + ['code' => 'InvalidLifecycleRetrieveJob.AlreadyExist', 'message' => 'The specified LifecycleRetrieveJob already exists.', 'http_code' => 400, 'description' => 'The specified LifecycleRetrieveJob already exists.'], + ['code' => 'InvalidLifecycleRetrieveJob.NotFound', 'message' => 'The specified LifecycleRetrieveJob does not exist.', 'http_code' => 404, 'description' => 'The specified LifecycleRetrieveJob does not exist.'], + ['code' => 'InvalidLifecycleRule.NotFound', 'message' => 'The specified LifecycleRule does not exist.', 'http_code' => 404, 'description' => 'The specified LifecycleRule does not exist.'], + ['code' => 'InvalidMountTarget.AlreadyExisted', 'message' => 'The specified mount target already exists.', 'http_code' => 403, 'description' => 'The specified mount target already exists.'], + ['code' => 'InvalidMountTarget.NotFound', 'message' => 'The specified MountTarget does not exist.', 'http_code' => 404, 'description' => 'The specified mount point does not exist or has been deleted.'], + ['code' => 'InvalidMountTarget.NotFound', 'message' => 'The specified mount target does not exist.', 'http_code' => 404, 'description' => 'The specified mount target does not exist.'], + ['code' => 'InvalidNetworkType.NotSupported', 'message' => 'The specified network type does not supported.', 'http_code' => 403, 'description' => 'The specified network type is not supported.'], + ['code' => 'InvalidNextToken', 'message' => 'The NextToken is invalid.', 'http_code' => 400, 'description' => 'The NextToken is invalid.'], + ['code' => 'InvalidOperation.DeletionProtection', 'message' => 'The operation is not allowed due to resource is protected by deletion protection.', 'http_code' => 403, 'description' => 'The instance has deletion protection enabled and cannot be released through the console or API.'], + ['code' => 'InvalidParam.DualStackMountTargetDomain', 'message' => 'The specified dual stack mount target domain does not exist.', 'http_code' => 400, 'description' => 'The specified dual stack mount point does not exist.'], + ['code' => 'InvalidParam.IPAddressIsBlank', 'message' => 'The IP address cannot be empty.', 'http_code' => 400, 'description' => 'The IP address cannot be empty.'], + ['code' => 'InvalidParam.IPv4AndIPv6MutuallyExclusive', 'message' => 'You cannot configure IPv4 and IPv6 at the same time.', 'http_code' => 400, 'description' => 'You cannot configure IPv4 and IPv6 at the same time.'], + ['code' => 'InvalidParam.Ipv6SourceCidrIp', 'message' => 'IPv6 address verification failed.', 'http_code' => 400, 'description' => 'IPv6 address verification failed.'], + ['code' => 'InvalidParam.MountTargetDomain', 'message' => 'The specified mount target domain does not exist.', 'http_code' => 400, 'description' => 'The specified mount target domain does not exist.'], + ['code' => 'InvalidParam.NotSupportBYOK', 'message' => 'The specified file system type does not support the BYOK encryption function.', 'http_code' => 400, 'description' => 'The specified file system type does not support the BYOK encryption function.'], + ['code' => 'InvalidParam.NotSupportBYOK', 'message' => 'Not support BYOK encrypt featrue.', 'http_code' => 400, 'description' => 'The specified file system type does not support user-managed key (KMS) encryption.'], + ['code' => 'InvalidParam.SourceCidrIp', 'message' => 'IPv4 address verification failed.', 'http_code' => 400, 'description' => 'IPv4 address verification failed.'], + ['code' => 'InvalidParam.StorageType', 'message' => 'StorageType does not support All.', 'http_code' => 400, 'description' => 'The storage specification does not support the input parameter All.'], + ['code' => 'InvalidParam.TooManyProtocolServiceIds', 'message' => 'Too many protocol service ids given.', 'http_code' => 400, 'description' => 'Too many protocol service IDs are specified in a single query.'], + ['code' => 'InvalidParameter', 'message' => 'The parameter is invalid.', 'http_code' => 400, 'description' => 'Illegal parameter.'], + ['code' => 'InvalidParameter.ChargeType', 'message' => 'The specified parameter ChargeType is not valid.', 'http_code' => 400, 'description' => 'The specified parameter ChargeType is not valid.'], + ['code' => 'InvalidParameter.ConflictVpcCidr', 'message' => 'The specified VPC CIDR conflicts with the server.', 'http_code' => 400, 'description' => 'The specified VPC CIDR conflicts with the server.'], + ['code' => 'InvalidParameter.DirPathNotExist', 'message' => 'The Dir Path does not exist', 'http_code' => 404, 'description' => 'The directory path does not exist.'], + ['code' => 'InvalidParameter.DomainName', 'message' => 'DomainName must end with .nas.aliyuncs.com', 'http_code' => 400, 'description' => 'The mount target address must end with .nas.aliyuncs.com.'], + ['code' => 'InvalidParameter.EcsLocalPath', 'message' => 'EcsLocalPath must start with /', 'http_code' => 400, 'description' => 'The local path of the ECS instance must start with a forward slash (/).'], + ['code' => 'InvalidParameter.InvalidFormat', 'message' => 'The EntryList format is invalid.', 'http_code' => 404, 'description' => 'The format of the specified EntryList does not meet the requirements.'], + ['code' => 'InvalidParameter.InvalidKmsKeyId', 'message' => 'The specified KMS key ID is invalid.', 'http_code' => 400, 'description' => 'The specified KMS key ID is invalid.'], + ['code' => 'InvalidParameter.InvalidMaxResults', 'message' => 'The specified MaxResults is invalid.', 'http_code' => 404, 'description' => 'The specified MaxResults is invalid.'], + ['code' => 'InvalidParameter.InvalidNextToken', 'message' => 'The specified NextToken is invalid.', 'http_code' => 404, 'description' => 'The specified NextToken is invalid.'], + ['code' => 'InvalidParameter.KMSKeyId.CMKNotEnabled', 'message' => 'The CMK needs to be enabled.', 'http_code' => 400, 'description' => 'The CMK needs to be enabled.'], + ['code' => 'InvalidParameter.KMSKeyId.KMSUnauthorized', 'message' => 'KMS is not authorized.', 'http_code' => 400, 'description' => 'KMS is not authorized.'], + ['code' => 'InvalidParameter.KmsKeyIdNotFound', 'message' => 'The specified KMS key ID does not exist.', 'http_code' => 400, 'description' => 'The specified KMS key ID does not exist.'], + ['code' => 'InvalidParameter.KmsServiceNotEnabled', 'message' => 'Key Management Service is not enabled.', 'http_code' => 400, 'description' => 'Key Management Service is not enabled.'], + ['code' => 'InvalidParameter.NasRemotePath', 'message' => 'NasRemotePath must start with /', 'http_code' => 400, 'description' => 'The NAS mount path must start with a forward slash (/).'], + ['code' => 'InvalidParameter.PathNotExist', 'message' => 'The specified path does not exist.', 'http_code' => 404, 'description' => 'The specified path does not exist.'], + ['code' => 'InvalidParameter.PathOrPaths', 'message' => 'Either Path or Paths.N must be specified.', 'http_code' => 400, 'description' => 'Either Path or Paths.N must be specified.'], + ['code' => 'InvalidParameter.PathsNumberExceed', 'message' => 'The maximum number of Path.N for this operation is 10.', 'http_code' => 400, 'description' => 'The maximum number of Path.N for this operation is 10.'], + ['code' => 'InvalidParameter.ProtocolType', 'message' => 'Specified parameter ProtocolType is not valid.', 'http_code' => 400, 'description' => 'The specified protocol type is not supported.'], + ['code' => 'InvalidParameter.QuotaNotExistOnPath', 'message' => 'The specified path does not exist.', 'http_code' => 404, 'description' => 'The directory path does not exist. Verify the path.'], + ['code' => 'InvalidParameter.QuotaPathDepthExceed', 'message' => 'The maximum number of Path depth for this operation is 8.', 'http_code' => 403, 'description' => 'The maximum number of path depth for this operation is 8.'], + ['code' => 'InvalidParameter.ResourceType', 'message' => 'The ResourceType is invalid.', 'http_code' => 400, 'description' => 'The ResourceType is invalid.'], + ['code' => 'InvalidParameter.SizeTooLarge', 'message' => 'The specified EntryList size exceeds 64 KB.', 'http_code' => 404, 'description' => 'The size of the specified EntryList exceeds 64 KB.'], + ['code' => 'InvalidParameter.SnapshotNotFound', 'message' => 'Invalid parameter, snapshot not found.', 'http_code' => 400, 'description' => 'Invalid parameter, snapshot not found.'], + ['code' => 'InvalidParameter.SortOrder', 'message' => 'Invalid sort order.', 'http_code' => 400, 'description' => 'Parameter SortOrder error.'], + ['code' => 'InvalidParameter.SortOrderField', 'message' => 'Invalid sort order field.', 'http_code' => 400, 'description' => 'Parameter SortOrderField error.'], + ['code' => 'InvalidParameter.StorageType', 'message' => 'The specified parameter StorageType is not valid.', 'http_code' => 400, 'description' => 'The specified parameter StorageType is not valid.'], + ['code' => 'InvalidParameter.StorageType', 'message' => 'The input parameter StorageType that is mandatory for processing this request is not supplied.', 'http_code' => 400, 'description' => 'The input parameter StorageType that is mandatory for processing this request is not supplied.'], + ['code' => 'InvalidParameter.TagKey', 'message' => 'The specified Tag.n.Key is invalid.', 'http_code' => 400, 'description' => 'The specified TagKey is invalid.'], + ['code' => 'InvalidParameter.TagValue', 'message' => 'The specified Tag.n.Value is invalid.', 'http_code' => 400, 'description' => 'The specified TagValue is invalid.'], + ['code' => 'InvalidParameter.VpcNotFound', 'message' => 'The specified VPC does not exist.', 'http_code' => 404, 'description' => 'The specified VPC does not exist.'], + ['code' => 'InvalidParameter.VpcVswitchMismatch', 'message' => 'Given vSwitch mismatch with given VPC.', 'http_code' => 404, 'description' => 'The specified VPC and vSwitch do not match.'], + ['code' => 'InvalidParameter.VswNotFound', 'message' => 'The specified vSwitch does not exist.', 'http_code' => 404, 'description' => 'The specified vSwitch does not exist.'], + ['code' => 'InvalidPath.InUse', 'message' => 'Path already used by other export.', 'http_code' => 404, 'description' => 'The path is already used by another export.'], + ['code' => 'InvalidProtocolService.NotFound', 'message' => 'The specified protocol service does not exist.', 'http_code' => 404, 'description' => 'The specified protocol service does not exist.'], + ['code' => 'InvalidProtocolSpec.NotSupported', 'message' => 'The specified protocol spec does not supported.', 'http_code' => 403, 'description' => 'The specified ProtocolSpec is not supported.'], + ['code' => 'InvalidProtocolType.NotSupported', 'message' => 'The specified protocol type does not supported.', 'http_code' => 403, 'description' => 'The specified protocol type is not supported.'], + ['code' => 'InvalidRamRole.NoPermission', 'message' => 'The specified RAM role does not have sufficient permission.', 'http_code' => 403, 'description' => 'The specified RAM role does not have sufficient permission.'], + ['code' => 'InvalidRamRole.NotExist', 'message' => 'The specified RAM role does not exist.', 'http_code' => 403, 'description' => 'The specified RAM role does not exist.'], + ['code' => 'InvalidRefreshInterval.OutOfBounds', 'message' => 'Refresh interval is out of bounds.', 'http_code' => 404, 'description' => 'The specified RefreshInterval is not within the valid range.'], + ['code' => 'InvalidRefreshPath.AlreadyExist', 'message' => 'The refresh path already exists.', 'http_code' => 404, 'description' => 'The specified auto-update directory already exists.'], + ['code' => 'InvalidRefreshPath.Duplicated', 'message' => 'Refresh path is duplicated.', 'http_code' => 404, 'description' => 'The path of the specified auto-update directory is duplicated.'], + ['code' => 'InvalidRefreshPath.InvalidParameter', 'message' => 'Refresh path is invalid.', 'http_code' => 404, 'description' => 'The path of the specified auto-update directory is invalid.'], + ['code' => 'InvalidRefreshPath.NotFound', 'message' => 'Refresh path does not exist.', 'http_code' => 404, 'description' => 'The specified auto-update directory does not exist.'], + ['code' => 'InvalidRefreshPath.TooManyPaths', 'message' => 'The number of refresh paths exceeds the limit.', 'http_code' => 404, 'description' => 'The number of queried auto-update directories exceeds the limit.'], + ['code' => 'InvalidRefreshPolicy.InvalidParameter', 'message' => 'Refresh policy is invalid.', 'http_code' => 404, 'description' => 'The auto-update policy is invalid.'], + ['code' => 'InvalidRegion.NotOpen', 'message' => 'The specified region is not open yet.', 'http_code' => 400, 'description' => 'The specified region is not open yet.'], + ['code' => 'InvalidRequest', 'message' => 'The request is invalid.', 'http_code' => 400, 'description' => 'Invalid request'], + ['code' => 'InvalidResourceId.NotFound', 'message' => 'The ResourceId does not exist.', 'http_code' => 400, 'description' => 'The specified ResourceId does not exist.'], + ['code' => 'InvalidSourceSecurityType.NotSupport', 'message' => 'The source security type is not supported.', 'http_code' => 404, 'description' => 'The security protection type of the specified source storage is not supported.'], + ['code' => 'InvalidSourceStorage.InvalidParameter', 'message' => 'Source storage has invalid parameters.', 'http_code' => 404, 'description' => 'The specified source storage path is invalid.'], + ['code' => 'InvalidSourceStorage.InvalidRegion', 'message' => 'Source storage region is invalid.', 'http_code' => 404, 'description' => 'The region of the source storage is abnormal. Check whether the source storage and the CPFS file system are in the same region.'], + ['code' => 'InvalidSourceStorage.NeedVersioning', 'message' => 'Source storage must enable versioning.', 'http_code' => 404, 'description' => 'The versioning feature must be enabled for the source storage.'], + ['code' => 'InvalidSourceStorage.NotFound', 'message' => 'Source storage is not found.', 'http_code' => 404, 'description' => 'The specified source storage does not exist.'], + ['code' => 'InvalidSourceStorage.NotSupport', 'message' => 'Source storage type is not supported.', 'http_code' => 404, 'description' => 'The type of the specified source storage is not supported.'], + ['code' => 'InvalidSourceStorage.PermissionDenied', 'message' => 'The source storage access permission is denied.', 'http_code' => 404, 'description' => 'You do not have the access permissions for the source storage. Check the service-linked role authorization and the access tags of the source storage.'], + ['code' => 'InvalidSourceStorage.PermissionDenied', 'message' => 'Source storage access permission denied.', 'http_code' => 404, 'description' => 'Passive storage access permissions, please check the SLR authorization, source storage access tag.'], + ['code' => 'InvalidSourceStorage.Unreachable', 'message' => 'Source storage cannot be accessed.', 'http_code' => 404, 'description' => 'The source storage is inaccessible.'], + ['code' => 'InvalidSrcTaskId.NotFound', 'message' => 'The SrcTaskId is not found.', 'http_code' => 404, 'description' => 'The specified SrcTaskId does not exist.'], + ['code' => 'InvalidSrcTaskId.TaskIdInvalid', 'message' => 'Source task ID is invalid.', 'http_code' => 404, 'description' => 'The specified task ID to be copied is invalid.'], + ['code' => 'InvalidSrcTaskId.TaskIdNotFound', 'message' => 'Source task ID is not found.', 'http_code' => 404, 'description' => 'The specified task ID to be copied does not exist.'], + ['code' => 'InvalidStatus', 'message' => 'Specified parameter Status is not valid.', 'http_code' => 400, 'description' => 'The specified parameter Status is invalid.'], + ['code' => 'InvalidStatus.NotSupported', 'message' => 'The specified protocol service status does not support.', 'http_code' => 403, 'description' => 'The specified protocol service cluster status is not supported.'], + ['code' => 'InvalidTargetFileId.NotDirectory', 'message' => 'The specified TargetFileId(%'."\n" + ."\n" + .'TargetFileId) is not directory.', 'http_code' => 403, 'description' => 'The specified TargetFileId (% TargetFileId) is not directory.'], + ['code' => 'InvalidTargetFileId.NotFound', 'message' => 'The specified TargetFileId(%TargetFileId) does not exist.', 'http_code' => 404, 'description' => 'The specified TargetFileId(%TargetFileId) does not exist.'], + ['code' => 'InvalidTaskAction.NotSupported', 'message' => 'The task action is not supported.', 'http_code' => 404, 'description' => 'The specified task type is not supported.'], + ['code' => 'InvalidTaskAction.PermissionDenied', 'message' => 'The task action is not allowed.', 'http_code' => 404, 'description' => 'The specified task type is not allowed, such as system replication.'], + ['code' => 'InvalidTaskId.NotFound', 'message' => 'The specified task ID does not exist.', 'http_code' => 404, 'description' => 'The specified data flow TaskId does not exist.'], + ['code' => 'InvalidThroughput.OutOfBounds', 'message' => 'Throughput is out of bounds.', 'http_code' => 404, 'description' => 'The specified Throughput is not within the valid range.'], + ['code' => 'InvalidVolumeId.NotSupportedFileSystemType', 'message' => 'The specified file system ID is invalid.', 'http_code' => 400, 'description' => 'The file system type is not supported.'], + ['code' => 'InvalidVpc.NotFound', 'message' => 'The specified Vpc is not found.', 'http_code' => 404, 'description' => 'The specified VPC does not exist. Create a VPC first.'], + ['code' => 'InvalidVpcId.ConflictVpcCidr', 'message' => 'Vpc cidr conflict with file system', 'http_code' => 404, 'description' => 'The specified VPC CIDR block overlaps with the file system VPC CIDR block.'], + ['code' => 'InvalidVpcId.CrossVpcNotSupport.', 'message' => 'Cross VPC not support.', 'http_code' => 403, 'description' => 'The protocol service and file system cannot be in different VPCs.'], + ['code' => 'InvalidVSwitch.Ipv6NotTurnOn', 'message' => 'The vSwitch you are currently using has not enabled the IPv6 function. Please enable this function first and try again.', 'http_code' => 400, 'description' => 'The vSwitch does not support IPv6. Enable IPv6 and try again.'], + ['code' => 'InvalidVswitch.NotFound', 'message' => 'The specified vSwitch does not exist.', 'http_code' => 404, 'description' => 'The specified switch does not exist.'], + ['code' => 'InvalidVSwitchId.IpNotEnough', 'message' => 'The number of the specified vSwitch IP address is insufficient.', 'http_code' => 400, 'description' => 'The available IP addresses within the CIDR block of the specified vSwitch are insufficient.'], + ['code' => 'InvalidVSwitchId.IpShortage', 'message' => 'The specified vSwitch ip shortage.', 'http_code' => 403, 'description' => 'The available IP addresses within the CIDR block of the specified vSwitch are insufficient.'], + ['code' => 'INVALID_INTL_ACCOUNT_NOT_COMPLETE', 'message' => 'Intl account is not complete.', 'http_code' => 400, 'description' => 'The basic information of the international station account has not been completed.'], + ['code' => 'KMS_Service.NotOpen', 'message' => 'KMS service not open.', 'http_code' => 400, 'description' => 'The KMS service is not enabled.'], + ['code' => 'MissingAccessGroupName', 'message' => 'AccessGroupName is mandatory for this action.', 'http_code' => 400, 'description' => 'No permission group is specified.'], + ['code' => 'MissingArgument', 'message' => 'Missing argument(volume).', 'http_code' => 400, 'description' => 'Missing file system ID.'], + ['code' => 'MissingDataFlowId', 'message' => 'DataFlowId is mandatory for this action.', 'http_code' => 400, 'description' => 'The DataFlowId parameter is not specified.'], + ['code' => 'MissingDataType', 'message' => 'DataType is mandatory for this action.', 'http_code' => 400, 'description' => 'The DataType parameter is not specified.'], + ['code' => 'MissingEntryList', 'message' => 'EntryList is mandatory for this action.', 'http_code' => 400, 'description' => 'The EntryList parameter is not specified.'], + ['code' => 'MissingExportId', 'message' => 'ExportId is mandatory for this action.', 'http_code' => 400, 'description' => 'The ExportId parameter is not specified.'], + ['code' => 'MissingFileId', 'message' => 'FileId is mandatory for this action.', 'http_code' => 400, 'description' => 'FileId is mandatory for this action. '], + ['code' => 'MissingFileSystemId', 'message' => 'FileSystemId is mandatory for this action.', 'http_code' => 400, 'description' => 'The FileSystemId parameter is not specified.'], + ['code' => 'MissingFileSystemPath', 'message' => 'FileSystemPath is mandatory for this action.', 'http_code' => 400, 'description' => 'The FileSystemPath parameter is missing.'], + ['code' => 'MissingFsetId', 'message' => 'FsetId is mandatory for this action.', 'http_code' => 400, 'description' => 'The Fileset ID parameter is not specified.'], + ['code' => 'MissingIdirId', 'message' => 'IdirId is mandatory for this action.', 'http_code' => 400, 'description' => 'The IdirId parameter is missing.'], + ['code' => 'MissingJobId', 'message' => 'JobId is mandatory for this action.', 'http_code' => 400, 'description' => 'JobId is mandatory for this action.'], + ['code' => 'MissingParameter', 'message' => 'Missing parameter.', 'http_code' => 400, 'description' => 'Missing parameter.'], + ['code' => 'MissingParameter.AccessGroupName', 'message' => 'You must specify AccessGroupName when you create a standard or extreme file system mount target.', 'http_code' => 400, 'description' => 'You must specify AccessGroupName when you create a standard or extreme file system mount target.'], + ['code' => 'MissingParameter.Capacity', 'message' => 'The input parameter Capacity that is mandatory for processing this request is not supplied.', 'http_code' => 400, 'description' => 'The input parameter Capacity that is mandatory for processing this request is not supplied.'], + ['code' => 'MissingParameter.Duration', 'message' => 'The input parameter Duration that is mandatory for processing this request is not supplied.', 'http_code' => 400, 'description' => 'The input parameter Duration that is mandatory for processing this request is not supplied.'], + ['code' => 'MissingParameter.KmsKeyId', 'message' => 'When parameter EncryptType equals 2, the parameter KmsKeyId is mandatory for your request.', 'http_code' => 400, 'description' => 'When parameter EncryptType equals 2, the parameter KmsKeyId is mandatory for your request.'], + ['code' => 'MissingParameter.RegionId', 'message' => 'Parameter Region Id in endpoint is mandatory for this action.', 'http_code' => 400, 'description' => 'Add RegionId field information to the domain name.'], + ['code' => 'MissingParameter.ResourceIdOrTag', 'message' => 'Either ResourceId or Tag must be specified.', 'http_code' => 400, 'description' => 'Either ResourceId or Tag must be specified.'], + ['code' => 'MissingParameter.ResourceIds', 'message' => 'You must specify ResourceIds.', 'http_code' => 400, 'description' => 'You must specify ResourceId.'], + ['code' => 'MissingParameter.VpcId', 'message' => 'The input parameter VpcId that is mandatory for processing this request is not supplied.', 'http_code' => 400, 'description' => 'The input parameter VpcId that is mandatory for processing this request is not supplied.'], + ['code' => 'MissingParameter.ZoneId', 'message' => 'Parameter ZoneId is mandatory for your request.', 'http_code' => 400, 'description' => 'The zoneId parameter is required in the request.'], + ['code' => 'MissingParentPath', 'message' => 'IdirParentPath is mandatory for this action.', 'http_code' => 400, 'description' => 'The IdirParentPath parameter is missing.'], + ['code' => 'MissingProtocolServiceId', 'message' => 'ProtocolServiceId is mandatory for this action.', 'http_code' => 400, 'description' => 'The ProtocolServiceId parameter is not specified.'], + ['code' => 'MissingSourceStorage', 'message' => 'SourceStorage is mandatory for this action.', 'http_code' => 400, 'description' => 'The SourceStorage parameter is not specified.'], + ['code' => 'MissingSrcTaskId', 'message' => 'SrcTaskId is mandatory for this action.', 'http_code' => 400, 'description' => 'The SrcTaskId parameter is not specified.'], + ['code' => 'MissingTargetFileId', 'message' => 'TargetFileId is mandatory for this action.', 'http_code' => 400, 'description' => 'TargetFileId is mandatory for this action.'], + ['code' => 'MissingTaskAction', 'message' => 'TaskAction is mandatory for this action.', 'http_code' => 400, 'description' => 'The parameter TaskAction is required in the request.'], + ['code' => 'MissingTaskId', 'message' => 'TaskId is mandatory for this action.', 'http_code' => 400, 'description' => 'The TaskId parameter is not specified.'], + ['code' => 'MissingThroughput', 'message' => 'Throughput is mandatory for this action.', 'http_code' => 400, 'description' => 'The Throughput parameter is not specified.'], + ['code' => 'MissingVpcId', 'message' => 'VpcId is mandatory for this action.', 'http_code' => 400, 'description' => 'The VPC ID parameter is not specified.'], + ['code' => 'MissingVSwitchId', 'message' => 'vSwitchId is mandatory for this action.', 'http_code' => 400, 'description' => 'The vSwitch ID parameter is not specified.'], + ['code' => 'MntPathConflict.InvalidParam', 'message' => 'FilesetId and Path must and can only be specified one.', 'http_code' => 403, 'description' => 'You must specify either Fileset or Path, but not both.'], + ['code' => 'NoPermission.SystemTag', 'message' => 'You are not authorized to operate the system tag. The product code is invalid.', 'http_code' => 403, 'description' => 'You are not authorized to operate the system tag. The product code is invalid.'], + ['code' => 'NotFound', 'message' => 'The specified resource does not exist - Cluster not found.', 'http_code' => 404, 'description' => 'The specified resource does not exist-cluster not found.'], + ['code' => 'NotImplemented', 'message' => 'This API is not supported.', 'http_code' => 400, 'description' => 'This API is not supported.'], + ['code' => 'NumberExceed.ResourceIds', 'message' => 'The maximum number of ResourceIds is exceeded. The maximum is 50.', 'http_code' => 400, 'description' => 'The maximum number of resource ID is exceeded. The maximum is 50.'], + ['code' => 'NumberExceed.Tags', 'message' => 'The maximum number of Tags is exceeded. The maximum is 20.', 'http_code' => 400, 'description' => 'The maximum number of Tags is exceeded. The maximum is 20.'], + ['code' => 'OpenNasService.GetCommodityInfoFail', 'message' => 'Fail to get commodity info for open nas service.', 'http_code' => 500, 'description' => 'unable to obtain the product information of the open nas service.'], + ['code' => 'OperationDenied.AccessPointCountsExceeded', 'message' => 'The maxium number of access point has reached its limits.', 'http_code' => 403, 'description' => 'The access point of the current file system has reached the upper limit.'], + ['code' => 'OperationDenied.AlreadyExists', 'message' => 'The operation is denied due to IdirName already exists in parent path.', 'http_code' => 403, 'description' => 'The directory name already exists in the parent directory.'], + ['code' => 'OperationDenied.AutoRefreshNotSupport', 'message' => 'The operation is denied. Auto refresh is not supported.', 'http_code' => 403, 'description' => 'The file system does not support automatic updates.'], + ['code' => 'OperationDenied.Conflict', 'message' => 'The operation is in conflict with (% JobId). Please try again later.', 'http_code' => 403, 'description' => 'The operation is in conflict with (% JobId). Please try again later.'], + ['code' => 'OperationDenied.ConflictOperation', 'message' => 'The operation is denied due to a conflict with an ongoing operation.', 'http_code' => 403, 'description' => 'The dataflow cannot be created because it conflicts with the current file system operation.'], + ['code' => 'OperationDenied.CrossVPCExccedLimit', 'message' => 'Cross vpc mount exceed limit.', 'http_code' => 403, 'description' => 'The number of cross-VPC mount targets has exceeded the limit.'], + ['code' => 'OperationDenied.CrossVPCExceedLimit', 'message' => 'Cross vpc mount exceed limit.', 'http_code' => 403, 'description' => 'The number of cross-VPC exported directories has exceeded the upper limit of the current protocol service specifications.'], + ['code' => 'OperationDenied.DataFlowNotSupported', 'message' => 'The operation is not supported.', 'http_code' => 403, 'description' => 'The file system does not support dataflow.'], + ['code' => 'OperationDenied.DependBucketTag', 'message' => 'The operation is denied. The OSS Bucket tag cpfs-dataflow is missing.', 'http_code' => 403, 'description' => 'Failed to create the dataflow because the OSS bucket does not have the cpfs-dataflow tag.'], + ['code' => 'OperationDenied.DependencyViolation', 'message' => 'The operation is denied due to dependancy violation.', 'http_code' => 403, 'description' => 'The conditions for this operation are not met.'], + ['code' => 'OperationDenied.DependFset', 'message' => 'The operation is denied due to invalid fileset state.', 'http_code' => 403, 'description' => 'Failed to create the dataflow because the fileset is in an abnormal state.'], + ['code' => 'OperationDenied.DependMountpoint', 'message' => 'The operation is denied because no mount point is found.', 'http_code' => 403, 'description' => 'Failed to create the dataflow because the file system does not have a mount target.'], + ['code' => 'OperationDenied.DirQuotaAssociated', 'message' => 'The specified FileSystem has DirQuota associated.', 'http_code' => 403, 'description' => 'The quota of the file system has been set. Please delete the quota first and then delete the file system.'], + ['code' => 'OperationDenied.EncryptedFileSystemNotSupportedForLifecycle', 'message' => 'The encrypted file system does not support lifecycle.', 'http_code' => 400, 'description' => 'The encrypted file system does not support lifecycle.'], + ['code' => 'OperationDenied.FilesetNotSupported', 'message' => 'The operation is not supported.', 'http_code' => 403, 'description' => 'The file system does not support Fileset.'], + ['code' => 'OperationDenied.FileSystemNotSupportedForLifecycle', 'message' => 'The file system does not support lifecycle.', 'http_code' => 400, 'description' => 'The file system does not support lifecycle.'], + ['code' => 'OperationDenied.FileSystemNotSupportedForThisOperation', 'message' => 'The FileSystem does not support this operation.', 'http_code' => 400, 'description' => 'The file system does not support this operation.'], + ['code' => 'OperationDenied.FsetAlreadyInUse', 'message' => 'The Fset is already bound to another data flow.', 'http_code' => 403, 'description' => 'The Fset is already in use.'], + ['code' => 'OperationDenied.FsetNotEmpty', 'message' => 'The operation is denied due to fileset is not empty.', 'http_code' => 403, 'description' => 'Fileset is not empty.'], + ['code' => 'OperationDenied.InvalidMntStatus', 'message' => 'The operation is denied due to invalid protocol mount target status.', 'http_code' => 403, 'description' => 'The current state of the protocol service exported directory does not support this operation.'], + ['code' => 'OperationDenied.InvalidNextToken', 'message' => 'The specified NextToken is invalid.', 'http_code' => 400, 'description' => 'The specified NextToken is invalid.'], + ['code' => 'OperationDenied.InvalidPtcStatus', 'message' => 'The operation is denied due to invalid protocol service status.', 'http_code' => 403, 'description' => 'The current state of the protocol service does not support this operation.'], + ['code' => 'OperationDenied.InvalidState', 'message' => 'The operation is not permitted when the status is processing.', 'http_code' => 403, 'description' => 'The operation is not permitted when the status is processing.'], + ['code' => 'OperationDenied.InvalidState', 'message' => 'The operation is denied due to invalid file system state.', 'http_code' => 403, 'description' => 'The current state of the file system does not support this operation.'], + ['code' => 'OperationDenied.KeyDoubleScope', 'message' => 'The same key can only have one scope.', 'http_code' => 403, 'description' => 'The same key can only have one scope.'], + ['code' => 'OperationDenied.KeyValueNotNull', 'message' => 'The key value cannot be null.', 'http_code' => 403, 'description' => 'You must specify tag value.'], + ['code' => 'OperationDenied.LifecyclePolicyAssociated', 'message' => 'The specified FileSystem has LifecyclePolicy associated.', 'http_code' => 400, 'description' => 'The specified file system has a life cycle policy associated. Please delete the life cycle policy first and then delete the file system.'], + ['code' => 'OperationDenied.LifecyclePolicyCountLimitExceeded', 'message' => 'The maximum number of LifecyclePolicies is exceeded.', 'http_code' => 400, 'description' => 'The maximum number of LifecyclePolicies is exceeded.'], + ['code' => 'OperationDenied.LifecycleRecycleBinTieringJobAssociated', 'message' => 'The specified FileSystem has LifecycleRecycleBinTieringJob associated.', 'http_code' => 400, 'description' => 'The recycle bin background task is in use.'], + ['code' => 'OperationDenied.LifecycleRetrieveJobCountLimitExceeded', 'message' => 'The maximum number of LifecycleRetrieveJobs is exceeded.', 'http_code' => 400, 'description' => 'The maximum number of LifecycleRetrieveJobs is exceeded.'], + ['code' => 'OperationDenied.LifecycleRetrieveJobEnded', 'message' => 'The specified LifecycleRetrieveJob has already ended.', 'http_code' => 400, 'description' => 'The specified LifecycleRetrieveJob has already ended.'], + ['code' => 'OperationDenied.LifecycleRetrieveJobNotFailed', 'message' => 'The specified LifecycleRetrieveJob has not failed.', 'http_code' => 400, 'description' => 'The specified LifecycleRetrieveJob has not failed.'], + ['code' => 'OperationDenied.MountPointExists', 'message' => 'The operation is denied due to mount point exists.', 'http_code' => 403, 'description' => 'The operation was denied because a mount point exists.'], + ['code' => 'OperationDenied.MountTargetExceedLimit', 'message' => 'The maximum number of mount target in the specified file system is exceeded.', 'http_code' => 403, 'description' => 'The maximum number of mount target in the specified file system is exceeded.'], + ['code' => 'OperationDenied.MountTargetNotEmpty', 'message' => 'There are still MountTarget(s) on the specified FileSystem.', 'http_code' => 403, 'description' => 'There are still mount points on the specified file system.'], + ['code' => 'OperationDenied.NestedDir', 'message' => 'The operation is denied due to nested directory.', 'http_code' => 403, 'description' => 'The automatic update configuration cannot be created because nested directories exist.'], + ['code' => 'OperationDenied.NoMountTargetQuota', 'message' => 'No mount target quota on this protocol service.', 'http_code' => 403, 'description' => 'The export directory quota for the protocol service is exhausted.'], + ['code' => 'OperationDenied.NoProtocolServiceQuota', 'message' => 'No protocol service quota.', 'http_code' => 403, 'description' => 'The protocol service quota for the file system is exhausted.'], + ['code' => 'OperationDenied.NoStock', 'message' => 'The operation is denied due to no stock.', 'http_code' => 404, 'description' => 'The file system is out of stock.'], + ['code' => 'OperationDenied.NotServiceAccount', 'message' => 'Only service account is authorized to perform the operation.', 'http_code' => 403, 'description' => 'Only service account is authorized to perform the operation.'], + ['code' => 'OperationDenied.NotSupport', 'message' => 'The operation is not supported.', 'http_code' => 403, 'description' => 'The operation is not supported.'], + ['code' => 'OperationDenied.NotSupported', 'message' => 'The operation is denied due to not supported.', 'http_code' => 403, 'description' => 'The file system does not support the protocol service.'], + ['code' => 'OperationDenied.NotSupportPaths.N', 'message' => 'Your request does not meet the gray condition. The Paths.N parameter is not supported.', 'http_code' => 403, 'description' => 'Your request does not meet the gray condition. The Paths.N parameter is not supported.'], + ['code' => 'OperationDenied.ProtocolServiceExceedLimit', 'message' => 'The protocol service amount exceed file system limit.', 'http_code' => 403, 'description' => 'The number of protocol services exceeds the file system limit.'], + ['code' => 'OperationDenied.QuotaSettingCountLimitExceeded', 'message' => 'The filesystem quota setting count already reach limit.', 'http_code' => 403, 'description' => 'The filesystem quota setting count already reach limit.'], + ['code' => 'OperationDenied.RecycleBinDisabled', 'message' => 'The operation is denied because the recycle bin is disabled.', 'http_code' => 403, 'description' => 'The operation is denied because the recycle bin is disabled.'], + ['code' => 'OperationDenied.RecycleBinEnabled', 'message' => 'The recycle bin is already enabled.', 'http_code' => 403, 'description' => 'The recycle bin is already enabled.'], + ['code' => 'OperationDenied.Standard.UpgradeNotNeed', 'message' => 'Standard NAS increases capacity on demand, no need to upgrade manually.', 'http_code' => 403, 'description' => 'General purpose NAS increases capacity on demand without manual upgrades.'], + ['code' => 'OperationDenied.TooManyDepth', 'message' => 'The operation is denied due to Idirs path too deep.', 'http_code' => 403, 'description' => 'The file system path depth exceeds the threshold.'], + ['code' => 'OperationDenied.TooManyDepth', 'message' => 'The operation is denied due to Fsets path too deep.', 'http_code' => 403, 'description' => 'The file system path depth exceeds the threshold.'], + ['code' => 'OperationDenied.TooManyDepths', 'message' => 'The operation is denied due to Fileset path too deep.', 'http_code' => 403, 'description' => 'The fileset directory path depth exceeds the threshold.'], + ['code' => 'OperationDenied.TooManyFilesets', 'message' => 'The operation is denied due to too many fileset in filesystem.', 'http_code' => 403, 'description' => 'The number of fileset directories in the file system exceeds the threshold.'], + ['code' => 'OperationDenied.TooManyIdirs', 'message' => 'The operation is denied due to too many Idirs in filesystem.', 'http_code' => 403, 'description' => 'The number of intelligent directories in the file system exceeds the threshold.'], + ['code' => 'OperationDenied.TooManyRunningJobs', 'message' => 'The maximum number of running job is one. Please try again later.', 'http_code' => 403, 'description' => 'The maximum number of running job is one. Please try again later.'], + ['code' => 'OperationNotSupport.SubscriptionCommodityCanNotDelete', 'message' => 'The operation is not supported, as the filesystem is subscription commodity.', 'http_code' => 403, 'description' => 'This operation is not supported because the file system is a subscription commodity.'], + ['code' => 'ORDER.NO_REAL_NAME_AUTHENTICATION', 'message' => 'You have not passed real-name verification, please go to Account Management to complete real-name verification.', 'http_code' => 403, 'description' => 'You have not passed real-name verification, please go to Account Management to complete real-name verification.'], + ['code' => 'ORDER.OPEND', 'message' => 'You have already purchased the NAS service. Go to the NAS console to start using it.', 'http_code' => 400, 'description' => 'You have already activated the NAS service. Go to the console to start using it.'], + ['code' => 'ORDER.OPEND', 'message' => 'You have already open the service. Go to the console to start using it.', 'http_code' => 400, 'description' => 'you have activated the nas service.'], + ['code' => 'Path.ContainSymlink', 'message' => 'the specified path contains symbol link.', 'http_code' => 400, 'description' => 'The specified path contains a soft connection.'], + ['code' => 'PathNotExistInFileSystem.InvalidParam', 'message' => 'Given path does not exist in file system.', 'http_code' => 404, 'description' => 'The specified path does not exist in the file system.'], + ['code' => 'PermissionDenied.CapacityTooLow', 'message' => 'Capacity of file system too low to subscribe protocol service.', 'http_code' => 403, 'description' => 'The protocol service cannot be enabled when the capacity is less than 10,800 GiB.'], + ['code' => 'PermissionDenied.CLThroughputInvalid', 'message' => 'Throughput of caching protocol service is invalid.', 'http_code' => 403, 'description' => 'The bandwidth of the cache-type protocol service is invalid.'], + ['code' => 'PermissionDenied.ThroughputExceed', 'message' => 'Throughput of protocol service must less than throughput of file system.', 'http_code' => 403, 'description' => 'The bandwidth of the protocol service cannot exceed the bandwidth of the file system.'], + ['code' => 'PermissionDenied.ThroughputInvalid', 'message' => 'Standard protocol service should not specified throughput.', 'http_code' => 403, 'description' => 'The general-purpose protocol service does not allow you to specify the service bandwidth.'], + ['code' => 'PermissionDenied.ThroughputTooSmall', 'message' => 'Throughput of protocol service too small.', 'http_code' => 403, 'description' => 'The bandwidth of the protocol service is too small to meet the activation requirements.'], + ['code' => 'PERMISSION_DENIED', 'message' => 'RAM permission check failed.', 'http_code' => 404, 'description' => 'RAM permission check failed.'], + ['code' => 'Protocol.MustSpecified', 'message' => 'The specified Protocol is not valid.', 'http_code' => 400, 'description' => 'The specified Protocol is not valid.'], + ['code' => 'Quota.Exceed.Limit', 'message' => 'Quota exceed limit.', 'http_code' => 400, 'description' => 'The quota is below the Fileset limit.'], + ['code' => 'Quota.Invalid.Limit', 'message' => 'Quota limit is invalid.', 'http_code' => 400, 'description' => 'Invalid quota.'], + ['code' => 'Region.NotSupported', 'message' => 'The specified Region is not supported for this API now.', 'http_code' => 400, 'description' => 'The current region does not support this function.'], + ['code' => 'RegionId.ApiNotSupported', 'message' => 'The api is not supported in this region.', 'http_code' => 400, 'description' => 'API calls are not supported in the specified region. Check whether the RegionId parameter values are correct.'], + ['code' => 'RepeatListParameter.TooManyRepeatListItems', 'message' => 'You can only specify one repeat list item for the parameter Filter.', 'http_code' => 400, 'description' => 'You can only specify one repeat list item for the parameter Filter.'], + ['code' => 'RequestAccepted', 'message' => 'The request has been accepted by the server.', 'http_code' => 202, 'description' => 'The request has been accepted by the server.'], + ['code' => 'Resource.Check.Fail', 'message' => 'Resource check failed.', 'http_code' => 400, 'description' => 'Resource verification failed.'], + ['code' => 'Resource.Exceed.Limit', 'message' => 'Resource exceed limit.', 'http_code' => 400, 'description' => 'The number of resources exceeds the limit.'], + ['code' => 'Resource.NotFound', 'message' => 'The specified resource does not exist.', 'http_code' => 404, 'description' => 'The specified resource does not exist.'], + ['code' => 'Resource.OutOfStock', 'message' => 'The inventory of the specified zone is insufficient.', 'http_code' => 403, 'description' => 'The inventory of the specified zone is insufficient.'], + ['code' => 'ResultOutputTooLong', 'message' => 'The maximum length of the mount info result output is exceeded.', 'http_code' => 400, 'description' => 'The mount detail information is too long.'], + ['code' => 'StorageType.MustSpecified', 'message' => 'StorageType is invalid.', 'http_code' => 400, 'description' => 'Invalid storage type.'], + ['code' => 'SubAccount.NoEncryptionSLRPermission', 'message' => 'The RAM user does not have the permission to create service linked role AliyunServiceRoleForNasEncryption. Please authorize the RAM user the permission ram:CreateServiceLinkedRole.', 'http_code' => 400, 'description' => 'The RAM user does not have the permission to create service linked role AliyunServiceRoleForNasEncryption. Please authorize the RAM user the permission ram:CreateServiceLinkedRole.'], + ['code' => 'SubAccount.NoExtremeSLRPermission', 'message' => 'The RAM user does not have the permission to create service linked role AliyunServiceRoleForNasExtreme. Please authorize the RAM user the permission ram:CreateServiceLinkedRole.', 'http_code' => 400, 'description' => 'The RAM user does not have the permission to create service linked role AliyunServiceRoleForNasExtreme. Please authorize the RAM user the permission ram:CreateServiceLinkedRole.'], + ['code' => 'SubAccount.NoLogSLRPermission', 'message' => 'The RAM user does not have the permission to create service linked role AliyunServiceRoleForNasLogDelivery. Please authorize the RAM user the permission ram:CreateServiceLinkedRole.', 'http_code' => 400, 'description' => 'The RAM user does not have the permission to create service linked role AliyunServiceRoleForNasLogDelivery. Please authorize the RAM user the permission ram:CreateServiceLinkedRole.'], + ['code' => 'SubAccount.NoNasEcsHandlerSLRPermission', 'message' => 'The RAM account cannot create the AliyunServiceRoleForNasEcsHandler service linked role. The ram:CreateServiceLinkedRole permission is required.', 'http_code' => 400, 'description' => 'The RAM user does not have the permission to create the AliyunServiceRoleForNasEcsHandler service-linked role. The ram:CreateServiceLinkedRole permission is required.'], + ['code' => 'SubAccount.NoSLRPermission', 'message' => 'The RAM account cannot create the service linked role. The ram:CreateServiceLinkedRole permission is required.', 'http_code' => 400, 'description' => 'The RAM user does not have the permission to create the service-linked role. The ram:CreateServiceLinkedRole permission is required.'], + ['code' => 'SubAccount.NoStandardSLRPermission', 'message' => 'The RAM user does not have the permission to create service linked role AliyunServiceRoleForNasStandard. Please authorize the RAM user the permission ram:CreateServiceLinkedRole.', 'http_code' => 400, 'description' => 'The RAM user does not have the permission to create service linked role AliyunServiceRoleForNasStandard. Please authorize the RAM user the permission ram:CreateServiceLinkedRole.'], + ['code' => 'SYSTEM.SALE_VALIDATE_NO_SPECIFIC_CODE_FAILED', 'message' => 'RAM user authentication does not pass, contact the administrator to add permissions.', 'http_code' => 400, 'description' => 'RAM user authentication does not pass, contact the administrator to add permissions.'], + ['code' => 'SystemTag.NumberExceed', 'message' => 'The maximum number of system tags for each resource is 50.', 'http_code' => 400, 'description' => 'The maximum number of system tags for each resource is 50.'], + ['code' => 'Throttling.Api', 'message' => 'Request was denied due to api flow control.', 'http_code' => 429, 'description' => 'The request is throttled.'], + ['code' => 'UserDisabled', 'message' => 'NAS has not been activated for your account, or your account does not have sufficient balance.', 'http_code' => 403, 'description' => 'File Storage NAS has not been activated for your account, or your account balance is insufficient.'], + ['code' => 'VerifyStock.Failed', 'message' => 'The inventory of the specified zone is insufficient.', 'http_code' => 403, 'description' => 'Insufficient stock in designated area.'], + ['code' => 'VolumeStatusForbidOperation', 'message' => 'Mnt is in creating/hibernating.', 'http_code' => 403, 'description' => 'Mnt is in creating/hibernating.'], + ['code' => 'InvalidParameter.LifecycleRule', 'message' => 'The lifecycle rule is invalid.', 'http_code' => 400, 'description' => 'The parameter lifecycle policy rule does not support.'], + ['code' => 'MissingParameter.LifecyclePolicyName', 'message' => 'LifecyclePolicyName is mandatory for this action.', 'http_code' => 400, 'description' => 'LifecyclePolicyName parameter is not specified.'], + ['code' => 'OperationDenied.LifecycleLogsCountsExceeded', 'message' => 'The amount of Lifecycle Logs has reached its limits.', 'http_code' => 403, 'description' => 'The OnDemand lifecycle policy only supports 1 run.'], + ['code' => 'Lifecycle.RunningTask.Exist', 'message' => 'There are running tasks for this lifecycle policy.', 'http_code' => 400, 'description' => 'A file system supports only 2 OnDemand lifecycle policies in operation.'], + ['code' => 'Lifecycle.Count.Exceeded', 'message' => 'The lifecycle policy count exceeds the max limit per type per filesystem.', 'http_code' => 400, 'description' => 'Lifecycle policy exceeds limit.'], + ['code' => 'InvalidAccessPoint.NotFound', 'message' => 'The specified AccessPoint does not exist.', 'http_code' => 404, 'description' => 'The specified access point does not exist.'], + ['code' => 'AccessPoint.ExceedsLimit', 'message' => 'Access point exceeds limit - There is already 1000 access points in filesystem.', 'http_code' => 403, 'description' => 'Access point out of limit-there are already 1000 access points in the file system'], + ['code' => 'OperationDenied.DeleteForbidden', 'message' => 'The delete operation is forbidden as the resource is special.', 'http_code' => 400, 'description' => 'The resource cannot be deleted due to the resource status or sub-resource status and the deletion protection rule.'], + ['code' => 'InvalidStatus.ResourceMismatch', 'message' => 'Resource status mismatch.', 'http_code' => 403, 'description' => 'The file system and UID do not match.'], + ['code' => 'InvalidStatus', 'message' => 'FileSystem status is invalid.', 'http_code' => 403, 'description' => 'The file system status does not meet the requirements.'], + ], + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeMountedClients'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListRecycleBinJobs'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'EnableRecycleBin'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UntagResources'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeSnapshots'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RetryLifecycleRetrieveJob'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLogAnalysis'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeNfsAcl'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeProtocolMountTarget'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteAccessGroup'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddClientToBlackList'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyDataFlowAutoRefresh'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateMountTarget'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisableSmbAcl'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyAutoSnapshotPolicy'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyLDAPConfig'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'OpenNASService'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeMountTargets'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeDataFlowTasks'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteMountTarget'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifySmbAcl'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateAutoSnapshotPolicy'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLogAnalysis'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateProtocolService'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateFileSystem'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateFileset'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyDataFlow'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateAccessRule'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateSnapshot'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteFileSystem'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StopDataFlow'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyProtocolMountTarget'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelAutoSnapshotPolicy'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeLifecyclePolicies'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateLifecyclePolicy'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateDataFlowTask'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelLifecycleRetrieveJob'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteSnapshot'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeProtocolService'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyProtocolService'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteProtocolMountTarget'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateAccessPoint'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDirectoriesAndFiles'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDataFlowSubTasks'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateLifecycleRetrieveJob'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeFileSystemStatistics'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeBlackListClients'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateLDAPConfig'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteDataFlow'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeFileSystems'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelDirQuota'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyAccessPoint'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeFilesets'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ApplyDataFlowAutoRefresh'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeAutoSnapshotTasks'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteFileset'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ApplyAutoSnapshotPolicy'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'EnableSmbAcl'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'TagResources'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteProtocolService'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetRecycleBinAttribute'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ChangeResourceGroup'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeAutoSnapshotPolicies'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListTagResources'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveClientFromBlackList'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteAutoSnapshotPolicy'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ResetFileSystem'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListRecycledDirectoriesAndFiles'], + ['threshold' => '35', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDirQuotas'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeAccessRules'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisableAndCleanRecycleBin'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartDataFlow'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateRecycleBinDeleteJob'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisableNfsAcl'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeSmbAcl'], + ['threshold' => '120', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeZones'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteAccessRule'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeAccessPoints'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateProtocolMountTarget'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelRecycleBinJob'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateAccessGroup'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelFilesetQuota'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'EnableNfsAcl'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDataFlowSubTask'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeAccessGroups'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetDirectoryOrFileProperties'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListRecentlyRecycledDirectories'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateDir'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateFile'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateDataFlow'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLogAnalysis'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelDataFlowAutoRefresh'], + ['threshold' => '10000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRegions'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'SetDirQuota'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateRecycleBinRestoreJob'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteLDAPConfig'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeAccessPoint'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyLifecyclePolicy'], + ['threshold' => '120', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyMountTarget'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpgradeFileSystem'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListLifecycleRetrieveJobs'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteLifecyclePolicy'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelDataFlowSubTask'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'SetFilesetQuota'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelDataFlowTask'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateRecycleBinAttribute'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeDataFlows'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyFileset'], + ['threshold' => '120', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyAccessRule'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyFileSystem'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteAccessPoint'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyAccessGroup'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeStoragePackages'], + ], + ], + 'ram' => [ + 'productCode' => 'NAS', + 'productName' => 'File Storage NAS', + 'ramCodes' => ['nas'], + 'ramLevel' => 'RESOURCE', + 'ramConditions' => [ + [ + 'name' => 'vpc:Vpc', + 'schema' => ['type' => 'String', 'description' => 'ARN of VPC instance. Example: acs:vpc:cn-hangzhou:0123456789:vpc/vpc-123456789'], + ], + [ + 'name' => 'nas:FileSystemType', + 'schema' => [ + 'type' => 'String', + 'description' => 'File System Type', + 'enums' => ['standard', 'extreme', 'cpfs'], + ], + ], + [ + 'name' => 'nas:EncryptedType', + 'schema' => [ + 'type' => 'String', + 'description' => 'File system encryption type', + 'enums' => ['NoEncrypted', 'NASManagedKeys', 'BYOK'], + ], ], - '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', + 'ramActions' => [ + [ + 'apiName' => 'TagResources', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:TagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], ], - 'schemes' => [ - 'https', + [ + 'apiName' => 'DescribeAccessGroups', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeAccessGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ListLifecycleRetrieveJobs', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:ListLifecycleRetrieveJobs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', + [ + 'apiName' => 'DeleteDataFlow', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteDataFlow', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], - '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, + [ + 'apiName' => 'ListRecentlyRecycledDirectories', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:ListRecentlyRecycledDirectories', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], - [ - '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****', + ], + [ + 'apiName' => 'DeleteFileset', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteFileset', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Fileset', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => '', - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '2D69A58F-345C-4FDE-88E4-BF518948****', - ], - ], + [ + 'apiName' => 'DescribeProtocolMountTarget', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeProtocolMountTarget', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The parameter is invalid.', + [ + 'apiName' => 'ModifyProtocolMountTarget', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyProtocolMountTarget', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], - [ - 'errorCode' => 'InvalidParameter.FileSystem', - 'errorMessage' => 'Invalid FileSystem in ResourceIds.', + ], + ], + [ + 'apiName' => 'DeleteAutoSnapshotPolicy', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteAutoSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'InvalidParameter.ResourceIds', - 'errorMessage' => 'Invalid ResourceIds, can not be empty or batch size large than 10.', + ], + ], + [ + 'apiName' => 'RemoveClientFromBlackList', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:RemoveClientFromBlackList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], - [ - 'errorCode' => 'InvalidFilesystemType.NotSupport', - 'errorMessage' => 'This Api does not support this fileSystem type.', + ], + ], + [ + 'apiName' => 'DescribeMountedClients', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeMountedClients', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], - [ - 'errorCode' => 'InvalidParameter.VscId', - 'errorMessage' => 'Invalid VscId in ResourceIds.', + ], + ], + [ + 'apiName' => 'DeleteMountTarget', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteMountTarget', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], - [ - 'errorCode' => 'InvalidParameter.VscIds', - 'errorMessage' => 'Invalid VscId in ResourceIds.VscIds must be the same.', + ], + ], + [ + 'apiName' => 'DescribeStoragePackages', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeStoragePackages', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'Ram.AddRamParamFailed', - 'errorMessage' => 'Ram check has failed due to param invalid, please check param.', + ], + ], + [ + 'apiName' => 'DeleteAccessGroup', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteAccessGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], ], - [ - 'errorCode' => 'FeatureOrAPI.NotSupported', - 'errorMessage' => 'The Feature/API is not supported in this region now.', + ], + ], + [ + 'apiName' => 'DescribeAutoSnapshotTasks', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeAutoSnapshotTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.Ram', - 'errorMessage' => 'User not authorized to operate on the specified resource, or this API doesn\'t support RAM.', + ], + [ + 'apiName' => 'ModifyFileSystem', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyFileSystem', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'DeleteLDAPConfig', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteLDAPConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], ], - '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', + [ + 'apiName' => 'DescribeDirQuotas', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeDirQuotas', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], ], - 'schemes' => [ - 'https', + [ + 'apiName' => 'DescribeFilesets', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeFilesets', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ListTagResources', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:ListTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'CancelDataFlowSubTask', + 'description' => '', 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREnasOIBEFL', + 'ramAction' => [ + 'action' => 'nas:CancelDataFlowSubTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], - '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, + [ + 'apiName' => 'CreateDataFlow', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateDataFlow', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], - [ - '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****', + ], + [ + 'apiName' => 'DisableSmbAcl', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:DisableSmbAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], ], - '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****', - ], - ], + [ + 'apiName' => 'GetProtocolMountTarget', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:GetProtocolMountTarget', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - '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.', + [ + 'apiName' => 'ModifyMountTarget', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyMountTarget', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], - [ - 'errorCode' => 'InvalidParameter.FileSystem', - 'errorMessage' => 'Invalid FileSystem in ResourceIds.', + ], + ], + [ + 'apiName' => 'CreateRecycleBinDeleteJob', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:CreateRecycleBinDeleteJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], - [ - 'errorCode' => 'InvalidFilesystemType.NotSupport', - 'errorMessage' => 'This Api does not support this fileSystem type.', + ], + ], + [ + 'apiName' => 'CancelLifecycleRetrieveJob', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:CancelLifecycleRetrieveJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'InvalidParameter.VscId', - 'errorMessage' => 'Invalid VscId in ResourceIds.', + ], + ], + [ + 'apiName' => 'SetDirQuota', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:SetDirQuota', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], - [ - 'errorCode' => 'InvalidParameter.VscIds', - 'errorMessage' => 'Invalid VscId in ResourceIds.VscIds must be the same.', + ], + ], + [ + 'apiName' => 'ModifySmbAcl', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifySmbAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], - [ - 'errorCode' => 'Ram.AddRamParamFailed', - 'errorMessage' => 'Ram check has failed due to param invalid, please check param.', + ], + ], + [ + 'apiName' => 'CancelAutoSnapshotPolicy', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:CancelAutoSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'FeatureOrAPI.NotSupported', - 'errorMessage' => 'The Feature/API is not supported in this region now.', + ], + ], + [ + 'apiName' => 'DescribeLogAnalysis', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeLogAnalysis', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.Ram', - 'errorMessage' => 'User not authorized to operate on the specified resource, or this API doesn\'t support RAM.', + ], + [ + 'apiName' => 'ModifyAutoSnapshotPolicy', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyAutoSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'ChangeResourceGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ChangeResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], ], - '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', + [ + 'apiName' => 'CreateLifecyclePolicy', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateLifecyclePolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'LifecyclePolicy', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], ], - 'schemes' => [ - 'https', + [ + 'apiName' => 'DeleteProtocolService', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteProtocolService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ModifyDataFlow', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyDataFlow', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'DescribeAutoSnapshotPolicies', + 'description' => '', 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '191088', - 'abilityTreeNodes' => [ - 'FEATUREnasOIBEFL', + 'ramAction' => [ + 'action' => 'nas:DescribeAutoSnapshotPolicies', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], - '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, + [ + 'apiName' => 'DisableNfsAcl', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:DisableNfsAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], - [ - '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=', + ], + [ + 'apiName' => 'CreateRecycleBinRestoreJob', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateRecycleBinRestoreJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], ], - [ - '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', + ], + [ + 'apiName' => 'CreateFileSystem', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateFileSystem', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'nas:EncryptedType', 'validationType' => 'always'], + ['conditionKey' => 'nas:FileSystemType', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/*'], ], ], ], - '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' => '', - ], - ], - ], - ], - ], + [ + 'apiName' => 'ModifyFileset', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyFileset', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Fileset', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], ], - '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.', + [ + 'apiName' => 'ListRecycledDirectoriesAndFiles', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:ListRecycledDirectoriesAndFiles', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], - [ - 'errorCode' => 'InvalidFilesystemType.NotSupport', - 'errorMessage' => 'This Api does not support this fileSystem type.', + ], + ], + [ + 'apiName' => 'StartDataFlow', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:StartDataFlow', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], - [ - 'errorCode' => 'InvalidParameter.VscId', - 'errorMessage' => 'Invalid VscId in ResourceIds.', + ], + ], + [ + 'apiName' => 'CreateDataFlowTask', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateDataFlowTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], - [ - 'errorCode' => 'InvalidParameter.VscIds', - 'errorMessage' => 'Invalid VscId in ResourceIds.VscIds must be the same.', + ], + ], + [ + 'apiName' => 'DescribeFilesystemsAssociatedHpnZones', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeFilesystemsAssociatedHpnZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], - [ - 'errorCode' => 'Ram.AddRamParamFailed', - 'errorMessage' => 'Ram check has failed due to param invalid, please check param.', + ], + ], + [ + 'apiName' => 'GetRecycleBinAttribute', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:GetRecycleBinAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], - [ - 'errorCode' => 'FeatureOrAPI.NotSupported', - 'errorMessage' => 'The Feature/API is not supported in this region now.', + ], + ], + [ + 'apiName' => 'DescribeLifecyclePolicies', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeLifecyclePolicies', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'LifecyclePolicy', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.Ram', - 'errorMessage' => 'User not authorized to operate on the specified resource, or this API doesn\'t support RAM.', + ], + [ + 'apiName' => 'RetryLifecycleRetrieveJob', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:RetryLifecycleRetrieveJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'CreateDataFlowSubTask', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateDataFlowSubTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], ], - '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', + [ + 'apiName' => 'OpenNASService', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'nas:OpenNASService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DescribeLifecyclePolicyLogs', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeLifecyclePolicyLogs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'LifecyclePolicy', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ListAccessPoints', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:ListAccessPoints', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], - 'operationType' => 'write', - 'deprecated' => true, - 'systemTags' => [ + [ + 'apiName' => 'StopLifecyclePolicyExecution', + 'description' => '', 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '13916', - 'abilityTreeNodes' => [ - 'FEATUREnas2SBOJD', + 'ramAction' => [ + 'action' => 'nas:StopLifecyclePolicyExecution', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'LifecyclePolicy', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], - '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', + [ + 'apiName' => 'CreateSnapshot', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateSnapshot', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Snapshot', 'arn' => 'acs:nas:{#regionId}:{#accountId}:snapshot/*'], ], ], - [ - 'name' => 'FileSystemId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cpfs-00dfe7963fc6****', + ], + [ + 'apiName' => 'GetDirectoryOrFileProperties', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:GetDirectoryOrFileProperties', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], ], - [ - 'name' => 'ClientIP', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address of the client to add.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '192.168.0.0', + ], + [ + 'apiName' => 'CreateAutoSnapshotPolicy', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateAutoSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - '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', + ], + [ + 'apiName' => 'DescribeRegions', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeRegions', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'A70BEE5D-76D3-49FB-B58F-1F398211A5C3', - ], - ], - 'description' => '', + [ + 'apiName' => 'EnableRecycleBin', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:EnableRecycleBin', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], ], - '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', + [ + 'apiName' => 'UpdateLifecyclePolicy', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:UpdateLifecyclePolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'LifecyclePolicy', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ModifyDataFlowAutoRefresh', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyDataFlowAutoRefresh', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '13949', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', + [ + 'apiName' => 'ModifyAccessPoint', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyAccessPoint', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], - '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', + [ + 'apiName' => 'DetachVscFromFilesystems', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:DetachVscFromFilesystems', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Vsc', 'arn' => 'acs:eflo:{#regionId}:{#accountId}:vsc/{#VscId}'], ], ], - [ - 'name' => 'FileSystemId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cpfs-123458****', + ], + [ + 'apiName' => 'DescribeSnapshots', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeSnapshots', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Snapshot', 'arn' => 'acs:nas:{#regionId}:{#accountId}:snapshot/*'], ], ], - [ - 'name' => 'ClientIP', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address of the client.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.0', + ], + [ + 'apiName' => 'EnableNfsAcl', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:EnableNfsAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], ], - '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' => '', + [ + 'apiName' => 'DeleteSnapshot', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteSnapshot', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'staticInfo' => [ - 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', - 'returnType' => 'synchronous', + [ + 'apiName' => 'CreateProtocolMountTarget', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateProtocolMountTarget', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], ], - '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', + [ + 'apiName' => 'ApplyDataFlowAutoRefresh', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ApplyDataFlowAutoRefresh', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#fileSystemId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DeleteFileSystem', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteFileSystem', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ModifyProtocolService', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyProtocolService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], ], ], - 'operationType' => 'write', - 'deprecated' => true, - 'systemTags' => [ + [ + 'apiName' => 'CancelDirQuota', + 'description' => '', 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '13982', - 'abilityTreeNodes' => [ - 'FEATUREnas2SBOJD', + 'ramAction' => [ + 'action' => 'nas:CancelDirQuota', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], - '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', + [ + 'apiName' => 'AddClientToBlackList', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:AddClientToBlackList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], ], - [ - 'name' => 'FileSystemId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the file system.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cpfs-00d91ca404a348****', + ], + [ + 'apiName' => 'DescribeDataFlowSubTasks', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeDataFlowSubTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], - [ - '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', + ], + [ + 'apiName' => 'ModifyLDAPConfig', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyLDAPConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], ], - [ - '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****', + ], + [ + 'apiName' => 'CreateAccessPoint', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateAccessPoint', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'A70BEE5D-76D3-49FB-B58F-1F398211****', - ], - ], + [ + 'apiName' => 'ModifyAccessRule', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyAccessRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], ], ], ], - 'staticInfo' => [ - 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', - 'returnType' => 'synchronous', + [ + 'apiName' => 'DescribeSmbAcl', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeSmbAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], ], - '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', + [ + 'apiName' => 'CreateFile', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateFile', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'CancelRecycleBinJob', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:CancelRecycleBinJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'UpdateRecycleBinAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:UpdateRecycleBinAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], ], ], - 'operationType' => 'write', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREnasQ7YV89', - 'FEATUREnas0GUIX5', + [ + 'apiName' => 'DescribeFileSystemStatistics', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeFileSystemStatistics', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], - '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****', + [ + 'apiName' => 'DescribeAccessPoints', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeAccessPoints', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - 'name' => 'URI', - 'in' => 'query', - 'schema' => [ - 'description' => 'An LDAP URI.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ldap://ldap.example.example', + ], + [ + 'apiName' => 'DisableAndCleanRecycleBin', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:DisableAndCleanRecycleBin', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], ], - [ - 'name' => 'BindDN', - 'in' => 'query', - 'schema' => [ - 'description' => 'An LDAP entry.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'cn=alibaba,dc=com', + ], + [ + 'apiName' => 'CreateAccessRule', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateAccessRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], ], ], - [ - 'name' => 'SearchBase', - 'in' => 'query', - 'schema' => [ - 'description' => 'An LDAP search base.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'dc=example', + ], + [ + 'apiName' => 'CancelDataFlowAutoRefresh', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:CancelDataFlowAutoRefresh', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5B4511A7-C99E-4071-AA8C-32E2529D****', - ], - ], + [ + 'apiName' => 'ApplyAutoSnapshotPolicy', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ApplyAutoSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'errorCodes' => [], - 'staticInfo' => [ - 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', - 'returnType' => 'synchronous', + [ + 'apiName' => 'CancelFilesetQuota', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:CancelFilesetQuota', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Fileset', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], ], - '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', + [ + 'apiName' => 'DescribeAccessPoint', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeAccessPoint', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DeleteProtocolMountTarget', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteProtocolMountTarget', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ModifyLifecyclePolicy', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyLifecyclePolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'LifecyclePolicy', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], - 'operationType' => 'write', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREnasQ7YV89', - 'FEATUREnas0GUIX5', + [ + 'apiName' => 'CreateLogAnalysis', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateLogAnalysis', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], ], - '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', + [ + 'apiName' => 'ListDirectoriesAndFiles', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:ListDirectoriesAndFiles', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '5B4511A7-C99E-4071-AA8C-32E2529DA963', - ], - ], + [ + 'apiName' => 'ListRecycleBinJobs', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:ListRecycleBinJobs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], ], ], - 'errorCodes' => [], - 'staticInfo' => [ - 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', - 'returnType' => 'synchronous', + [ + 'apiName' => 'CreateProtocolService', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateProtocolService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], + ], ], - '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', + [ + 'apiName' => 'SetFilesetQuota', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:SetFilesetQuota', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Fileset', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'UntagResources', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:UntagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DeleteLifecyclePolicy', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteLifecyclePolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'LifecyclePolicy', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], - 'operationType' => 'write', - 'deprecated' => true, - 'systemTags' => [ + [ + 'apiName' => 'DescribeBlackListClients', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeBlackListClients', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'StopDataFlow', + 'description' => '', 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREnasQ7YV89', - 'FEATUREnas0GUIX5', + 'ramAction' => [ + 'action' => 'nas:StopDataFlow', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], - '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', + [ + 'apiName' => 'DescribeZones', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeZones', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - 'name' => 'URI', - 'in' => 'query', - 'schema' => [ - 'description' => 'The LDAP service address.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ldap://ldap.example.example', + ], + [ + 'apiName' => 'DescribeMountTargets', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeMountTargets', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], - [ - 'name' => 'BindDN', - 'in' => 'query', - 'schema' => [ - 'description' => 'The LDAP entry.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'cn=alibaba,dc=com', + ], + [ + 'apiName' => 'EnableSmbAcl', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:EnableSmbAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], - [ - 'name' => 'SearchBase', - 'in' => 'query', - 'schema' => [ - 'description' => 'The LDAP search base.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'dc=example', + ], + [ + 'apiName' => 'CreateFileset', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateFileset', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Fileset', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5B4511A7-C99E-4071-AA8C-32E2529DA963', - ], - ], - 'description' => '', + [ + 'apiName' => 'CreateAccessGroup', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateAccessGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], ], ], ], - 'errorCodes' => [], - 'staticInfo' => [ - 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', - 'returnType' => 'synchronous', + [ + 'apiName' => 'CreateMountTarget', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateMountTarget', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:Vpc', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ], + ], ], - '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', + [ + 'apiName' => 'StartLifecyclePolicyExecution', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:StartLifecyclePolicyExecution', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'LifecyclePolicy', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'ResetFileSystem', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ResetFileSystem', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeAccessRules', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeAccessRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => true, - 'systemTags' => [ + [ + 'apiName' => 'DescribeDataFlows', + 'description' => '', 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '13952', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', + 'ramAction' => [ + 'action' => 'nas:DescribeDataFlows', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], - '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', + [ + 'apiName' => 'CreateLDAPConfig', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateLDAPConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], ], - [ - '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' => '', + ], + [ + 'apiName' => 'DescribeFilesystemsVscAttachInfo', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeFilesystemsVscAttachInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Vsc', 'arn' => 'acs:eflo:{#regionId}:{#accountId}:vsc/{#VscId}'], ], ], ], - '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', - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'DescribeDataFlowTasks', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeDataFlowTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], ], ], ], - 'staticInfo' => [ - 'substitutions' => [ - 'NAS::2017-06-26::DescribeResourceStatistics', + [ + 'apiName' => 'GetFileset', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:GetFileset', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], - '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', + [ + 'apiName' => 'DeleteAccessRule', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteAccessRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'CancelDataFlowTask', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:CancelDataFlowTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'UpgradeFileSystem', + 'description' => '', + 'operationType' => 'update', + 'additionalActions' => [], + 'ramAction' => [ + 'action' => 'nas:UpgradeFileSystem', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'DescribeFileSystems', + 'description' => '', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '13962', - 'abilityTreeNodes' => [ - 'FEATUREnasI92PYN', + 'ramAction' => [ + 'action' => 'nas:DescribeFileSystems', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], + ], ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', + [ + 'apiName' => 'AttachVscToFilesystems', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:AttachVscToFilesystems', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'Vsc', 'arn' => 'acs:eflo:{#regionId}:{#accountId}:vsc/{#VscId}'], ], ], - [ - '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', + ], + [ + 'apiName' => 'DeleteLogAnalysis', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteLogAnalysis', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], ], - [ - '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', + ], + [ + 'apiName' => 'DeleteAccessPoint', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'nas:DeleteAccessPoint', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - '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', + ], + [ + 'apiName' => 'DescribeProtocolService', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'nas:DescribeProtocolService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], ], ], - '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(\'*****\', *)', - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'CreateLifecycleRetrieveJob', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateLifecycleRetrieveJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#FileSystemId}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'DescribeNfsAcl', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'nas:DescribeNfsAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ], + ], + ], + [ + 'apiName' => 'CreateDir', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'nas:CreateDir', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ModifyAccessGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'nas:ModifyAccessGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'NAS', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], + ], + ], ], - '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', + 'resourceTypes' => [ + ['validationType' => 'always', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ['validationType' => 'always', 'resourceType' => 'AccessGroup', 'arn' => 'acs:nas:{#regionId}:{#accountId}:accessgroup/{#accessgroupName}'], + ['validationType' => 'always', 'resourceType' => 'DataFlow', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ['validationType' => 'always', 'resourceType' => 'Fileset', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ['validationType' => 'always', 'resourceType' => 'Snapshot', 'arn' => 'acs:nas:{#regionId}:{#accountId}:snapshot/*'], + ['validationType' => 'always', 'resourceType' => 'FileSystem', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/*'], + ['validationType' => 'always', 'resourceType' => 'LifecyclePolicy', 'arn' => 'acs:nas:{#regionId}:{#accountId}:filesystem/{#filesystemId}'], + ['validationType' => 'always', 'resourceType' => 'Vsc', 'arn' => 'acs:eflo:{#regionId}:{#accountId}:vsc/{#VscId}'], + ['validationType' => 'always', 'resourceType' => 'Disk', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:snapshot/*'], + ['validationType' => 'always', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], ], ], ]; |
