From 49ac6fa9ce303112133b4c5203ee286db31649eb Mon Sep 17 00:00:00 2001 From: zhangyue Date: Fri, 16 Aug 2024 12:25:57 +0000 Subject: [PATCH] SFS HPC API DOC Reviewed-by: Miskanin, Jan Co-authored-by: zhangyue Co-committed-by: zhangyue --- docs/sfs/api-ref/ALL_META.TXT.json | 991 +++++++++++++++--- docs/sfs/api-ref/BatchAddSharedTags.html | 198 ++++ docs/sfs/api-ref/CLASS.TXT.json | 454 ++++---- docs/sfs/api-ref/ChangeSecurityGroup.html | 177 ++++ docs/sfs/api-ref/ChangeShareName.html | 169 +++ docs/sfs/api-ref/CreatePermRule.html | 352 +++++++ docs/sfs/api-ref/CreateShare.html | 405 +++++++ docs/sfs/api-ref/CreateSharedTag.html | 172 +++ docs/sfs/api-ref/DeletePermRule.html | 189 ++++ docs/sfs/api-ref/DeleteShare.html | 104 ++ docs/sfs/api-ref/DeleteSharedTag.html | 114 ++ docs/sfs/api-ref/ErrorCode.html | 24 +- docs/sfs/api-ref/ExpandShare.html | 193 ++++ docs/sfs/api-ref/ListPermRules.html | 227 ++++ docs/sfs/api-ref/ListSharedTags.html | 155 +++ docs/sfs/api-ref/ListShares.html | 464 ++++++++ docs/sfs/api-ref/ShowJobDetail.html | 391 +++++++ docs/sfs/api-ref/ShowPermRule.html | 246 +++++ docs/sfs/api-ref/ShowShare.html | 390 +++++++ docs/sfs/api-ref/ShowSharedTags.html | 178 ++++ docs/sfs/api-ref/UpdatePermRule.html | 303 ++++++ .../api-ref/en-us_image_0000001508295281.png | Bin 0 -> 54806 bytes .../api-ref/en-us_image_0000001773129352.png | Bin 0 -> 45589 bytes .../api-ref/en-us_topic_0000001537230113.html | 19 - .../api-ref/en-us_topic_0000001537629949.html | 167 --- .../api-ref/en-us_topic_0000001614397248.html | 227 ---- .../api-ref/en-us_topic_0000001614557076.html | 186 ---- .../api-ref/en-us_topic_0000001662877113.html | 240 ----- .../api-ref/en-us_topic_0000001662997101.html | 269 ----- .../api-ref/en-us_topic_0000001663116961.html | 23 - .../api-ref/en-us_topic_0000001663156945.html | 336 ------ .../public_sys-resources/imageclose.gif | Bin 0 -> 1238 bytes .../public_sys-resources/imageclosehover.gif | Bin 0 -> 1172 bytes .../api-ref/public_sys-resources/imagemax.gif | Bin 0 -> 1267 bytes .../public_sys-resources/imagemaxhover.gif | Bin 0 -> 1199 bytes .../public_sys-resources/macFFBgHack.png | Bin 0 -> 1014 bytes docs/sfs/api-ref/sfs_02_0001.html | 49 + docs/sfs/api-ref/sfs_02_0008.html | 15 + docs/sfs/api-ref/sfs_02_0009.html | 232 ++++ docs/sfs/api-ref/sfs_02_0011.html | 57 + docs/sfs/api-ref/sfs_02_0012.html | 41 + docs/sfs/api-ref/sfs_02_0016.html | 3 +- docs/sfs/api-ref/sfs_02_0026.html | 11 +- docs/sfs/api-ref/sfs_02_0029.html | 6 +- docs/sfs/api-ref/sfs_02_0030.html | 3 +- docs/sfs/api-ref/sfs_02_0034.html | 3 +- docs/sfs/api-ref/sfs_02_0035.html | 3 +- docs/sfs/api-ref/sfs_02_0049.html | 12 +- docs/sfs/api-ref/sfs_02_0050.html | 21 - docs/sfs/api-ref/sfs_02_0051.html | 275 ----- docs/sfs/api-ref/sfs_02_0052.html | 56 - docs/sfs/api-ref/sfs_02_0053.html | 321 ------ docs/sfs/api-ref/sfs_02_0054.html | 258 ----- docs/sfs/api-ref/sfs_02_0055.html | 15 - docs/sfs/api-ref/sfs_02_0056.html | 142 --- docs/sfs/api-ref/sfs_02_0074.html | 26 - docs/sfs/api-ref/sfs_02_0075.html | 156 --- docs/sfs/api-ref/sfs_02_0076.html | 105 -- docs/sfs/api-ref/sfs_02_0077.html | 160 --- docs/sfs/api-ref/sfs_02_0078.html | 188 ---- docs/sfs/api-ref/sfs_02_0080.html | 6 +- docs/sfs/api-ref/sfs_02_0083.html | 12 +- docs/sfs/api-ref/sfs_02_0088.html | 4 + docs/sfs/api-ref/sfs_02_0090.html | 53 + docs/sfs/api-ref/sfs_02_0092.html | 10 +- docs/sfs/api-ref/sfs_02_0094.html | 137 --- docs/sfs/api-ref/sfs_02_0095.html | 445 -------- docs/sfs/api-ref/sfs_02_0096.html | 19 - docs/sfs/api-ref/sfs_02_0097.html | 132 --- docs/sfs/api-ref/sfs_02_0120.html | 15 + docs/sfs/api-ref/topic_300000000.html | 24 + docs/sfs/api-ref/topic_300000001.html | 16 + docs/sfs/api-ref/topic_300000002.html | 24 + docs/sfs/api-ref/topic_300000003.html | 16 + docs/sfs/api-ref/topic_300000007.html | 24 + docs/sfs/api-ref/topic_300000008.html | 16 + 76 files changed, 6163 insertions(+), 4311 deletions(-) create mode 100644 docs/sfs/api-ref/BatchAddSharedTags.html create mode 100644 docs/sfs/api-ref/ChangeSecurityGroup.html create mode 100644 docs/sfs/api-ref/ChangeShareName.html create mode 100644 docs/sfs/api-ref/CreatePermRule.html create mode 100644 docs/sfs/api-ref/CreateShare.html create mode 100644 docs/sfs/api-ref/CreateSharedTag.html create mode 100644 docs/sfs/api-ref/DeletePermRule.html create mode 100644 docs/sfs/api-ref/DeleteShare.html create mode 100644 docs/sfs/api-ref/DeleteSharedTag.html create mode 100644 docs/sfs/api-ref/ExpandShare.html create mode 100644 docs/sfs/api-ref/ListPermRules.html create mode 100644 docs/sfs/api-ref/ListSharedTags.html create mode 100644 docs/sfs/api-ref/ListShares.html create mode 100644 docs/sfs/api-ref/ShowJobDetail.html create mode 100644 docs/sfs/api-ref/ShowPermRule.html create mode 100644 docs/sfs/api-ref/ShowShare.html create mode 100644 docs/sfs/api-ref/ShowSharedTags.html create mode 100644 docs/sfs/api-ref/UpdatePermRule.html create mode 100644 docs/sfs/api-ref/en-us_image_0000001508295281.png create mode 100644 docs/sfs/api-ref/en-us_image_0000001773129352.png delete mode 100644 docs/sfs/api-ref/en-us_topic_0000001537230113.html delete mode 100644 docs/sfs/api-ref/en-us_topic_0000001537629949.html delete mode 100644 docs/sfs/api-ref/en-us_topic_0000001614397248.html delete mode 100644 docs/sfs/api-ref/en-us_topic_0000001614557076.html delete mode 100644 docs/sfs/api-ref/en-us_topic_0000001662877113.html delete mode 100644 docs/sfs/api-ref/en-us_topic_0000001662997101.html delete mode 100644 docs/sfs/api-ref/en-us_topic_0000001663116961.html delete mode 100644 docs/sfs/api-ref/en-us_topic_0000001663156945.html create mode 100644 docs/sfs/api-ref/public_sys-resources/imageclose.gif create mode 100644 docs/sfs/api-ref/public_sys-resources/imageclosehover.gif create mode 100644 docs/sfs/api-ref/public_sys-resources/imagemax.gif create mode 100644 docs/sfs/api-ref/public_sys-resources/imagemaxhover.gif create mode 100644 docs/sfs/api-ref/public_sys-resources/macFFBgHack.png create mode 100644 docs/sfs/api-ref/sfs_02_0008.html create mode 100644 docs/sfs/api-ref/sfs_02_0009.html create mode 100644 docs/sfs/api-ref/sfs_02_0011.html create mode 100644 docs/sfs/api-ref/sfs_02_0012.html delete mode 100644 docs/sfs/api-ref/sfs_02_0050.html delete mode 100644 docs/sfs/api-ref/sfs_02_0051.html delete mode 100644 docs/sfs/api-ref/sfs_02_0052.html delete mode 100644 docs/sfs/api-ref/sfs_02_0053.html delete mode 100644 docs/sfs/api-ref/sfs_02_0054.html delete mode 100644 docs/sfs/api-ref/sfs_02_0055.html delete mode 100644 docs/sfs/api-ref/sfs_02_0056.html delete mode 100644 docs/sfs/api-ref/sfs_02_0074.html delete mode 100644 docs/sfs/api-ref/sfs_02_0075.html delete mode 100644 docs/sfs/api-ref/sfs_02_0076.html delete mode 100644 docs/sfs/api-ref/sfs_02_0077.html delete mode 100644 docs/sfs/api-ref/sfs_02_0078.html create mode 100644 docs/sfs/api-ref/sfs_02_0090.html delete mode 100644 docs/sfs/api-ref/sfs_02_0094.html delete mode 100644 docs/sfs/api-ref/sfs_02_0095.html delete mode 100644 docs/sfs/api-ref/sfs_02_0096.html delete mode 100644 docs/sfs/api-ref/sfs_02_0097.html create mode 100644 docs/sfs/api-ref/sfs_02_0120.html create mode 100644 docs/sfs/api-ref/topic_300000000.html create mode 100644 docs/sfs/api-ref/topic_300000001.html create mode 100644 docs/sfs/api-ref/topic_300000002.html create mode 100644 docs/sfs/api-ref/topic_300000003.html create mode 100644 docs/sfs/api-ref/topic_300000007.html create mode 100644 docs/sfs/api-ref/topic_300000008.html diff --git a/docs/sfs/api-ref/ALL_META.TXT.json b/docs/sfs/api-ref/ALL_META.TXT.json index 1f04642e..c0ba37f8 100644 --- a/docs/sfs/api-ref/ALL_META.TXT.json +++ b/docs/sfs/api-ref/ALL_META.TXT.json @@ -1,661 +1,1336 @@ [ + { + "dockw":"API Reference" + }, { "uri":"sfs_02_0001.html", + "node_id":"sfs_02_0001.xml", "product_code":"sfs", "code":"1", "des":"Public cloud APIs comply with the RESTful API design principles. REST-based web services are organized into resources. Each resource is identified by one or more Uniform ", "doc_type":"api", "kw":"API Usage Guidelines,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"API Usage Guidelines", "githuburl":"" }, { - "uri":"sfs_02_0016.html", + "uri":"sfs_02_0008.html", + "node_id":"sfs_02_0008.xml", "product_code":"sfs", "code":"2", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", + "kw":"Calling APIs", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], + "title":"Calling APIs", + "githuburl":"" + }, + { + "uri":"sfs_02_0009.html", + "node_id":"sfs_02_0009.xml", + "product_code":"sfs", + "code":"3", + "des":"This section describes the structure of a REST API request, and uses the IAM API for obtaining a user token as an example to demonstrate how to call an API. The obtained ", + "doc_type":"api", + "kw":"Making an API Request,Calling APIs,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], + "title":"Making an API Request", + "githuburl":"" + }, + { + "uri":"sfs_02_0011.html", + "node_id":"sfs_02_0011.xml", + "product_code":"sfs", + "code":"4", + "des":"Requests for calling an API can be authenticated using either of the following methods:AK/SK authentication: Requests are encrypted using AK/SK pairs. AK/SK authenticatio", + "doc_type":"api", + "kw":"Authentication,Calling APIs,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], + "title":"Authentication", + "githuburl":"" + }, + { + "uri":"sfs_02_0012.html", + "node_id":"sfs_02_0012.xml", + "product_code":"sfs", + "code":"5", + "des":"After sending a request, you will receive a response, including a status code, response header, and response body.A status code is a group of digits, ranging from 1xx to ", + "doc_type":"api", + "kw":"Response,Calling APIs,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], + "title":"Response", + "githuburl":"" + }, + { + "uri":"sfs_02_0016.html", + "node_id":"sfs_02_0016.xml", + "product_code":"sfs", + "code":"6", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"api", "kw":"SFS Capacity-Oriented APIs", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"SFS Capacity-Oriented APIs", "githuburl":"" }, { "uri":"sfs_02_0017.html", + "node_id":"sfs_02_0017.xml", "product_code":"sfs", - "code":"3", + "code":"7", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"API Version Queries", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"API Version Queries", "githuburl":"" }, { "uri":"sfs_02_0018.html", + "node_id":"sfs_02_0018.xml", "product_code":"sfs", - "code":"4", + "code":"8", "des":"This API is used to query all available versions of APIs provided by SFS.To support function extension, SFS APIs can be distinguished by version. SFS has two types API ve", "doc_type":"api", "kw":"Querying All API Versions,API Version Queries,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Querying All API Versions", "githuburl":"" }, { "uri":"sfs_02_0019.html", + "node_id":"sfs_02_0019.xml", "product_code":"sfs", - "code":"5", + "code":"9", "des":"This API is used for querying details about an API version.GET /{api_version}/Parameter descriptionParameterMandatoryTypeDescriptionapi_versionYesStringSpecifies the API ", "doc_type":"api", "kw":"Querying Details About an API Version,API Version Queries,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Querying Details About an API Version", "githuburl":"" }, { "uri":"sfs_02_0020.html", + "node_id":"sfs_02_0020.xml", "product_code":"sfs", - "code":"6", + "code":"10", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"File Systems", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"File Systems", "githuburl":"" }, { "uri":"sfs_02_0021.html", + "node_id":"sfs_02_0021.xml", "product_code":"sfs", - "code":"7", + "code":"11", "des":"This API is used to create a shared file system. After the file system is created, you need to mount the file system to ECSs to achieve shared file storage.This API is an", "doc_type":"api", "kw":"Creating a Shared File System,File Systems,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Creating a Shared File System", "githuburl":"" }, { "uri":"sfs_02_0022.html", + "node_id":"sfs_02_0022.xml", "product_code":"sfs", - "code":"8", + "code":"12", "des":"This API is used to list the basic information of all shared file systems.GET /v2/{project_id}/shares?all_tenants={all_tenants}&status={status}&limit={limit}&offset={offs", "doc_type":"api", "kw":"Querying All Shared File Systems,File Systems,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Querying All Shared File Systems", "githuburl":"" }, { "uri":"sfs_02_0023.html", + "node_id":"sfs_02_0023.xml", "product_code":"sfs", - "code":"9", + "code":"13", "des":"This API is used to query the details about all shared file systems.GET /v2/{project_id}/shares/detail?all_tenants={all_tenants}&project_id={project_id}&status={status}&l", "doc_type":"api", "kw":"Querying Details About All Shared File Systems,File Systems,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Querying Details About All Shared File Systems", "githuburl":"" }, { "uri":"sfs_02_0024.html", + "node_id":"sfs_02_0024.xml", "product_code":"sfs", - "code":"10", + "code":"14", "des":"This API is used to query the details about a shared file system.GET /v2/{project_id}/shares/{share_id}Parameter descriptionParameterMandatoryTypeDescriptionshare_idYesSt", "doc_type":"api", "kw":"Querying Details About a Shared File System,File Systems,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Querying Details About a Shared File System", "githuburl":"" }, { "uri":"sfs_02_0025.html", + "node_id":"sfs_02_0025.xml", "product_code":"sfs", - "code":"11", + "code":"15", "des":"This API is used to query mount locations of a shared file system.This API exists only when X-Openstack-Manila-Api-Version in the request header is greater than or equal ", "doc_type":"api", "kw":"Querying Mount Locations of a Shared File System,File Systems,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Querying Mount Locations of a Shared File System", "githuburl":"" }, { "uri":"sfs_02_0026.html", + "node_id":"sfs_02_0026.xml", "product_code":"sfs", - "code":"12", + "code":"16", "des":"This API is used to modify the name and description of a shared file system.PUT /v2/{project_id}/shares/{share_id}Parameter descriptionParameterMandatoryTypeDescriptionsh", "doc_type":"api", "kw":"Modifying a Shared File System,File Systems,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Modifying a Shared File System", "githuburl":"" }, { "uri":"sfs_02_0027.html", + "node_id":"sfs_02_0027.xml", "product_code":"sfs", - "code":"13", + "code":"17", "des":"This API is used to delete a shared file system.This API is an asynchronous API. If the returned status code is 202, the API request is successfully delivered and receive", "doc_type":"api", "kw":"Deleting a Shared File System,File Systems,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Deleting a Shared File System", "githuburl":"" }, { "uri":"sfs_02_0028.html", + "node_id":"sfs_02_0028.xml", "product_code":"sfs", - "code":"14", + "code":"18", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"File System Access Rules", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"File System Access Rules", "githuburl":"" }, { "uri":"sfs_02_0029.html", + "node_id":"sfs_02_0029.xml", "product_code":"sfs", - "code":"15", + "code":"19", "des":"This API is used to add a file system access rule.This API is an asynchronous API. If the returned status code is 200, the API request is successfully delivered and recei", "doc_type":"api", "kw":"Adding a File System Access Rule,File System Access Rules,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Adding a File System Access Rule", "githuburl":"" }, { "uri":"sfs_02_0030.html", + "node_id":"sfs_02_0030.xml", "product_code":"sfs", - "code":"16", + "code":"20", "des":"This API is used to delete a file system access rule.This API is an asynchronous API. If the returned status code is 202, the API request is successfully delivered and re", "doc_type":"api", "kw":"Deleting a File System Access Rule,File System Access Rules,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Deleting a File System Access Rule", "githuburl":"" }, { "uri":"sfs_02_0031.html", + "node_id":"sfs_02_0031.xml", "product_code":"sfs", - "code":"17", + "code":"21", "des":"This API is used to query the access rules of a shared file system.POST /v2/{project_id}/shares/{share_id}/actionParameter descriptionParameterMandatoryTypeDescriptionsha", "doc_type":"api", "kw":"Querying File System Access Rules,File System Access Rules,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Querying File System Access Rules", "githuburl":"" }, { "uri":"sfs_02_0032.html", + "node_id":"sfs_02_0032.xml", "product_code":"sfs", - "code":"18", + "code":"22", "des":"This API is used to query quota information.GET /v2/{project_id}/os-quota-sets/{project_id}Parameter descriptionParameterMandatoryTypeDescriptionproject_idYesStringSpecif", "doc_type":"api", "kw":"Quota Management,SFS Capacity-Oriented APIs,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Quota Management", "githuburl":"" }, { "uri":"sfs_02_0033.html", + "node_id":"sfs_02_0033.xml", "product_code":"sfs", - "code":"19", + "code":"23", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Expansion and Shrinking", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Expansion and Shrinking", "githuburl":"" }, { "uri":"sfs_02_0034.html", + "node_id":"sfs_02_0034.xml", "product_code":"sfs", - "code":"20", + "code":"24", "des":"This API is used to expand the capacity of a shared file system.This API is an asynchronous API. If the returned status code is 202, the API request is successfully deliv", "doc_type":"api", "kw":"Expanding a Shared File System,Expansion and Shrinking,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Expanding a Shared File System", "githuburl":"" }, { "uri":"sfs_02_0035.html", + "node_id":"sfs_02_0035.xml", "product_code":"sfs", - "code":"21", + "code":"25", "des":"This API is used to shrink the capacity of a shared file system.This API is an asynchronous API. If the returned status code is 202, the API request is successfully deliv", "doc_type":"api", "kw":"Shrinking a Shared File System,Expansion and Shrinking,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Shrinking a Shared File System", "githuburl":"" }, { "uri":"sfs_02_0036.html", + "node_id":"sfs_02_0036.xml", "product_code":"sfs", - "code":"22", + "code":"26", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Tag Management", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Tag Management", "githuburl":"" }, { "uri":"sfs_02_0037.html", + "node_id":"sfs_02_0037.xml", "product_code":"sfs", - "code":"23", + "code":"27", "des":"This API is used to add a tag to a specified shared file system.A shared file system can have a maximum of 20 tags.The keys of multiple tags added to a shared file system", "doc_type":"api", "kw":"Adding a Tag to a Shared File System,Tag Management,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Adding a Tag to a Shared File System", "githuburl":"" }, { "uri":"sfs_02_0038.html", + "node_id":"sfs_02_0038.xml", "product_code":"sfs", - "code":"24", + "code":"28", "des":"This API is used to delete a tag from a specified shared file system.If the key to be deleted does not exist in the shared file system, error 404 is returned after API ca", "doc_type":"api", "kw":"Deleting a Tag from a Shared File System,Tag Management,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Deleting a Tag from a Shared File System", "githuburl":"" }, { "uri":"sfs_02_0039.html", + "node_id":"sfs_02_0039.xml", "product_code":"sfs", - "code":"25", + "code":"29", "des":"This API is used to query all tags of a specified shared file system.GET /v2/{project_id}/sfs/{share_id}/tagsParameter descriptionParameterMandatoryTypeDescriptionproject", "doc_type":"api", "kw":"Querying Tags of a Shared File System,Tag Management,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Querying Tags of a Shared File System", "githuburl":"" }, { "uri":"sfs_02_0040.html", + "node_id":"sfs_02_0040.xml", "product_code":"sfs", - "code":"26", + "code":"30", "des":"This API is used to query the tags of all file systems of a tenant.GET /v2/{project_id}/sfs/tagsParameter descriptionParameterMandatoryTypeDescriptionproject_idYesStringS", "doc_type":"api", "kw":"Querying Tags of All File Systems of a Tenant,Tag Management,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Querying Tags of All File Systems of a Tenant", "githuburl":"" }, { "uri":"sfs_02_0041.html", + "node_id":"sfs_02_0041.xml", "product_code":"sfs", - "code":"27", + "code":"31", "des":"This API is used to batch add tags to a shared file system.A shared file system can have a maximum of 20 tags.The keys of multiple tags added to a shared file system must", "doc_type":"api", "kw":"Batch Adding Tags to a Shared File System,Tag Management,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Batch Adding Tags to a Shared File System", "githuburl":"" }, { "uri":"sfs_02_0042.html", + "node_id":"sfs_02_0042.xml", "product_code":"sfs", - "code":"28", + "code":"32", "des":"This API is used to batch delete tags from a specified shared file system.This API is idempotent. If the tags to be deleted do not exist on the shared file system, the de", "doc_type":"api", "kw":"Batch Deleting Tags from a Shared File System,Tag Management,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Batch Deleting Tags from a Shared File System", "githuburl":"" }, { "uri":"sfs_02_0043.html", + "node_id":"sfs_02_0043.xml", "product_code":"sfs", - "code":"29", + "code":"33", "des":"This API is used to query shared file systems by tag.POST /v2/{project_id}/sfs/resource_instances/actionParameter descriptionParameterMandatoryTypeDescriptionproject_idYe", "doc_type":"api", "kw":"Querying Shared File Systems by Tag,Tag Management,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Querying Shared File Systems by Tag", "githuburl":"" }, { "uri":"sfs_02_0044.html", + "node_id":"sfs_02_0044.xml", "product_code":"sfs", - "code":"30", + "code":"34", "des":"This API is used to query the number of shared file systems by tag.POST /v2/{project_id}/sfs/resource_instances/actionParameter descriptionParameterMandatoryTypeDescripti", "doc_type":"api", "kw":"Querying the Number of Shared File Systems by Tag,Tag Management,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Querying the Number of Shared File Systems by Tag", "githuburl":"" }, { "uri":"sfs_02_0049.html", + "node_id":"sfs_02_0049.xml", "product_code":"sfs", - "code":"31", + "code":"35", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"SFS Turbo APIs", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"SFS Turbo APIs", "githuburl":"" }, { - "uri":"sfs_02_0050.html", + "uri":"topic_300000000.html", + "node_id":"topic_300000000.xml", "product_code":"sfs", - "code":"32", + "code":"36", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Lifecycle Management", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Lifecycle Management", "githuburl":"" }, { - "uri":"sfs_02_0051.html", + "uri":"CreateShare.html", + "node_id":"createshare.xml", "product_code":"sfs", - "code":"33", - "des":"This API is used to create an SFS Turbo file system.URI formatPOST /v1/{project_id}/sfs-turbo/sharesPOST /v1/{project_id}/sfs-turbo/sharesParameter descriptionParameterMa", + "code":"37", + "des":"This API is used to create a file system.POST /v1/{project_id}/sfs-turbo/sharesStatus code: 202Previous-generation SFS Turbo file system: This example creates an SFS Turb", "doc_type":"api", "kw":"Creating a File System,Lifecycle Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"CreateShare", + "prodname":"sfs" + } + ], "title":"Creating a File System", "githuburl":"" }, { - "uri":"sfs_02_0052.html", + "uri":"ShowShare.html", + "node_id":"showshare.xml", "product_code":"sfs", - "code":"34", - "des":"This API is used to delete an SFS Turbo file system.URI formatDELETE /v1/{project_id}/sfs-turbo/shares/{share_id}DELETE /v1/{project_id}/sfs-turbo/shares/{share_id}Parame", + "code":"38", + "des":"This API is used to query details about an SFS Turbo file system.GET /v1/{project_id}/sfs-turbo/shares/{share_id}Status code: 200Querying the file system whose ID is 77ba", + "doc_type":"api", + "kw":"Querying Details About a File System,Lifecycle Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"ShowShare", + "prodname":"sfs" + } + ], + "title":"Querying Details About a File System", + "githuburl":"" + }, + { + "uri":"DeleteShare.html", + "node_id":"deleteshare.xml", + "product_code":"sfs", + "code":"39", + "des":"This API is used to delete a file system.DELETE /v1/{project_id}/sfs-turbo/shares/{share_id}NoneDeleting the file system whose ID is 77ba6f4b-6365-4895-8dda-bc7142af4ddeN", "doc_type":"api", "kw":"Deleting a File System,Lifecycle Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"DeleteShare", + "prodname":"sfs" + } + ], "title":"Deleting a File System", "githuburl":"" }, { - "uri":"sfs_02_0053.html", + "uri":"ListShares.html", + "node_id":"listshares.xml", "product_code":"sfs", - "code":"35", - "des":"This API is used to query details about all SFS Turbo file systems.URI formatGET /v1/{project_id}/sfs-turbo/shares/detail?limit={limit}&offset={offset}GET /v1/{project_id", + "code":"40", + "des":"This API is used to obtain the file system list.GET /v1/{project_id}/sfs-turbo/shares/detailStatus code: 200Querying file systems in the project whose ID e1e45b08f3ea4480", "doc_type":"api", - "kw":"Querying Details About All File Systems,Lifecycle Management,API Reference", - "title":"Querying Details About All File Systems", + "kw":"Obtaining the File System List,Lifecycle Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"ListShares", + "prodname":"sfs" + } + ], + "title":"Obtaining the File System List", "githuburl":"" }, { - "uri":"sfs_02_0054.html", + "uri":"ExpandShare.html", + "node_id":"expandshare.xml", "product_code":"sfs", - "code":"36", - "des":"This API is used to query details about an SFS Turbo file system.URI formatGET /v1/{project_id}/sfs-turbo/shares/{share_id}GET /v1/{project_id}/sfs-turbo/shares/{share_id", + "code":"41", + "des":"This API is used to expand the capacity of a file system.POST /v1/{project_id}/sfs-turbo/shares/{share_id}/actionStatus code: 202Expanding the capacity of a file system t", "doc_type":"api", - "kw":"Querying Details About a Single File System,Lifecycle Management,API Reference", - "title":"Querying Details About a Single File System", - "githuburl":"" - }, - { - "uri":"sfs_02_0055.html", - "product_code":"sfs", - "code":"37", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"api", - "kw":"Storage Capacity Management", - "title":"Storage Capacity Management", - "githuburl":"" - }, - { - "uri":"sfs_02_0056.html", - "product_code":"sfs", - "code":"38", - "des":"This API is used to expand the capacity of an SFS Turbo file system. Capacity expansion is an asynchronous operation. You can check whether the expansion is successful by", - "doc_type":"api", - "kw":"Expanding the Capacity of a File System,Storage Capacity Management,API Reference", + "kw":"Expanding the Capacity of a File System,Lifecycle Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"ExpandShare", + "prodname":"sfs" + } + ], "title":"Expanding the Capacity of a File System", "githuburl":"" }, { - "uri":"sfs_02_0096.html", + "uri":"topic_300000001.html", + "node_id":"topic_300000001.xml", "product_code":"sfs", - "code":"39", + "code":"42", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Connection Management", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Connection Management", "githuburl":"" }, { - "uri":"sfs_02_0097.html", + "uri":"ChangeSecurityGroup.html", + "node_id":"changesecuritygroup.xml", "product_code":"sfs", - "code":"40", - "des":"This API is used to change the security group bound to an SFS Turbo file system. Security group change is an asynchronous task. You can determine whether the security gro", + "code":"43", + "des":"This API is used to change the security group associated with an SFS Turbo file system. Security group change is an asynchronous task. You can check whether the security ", "doc_type":"api", - "kw":"Changing a Security Group,Connection Management,API Reference", - "title":"Changing a Security Group", + "kw":"Changing the Security Group Associated with a File System,Connection Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"ChangeSecurityGroup", + "prodname":"sfs" + } + ], + "title":"Changing the Security Group Associated with a File System", "githuburl":"" }, { - "uri":"sfs_02_0074.html", + "uri":"topic_300000002.html", + "node_id":"topic_300000002.xml", "product_code":"sfs", - "code":"41", + "code":"44", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Tag Management", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Tag Management", "githuburl":"" }, { - "uri":"sfs_02_0075.html", + "uri":"CreateSharedTag.html", + "node_id":"createsharedtag.xml", "product_code":"sfs", - "code":"42", - "des":"This API is used to add a tag to an SFS Turbo file system.A shared file system can have a maximum of 20 tags.The keys of multiple tags added to a shared file system must ", + "code":"45", + "des":"This API is used to add a tag to a specified file system. A maximum of 20 tags can be added to a file system. Tag keys added to the same file system must be unique. This ", "doc_type":"api", - "kw":"Adding a Tag to a File System,Tag Management,API Reference", - "title":"Adding a Tag to a File System", + "kw":"Adding a Tag for a File System,Tag Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"CreateSharedTag", + "prodname":"sfs" + } + ], + "title":"Adding a Tag for a File System", "githuburl":"" }, { - "uri":"sfs_02_0076.html", + "uri":"ShowSharedTags.html", + "node_id":"showsharedtags.xml", "product_code":"sfs", - "code":"43", - "des":"This API is used to delete a tag from an SFS Turbo file system.If the key to be deleted does not exist in the shared file system, error 404 is returned after API calling.", - "doc_type":"api", - "kw":"Deleting a Tag from a File System,Tag Management,API Reference", - "title":"Deleting a Tag from a File System", - "githuburl":"" - }, - { - "uri":"sfs_02_0077.html", - "product_code":"sfs", - "code":"44", - "des":"This API is used to query all tags of an SFS Turbo file system.GET /v1/{project_id}/sfs-turbo/{share_id}/tagsParameter descriptionParameterMandatoryTypeDescriptionproject", + "code":"46", + "des":"This API is used to query all tags of a specified file system.GET /v1/{project_id}/sfs-turbo/{share_id}/tagsStatus code: 200Querying tags of the file system whose ID is 7", "doc_type":"api", "kw":"Querying Tags of a File System,Tag Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"ShowSharedTags", + "prodname":"sfs" + } + ], "title":"Querying Tags of a File System", "githuburl":"" }, { - "uri":"sfs_02_0078.html", + "uri":"DeleteSharedTag.html", + "node_id":"deletesharedtag.xml", "product_code":"sfs", - "code":"45", - "des":"This API is used to batch add tags to an SFS Turbo file system.A shared file system can have a maximum of 20 tags.The keys of multiple tags added to a shared file system ", + "code":"47", + "des":"This API is used to delete a tag of a specified file system. If the key to be deleted does not exist, error 404 will be returned.DELETE /v1/{project_id}/sfs-turbo/{share_", + "doc_type":"api", + "kw":"Deleting a Tag of a File System,Tag Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"DeleteSharedTag", + "prodname":"sfs" + } + ], + "title":"Deleting a Tag of a File System", + "githuburl":"" + }, + { + "uri":"BatchAddSharedTags.html", + "node_id":"batchaddsharedtags.xml", + "product_code":"sfs", + "code":"48", + "des":"This API is used to batch add tags for a specified file system.A maximum of 20 tags can be added to a file system. Tag keys added to the same file system must be unique. ", "doc_type":"api", "kw":"Batch Adding Tags to a File System,Tag Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"BatchAddSharedTags", + "prodname":"sfs" + } + ], "title":"Batch Adding Tags to a File System", "githuburl":"" }, { - "uri":"sfs_02_0094.html", + "uri":"ListSharedTags.html", + "node_id":"listsharedtags.xml", "product_code":"sfs", - "code":"46", - "des":"This API is used to query the tags of all file systems of a tenant.GET /v1/{project_id}/sfs-turbo/tagsParameter descriptionParameterMandatoryTypeDescriptionproject_idYesS", + "code":"49", + "des":"This API is used to query the tags of all file systems of a tenant.GET /v1/{project_id}/sfs-turbo/tagsStatus code: 200Query tags of all file systems in the project whose ", "doc_type":"api", "kw":"Querying Tags of All File Systems of a Tenant,Tag Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"ListSharedTags", + "prodname":"sfs" + } + ], "title":"Querying Tags of All File Systems of a Tenant", "githuburl":"" }, { - "uri":"sfs_02_0095.html", - "product_code":"sfs", - "code":"47", - "des":"This API is used to query SFS Turbo file systems by tag.POST /v1/{project_id}/sfs-turbo/resource_instances/actionParameter descriptionParameterMandatoryTypeDescriptionpro", - "doc_type":"api", - "kw":"Querying File Systems by Tag,Tag Management,API Reference", - "title":"Querying File Systems by Tag", - "githuburl":"" - }, - { - "uri":"en-us_topic_0000001537230113.html", - "product_code":"sfs", - "code":"48", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"api", - "kw":"Name Management", - "title":"Name Management", - "githuburl":"" - }, - { - "uri":"en-us_topic_0000001537629949.html", - "product_code":"sfs", - "code":"49", - "des":"This API is used to change the name of a file system.POST /v1/{project_id}/sfs-turbo/shares/{share_id}/actionNoneNone", - "doc_type":"api", - "kw":"Changing the Name of a File System,Name Management,API Reference", - "title":"Changing the Name of a File System", - "githuburl":"" - }, - { - "uri":"en-us_topic_0000001663116961.html", + "uri":"topic_300000003.html", + "node_id":"topic_300000003.xml", "product_code":"sfs", "code":"50", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", + "kw":"Name Management", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], + "title":"Name Management", + "githuburl":"" + }, + { + "uri":"ChangeShareName.html", + "node_id":"changesharename.xml", + "product_code":"sfs", + "code":"51", + "des":"This API is used to change the name of an SFS Turbo file system.POST /v1/{project_id}/sfs-turbo/shares/{share_id}/actionNoneChanging the name of an SFS Turbo file system ", + "doc_type":"api", + "kw":"Changing the Name of a File System,Name Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"ChangeShareName", + "prodname":"sfs" + } + ], + "title":"Changing the Name of a File System", + "githuburl":"" + }, + { + "uri":"topic_300000007.html", + "node_id":"topic_300000007.xml", + "product_code":"sfs", + "code":"52", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"api", "kw":"Permissions Management", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Permissions Management", "githuburl":"" }, { - "uri":"en-us_topic_0000001663156945.html", + "uri":"CreatePermRule.html", + "node_id":"createpermrule.xml", "product_code":"sfs", - "code":"51", - "des":"This API is used to create a permission rule.POST /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rulesStatus code: 200Status code: 400Status code: 500Status code: 2", + "code":"53", + "des":"This API is used to create a permission rule.A maximum of 64 permissions rules can be configured for a file system.POST /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/pe", "doc_type":"api", "kw":"Creating a Permission Rule,Permissions Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"CreatePermRule", + "prodname":"sfs" + } + ], "title":"Creating a Permission Rule", "githuburl":"" }, { - "uri":"en-us_topic_0000001614397248.html", + "uri":"ListPermRules.html", + "node_id":"listpermrules.xml", "product_code":"sfs", - "code":"52", - "des":"This API is used to query the permission rules of a file system.GET /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rulesStatus code: 200Status code: 500NoneStatus c", + "code":"54", + "des":"This API is used to query the permission rules of a file system.GET /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rulesStatus code: 200Status code: 500Querying the", "doc_type":"api", "kw":"Querying Permission Rules of a File System,Permissions Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"ListPermRules", + "prodname":"sfs" + } + ], "title":"Querying Permission Rules of a File System", "githuburl":"" }, { - "uri":"en-us_topic_0000001662877113.html", + "uri":"ShowPermRule.html", + "node_id":"showpermrule.xml", "product_code":"sfs", - "code":"53", + "code":"55", "des":"This API is used to query a specific permission rule of a file system.GET /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules/{rule_id}Status code: 200Status code:", "doc_type":"api", "kw":"Querying a Permission Rule by ID,Permissions Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"ShowPermRule", + "prodname":"sfs" + } + ], "title":"Querying a Permission Rule by ID", "githuburl":"" }, { - "uri":"en-us_topic_0000001662997101.html", + "uri":"UpdatePermRule.html", + "node_id":"updatepermrule.xml", "product_code":"sfs", - "code":"54", + "code":"56", "des":"This API is used to modify a permission rule.PUT /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules/{rule_id}Status code: 200Status code: 400Status code: 500Statu", "doc_type":"api", "kw":"Modifying a Permission Rule,Permissions Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"UpdatePermRule", + "prodname":"sfs" + } + ], "title":"Modifying a Permission Rule", "githuburl":"" }, { - "uri":"en-us_topic_0000001614557076.html", + "uri":"DeletePermRule.html", + "node_id":"deletepermrule.xml", "product_code":"sfs", - "code":"55", - "des":"This API is used to delete a permission rule.DELETE /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules/{rule_id}Status code: 400Status code: 500NoneStatus code: 5", + "code":"57", + "des":"This API is used to delete a permission rule.DELETE /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules/{rule_id}Status code: 400Status code: 500Deleting the permi", "doc_type":"api", "kw":"Deleting a Permissions Rule,Permissions Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"DeletePermRule", + "prodname":"sfs" + } + ], "title":"Deleting a Permissions Rule", "githuburl":"" }, { - "uri":"sfs_02_0079.html", + "uri":"topic_300000008.html", + "node_id":"topic_300000008.xml", "product_code":"sfs", - "code":"56", + "code":"58", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"api", + "kw":"Task Management", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], + "title":"Task Management", + "githuburl":"" + }, + { + "uri":"ShowJobDetail.html", + "node_id":"showjobdetail.xml", + "product_code":"sfs", + "code":"59", + "des":"This API is used to query the execution status of an SFS Turbo asynchronous task. For example, you can query the task execution status using the jobId returned after you ", + "doc_type":"api", + "kw":"Querying Details About a Task,Task Management,API Reference", + "search_title":"", + "metedata":[ + { + "opensource":"true", + "documenttype":"api", + "operation_id":"ShowJobDetail", + "prodname":"sfs" + } + ], + "title":"Querying Details About a Task", + "githuburl":"" + }, + { + "uri":"sfs_02_0079.html", + "node_id":"sfs_02_0079.xml", + "product_code":"sfs", + "code":"60", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Permissions Policies and Supported Actions", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Permissions Policies and Supported Actions", "githuburl":"" }, { "uri":"sfs_02_0080.html", + "node_id":"sfs_02_0080.xml", "product_code":"sfs", - "code":"57", - "des":"This section describes fine-grained permissions management for your SFS. If your cloud account does not need individual IAM users, then you may skip over this section.By ", + "code":"61", + "des":"This section describes fine-grained permissions management for your SFS resources. If your cloud account does not need individual IAM users, then you may skip over this s", "doc_type":"api", "kw":"Introduction,Permissions Policies and Supported Actions,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Introduction", "githuburl":"" }, { "uri":"sfs_02_0081.html", + "node_id":"sfs_02_0081.xml", "product_code":"sfs", - "code":"58", + "code":"62", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Supported Actions", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Supported Actions", "githuburl":"" }, { "uri":"sfs_02_0083.html", + "node_id":"sfs_02_0083.xml", "product_code":"sfs", - "code":"59", + "code":"63", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"SFS Turbo Actions,Supported Actions,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"SFS Turbo Actions", "githuburl":"" }, { "uri":"sfs_02_0084.html", + "node_id":"sfs_02_0084.xml", "product_code":"sfs", - "code":"60", + "code":"64", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Common Parameters", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Common Parameters", "githuburl":"" }, { "uri":"sfs_02_0085.html", + "node_id":"sfs_02_0085.xml", "product_code":"sfs", - "code":"61", + "code":"65", "des":"SFS Turbo file system status elementsReturned ValueDescription100CREATING: The file system is being created.200ACTIVE: The file system is active. An SFS Turbo file system", "doc_type":"api", "kw":"SFS Turbo File System Statuses,Common Parameters,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"SFS Turbo File System Statuses", "githuburl":"" }, { "uri":"sfs_02_0086.html", + "node_id":"sfs_02_0086.xml", "product_code":"sfs", - "code":"62", + "code":"66", "des":"SFS Turbo file system substatus elementsReturned ValueDescription121Expanding the capacity online.221Online capacity expansion succeeded.321Failed to perform online capac", "doc_type":"api", "kw":"SFS Turbo File System Substatuses,Common Parameters,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"SFS Turbo File System Substatuses", "githuburl":"" }, { "uri":"sfs_02_0088.html", + "node_id":"sfs_02_0088.xml", "product_code":"sfs", - "code":"63", + "code":"67", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Appendix", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Appendix", "githuburl":"" }, { "uri":"sfs_02_0089.html", + "node_id":"sfs_02_0089.xml", "product_code":"sfs", - "code":"64", + "code":"68", "des":"NormalReturned ValueDescription200 OKSpecifies the normal response for the GET and PUT operations.201 CreatedSpecifies the normal response for the POST operation.202 Acce", "doc_type":"api", "kw":"Status Codes,Appendix,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Status Codes", "githuburl":"" }, { "uri":"ErrorCode.html", + "node_id":"errorcode.xml", "product_code":"sfs", - "code":"65", + "code":"69", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"SFS Turbo Error Codes,Appendix,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"SFS Turbo Error Codes", "githuburl":"" }, { - "uri":"sfs_02_0092.html", + "uri":"sfs_02_0120.html", + "node_id":"sfs_02_0120.xml", "product_code":"sfs", - "code":"66", + "code":"70", + "des":"When calling an API, you need to use the AK/SK to verify the signature. To obtain the AK/SK, perform the following steps:Keep the AK/SK file properly to prevent informati", + "doc_type":"api", + "kw":"Obtaining Access Keys (AK/SK),Appendix,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], + "title":"Obtaining Access Keys (AK/SK)", + "githuburl":"" + }, + { + "uri":"sfs_02_0090.html", + "node_id":"sfs_02_0090.xml", + "product_code":"sfs", + "code":"71", + "des":"A project ID is required for some URLs when an API is called. Therefore, you need to obtain a project ID in advance. Two methods are available:Obtain the Project ID by Ca", + "doc_type":"api", + "kw":"Obtaining a Project ID,Appendix,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], + "title":"Obtaining a Project ID", + "githuburl":"" + }, + { + "uri":"sfs_02_0092.html", + "node_id":"sfs_02_0092.xml", + "product_code":"sfs", + "code":"72", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Change History,API Reference", + "search_title":"", + "metedata":[ + { + "documenttype":"api", + "prodname":"sfs" + } + ], "title":"Change History", "githuburl":"" } diff --git a/docs/sfs/api-ref/BatchAddSharedTags.html b/docs/sfs/api-ref/BatchAddSharedTags.html new file mode 100644 index 00000000..5f2ce5bc --- /dev/null +++ b/docs/sfs/api-ref/BatchAddSharedTags.html @@ -0,0 +1,198 @@ + + +

Batch Adding Tags to a File System

+

Function

This API is used to batch add tags for a specified file system.

+

A maximum of 20 tags can be added to a file system. Tag keys added to the same file system must be unique. This API is idempotent. If the file system already has the key you want to add, the tag will be updated.

+
+

URI

POST /v1/{project_id}/sfs-turbo/{share_id}/tags/action

+ +
+ + + + + + + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+

share_id

+

Yes

+

String

+

File system ID

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
Table 3 Request body parameters

Parameter

+

Mandatory

+

Type

+

Description

+

action

+

Yes

+

String

+

Operation identifier. The value is create. Use create if you want to batch add tags to a file system.

+

Enumeration values:

+
  • create

    +
+

tags

+

No

+

Array of ResourceTag objects

+

Tag list. This field is mandatory for users. For users with the op_service permission, choose either this field or sys_tags.

+

sys_tags

+

No

+

Array of ResourceTag objects

+

System tag list. This field is available only to users with the op_service permission. Choose either this field or tags. Only one resource_tag structure key, _sys_enterprise_project_id, is used in TMS calls.

+
+
+ +
+ + + + + + + + + + + + + + + + +
Table 4 ResourceTag

Parameter

+

Mandatory

+

Type

+

Description

+

key

+

Yes

+

String

+

Tag key.

+

It can contain a maximum of 128 characters.

+

It cannot be left empty and cannot contain the following characters: ASCII (0-31), equal signs (=), asterisks (*), left angle brackets (<), right angle brackets (>), backslashes (), commas (,), vertical bars (|), and slashes (/). It can contain only letters, digits, hyphens (-), and underscores (_).

+

Minimum: 1

+

Maximum: 128

+

value

+

Yes

+

String

+

Tag value.

+

Each tag value can contain a maximum of 255 characters and can be an empty string.

+

It cannot contain the following characters: ASCII (0-31), equal signs (=), asterisks (*), left angle brackets (<), right angle brackets (>), backslashes (), commas (,), vertical bars (|), and slashes (/). It can contain only letters, digits, hyphens (-), and underscores (_).

+

Minimum: 0

+

Maximum: 255

+
+
+
+

Response Parameters

None

+
+

Example Requests

Batch adding tags for a file system, with tag key of the first tag set to key1, tag value of the first tag value1, tag key of the second tag key2, and tag value of the second tag value1

+
{
+  "action" : "create",
+  "tags" : [ {
+    "key" : "key1",
+    "value" : "value1"
+  }, {
+    "key" : "key2",
+    "value" : "value1"
+  } ]
+}
+
+

Example Responses

None

+
+

Status Codes

+
+ + + + + + + +

Status Code

+

Description

+

204

+

File system tags added.

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/CLASS.TXT.json b/docs/sfs/api-ref/CLASS.TXT.json index 1a0ce1be..e193029a 100644 --- a/docs/sfs/api-ref/CLASS.TXT.json +++ b/docs/sfs/api-ref/CLASS.TXT.json @@ -8,6 +8,42 @@ "p_code":"", "code":"1" }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"sfs", + "title":"Calling APIs", + "uri":"sfs_02_0008.html", + "doc_type":"api", + "p_code":"", + "code":"2" + }, + { + "desc":"This section describes the structure of a REST API request, and uses the IAM API for obtaining a user token as an example to demonstrate how to call an API. The obtained ", + "product_code":"sfs", + "title":"Making an API Request", + "uri":"sfs_02_0009.html", + "doc_type":"api", + "p_code":"2", + "code":"3" + }, + { + "desc":"Requests for calling an API can be authenticated using either of the following methods:AK/SK authentication: Requests are encrypted using AK/SK pairs. AK/SK authenticatio", + "product_code":"sfs", + "title":"Authentication", + "uri":"sfs_02_0011.html", + "doc_type":"api", + "p_code":"2", + "code":"4" + }, + { + "desc":"After sending a request, you will receive a response, including a status code, response header, and response body.A status code is a group of digits, ranging from 1xx to ", + "product_code":"sfs", + "title":"Response", + "uri":"sfs_02_0012.html", + "doc_type":"api", + "p_code":"2", + "code":"5" + }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"sfs", @@ -15,7 +51,7 @@ "uri":"sfs_02_0016.html", "doc_type":"api", "p_code":"", - "code":"2" + "code":"6" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -23,8 +59,8 @@ "title":"API Version Queries", "uri":"sfs_02_0017.html", "doc_type":"api", - "p_code":"2", - "code":"3" + "p_code":"6", + "code":"7" }, { "desc":"This API is used to query all available versions of APIs provided by SFS.To support function extension, SFS APIs can be distinguished by version. SFS has two types API ve", @@ -32,8 +68,8 @@ "title":"Querying All API Versions", "uri":"sfs_02_0018.html", "doc_type":"api", - "p_code":"3", - "code":"4" + "p_code":"7", + "code":"8" }, { "desc":"This API is used for querying details about an API version.GET /{api_version}/Parameter descriptionParameterMandatoryTypeDescriptionapi_versionYesStringSpecifies the API ", @@ -41,8 +77,8 @@ "title":"Querying Details About an API Version", "uri":"sfs_02_0019.html", "doc_type":"api", - "p_code":"3", - "code":"5" + "p_code":"7", + "code":"9" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -50,8 +86,8 @@ "title":"File Systems", "uri":"sfs_02_0020.html", "doc_type":"api", - "p_code":"2", - "code":"6" + "p_code":"6", + "code":"10" }, { "desc":"This API is used to create a shared file system. After the file system is created, you need to mount the file system to ECSs to achieve shared file storage.This API is an", @@ -59,8 +95,8 @@ "title":"Creating a Shared File System", "uri":"sfs_02_0021.html", "doc_type":"api", - "p_code":"6", - "code":"7" + "p_code":"10", + "code":"11" }, { "desc":"This API is used to list the basic information of all shared file systems.GET /v2/{project_id}/shares?all_tenants={all_tenants}&status={status}&limit={limit}&offset={offs", @@ -68,8 +104,8 @@ "title":"Querying All Shared File Systems", "uri":"sfs_02_0022.html", "doc_type":"api", - "p_code":"6", - "code":"8" + "p_code":"10", + "code":"12" }, { "desc":"This API is used to query the details about all shared file systems.GET /v2/{project_id}/shares/detail?all_tenants={all_tenants}&project_id={project_id}&status={status}&l", @@ -77,8 +113,8 @@ "title":"Querying Details About All Shared File Systems", "uri":"sfs_02_0023.html", "doc_type":"api", - "p_code":"6", - "code":"9" + "p_code":"10", + "code":"13" }, { "desc":"This API is used to query the details about a shared file system.GET /v2/{project_id}/shares/{share_id}Parameter descriptionParameterMandatoryTypeDescriptionshare_idYesSt", @@ -86,8 +122,8 @@ "title":"Querying Details About a Shared File System", "uri":"sfs_02_0024.html", "doc_type":"api", - "p_code":"6", - "code":"10" + "p_code":"10", + "code":"14" }, { "desc":"This API is used to query mount locations of a shared file system.This API exists only when X-Openstack-Manila-Api-Version in the request header is greater than or equal ", @@ -95,8 +131,8 @@ "title":"Querying Mount Locations of a Shared File System", "uri":"sfs_02_0025.html", "doc_type":"api", - "p_code":"6", - "code":"11" + "p_code":"10", + "code":"15" }, { "desc":"This API is used to modify the name and description of a shared file system.PUT /v2/{project_id}/shares/{share_id}Parameter descriptionParameterMandatoryTypeDescriptionsh", @@ -104,8 +140,8 @@ "title":"Modifying a Shared File System", "uri":"sfs_02_0026.html", "doc_type":"api", - "p_code":"6", - "code":"12" + "p_code":"10", + "code":"16" }, { "desc":"This API is used to delete a shared file system.This API is an asynchronous API. If the returned status code is 202, the API request is successfully delivered and receive", @@ -113,8 +149,8 @@ "title":"Deleting a Shared File System", "uri":"sfs_02_0027.html", "doc_type":"api", - "p_code":"6", - "code":"13" + "p_code":"10", + "code":"17" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -122,8 +158,8 @@ "title":"File System Access Rules", "uri":"sfs_02_0028.html", "doc_type":"api", - "p_code":"2", - "code":"14" + "p_code":"6", + "code":"18" }, { "desc":"This API is used to add a file system access rule.This API is an asynchronous API. If the returned status code is 200, the API request is successfully delivered and recei", @@ -131,8 +167,8 @@ "title":"Adding a File System Access Rule", "uri":"sfs_02_0029.html", "doc_type":"api", - "p_code":"14", - "code":"15" + "p_code":"18", + "code":"19" }, { "desc":"This API is used to delete a file system access rule.This API is an asynchronous API. If the returned status code is 202, the API request is successfully delivered and re", @@ -140,8 +176,8 @@ "title":"Deleting a File System Access Rule", "uri":"sfs_02_0030.html", "doc_type":"api", - "p_code":"14", - "code":"16" + "p_code":"18", + "code":"20" }, { "desc":"This API is used to query the access rules of a shared file system.POST /v2/{project_id}/shares/{share_id}/actionParameter descriptionParameterMandatoryTypeDescriptionsha", @@ -149,8 +185,8 @@ "title":"Querying File System Access Rules", "uri":"sfs_02_0031.html", "doc_type":"api", - "p_code":"14", - "code":"17" + "p_code":"18", + "code":"21" }, { "desc":"This API is used to query quota information.GET /v2/{project_id}/os-quota-sets/{project_id}Parameter descriptionParameterMandatoryTypeDescriptionproject_idYesStringSpecif", @@ -158,8 +194,8 @@ "title":"Quota Management", "uri":"sfs_02_0032.html", "doc_type":"api", - "p_code":"2", - "code":"18" + "p_code":"6", + "code":"22" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -167,8 +203,8 @@ "title":"Expansion and Shrinking", "uri":"sfs_02_0033.html", "doc_type":"api", - "p_code":"2", - "code":"19" + "p_code":"6", + "code":"23" }, { "desc":"This API is used to expand the capacity of a shared file system.This API is an asynchronous API. If the returned status code is 202, the API request is successfully deliv", @@ -176,8 +212,8 @@ "title":"Expanding a Shared File System", "uri":"sfs_02_0034.html", "doc_type":"api", - "p_code":"19", - "code":"20" + "p_code":"23", + "code":"24" }, { "desc":"This API is used to shrink the capacity of a shared file system.This API is an asynchronous API. If the returned status code is 202, the API request is successfully deliv", @@ -185,8 +221,8 @@ "title":"Shrinking a Shared File System", "uri":"sfs_02_0035.html", "doc_type":"api", - "p_code":"19", - "code":"21" + "p_code":"23", + "code":"25" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -194,8 +230,8 @@ "title":"Tag Management", "uri":"sfs_02_0036.html", "doc_type":"api", - "p_code":"2", - "code":"22" + "p_code":"6", + "code":"26" }, { "desc":"This API is used to add a tag to a specified shared file system.A shared file system can have a maximum of 20 tags.The keys of multiple tags added to a shared file system", @@ -203,8 +239,8 @@ "title":"Adding a Tag to a Shared File System", "uri":"sfs_02_0037.html", "doc_type":"api", - "p_code":"22", - "code":"23" + "p_code":"26", + "code":"27" }, { "desc":"This API is used to delete a tag from a specified shared file system.If the key to be deleted does not exist in the shared file system, error 404 is returned after API ca", @@ -212,8 +248,8 @@ "title":"Deleting a Tag from a Shared File System", "uri":"sfs_02_0038.html", "doc_type":"api", - "p_code":"22", - "code":"24" + "p_code":"26", + "code":"28" }, { "desc":"This API is used to query all tags of a specified shared file system.GET /v2/{project_id}/sfs/{share_id}/tagsParameter descriptionParameterMandatoryTypeDescriptionproject", @@ -221,8 +257,8 @@ "title":"Querying Tags of a Shared File System", "uri":"sfs_02_0039.html", "doc_type":"api", - "p_code":"22", - "code":"25" + "p_code":"26", + "code":"29" }, { "desc":"This API is used to query the tags of all file systems of a tenant.GET /v2/{project_id}/sfs/tagsParameter descriptionParameterMandatoryTypeDescriptionproject_idYesStringS", @@ -230,8 +266,8 @@ "title":"Querying Tags of All File Systems of a Tenant", "uri":"sfs_02_0040.html", "doc_type":"api", - "p_code":"22", - "code":"26" + "p_code":"26", + "code":"30" }, { "desc":"This API is used to batch add tags to a shared file system.A shared file system can have a maximum of 20 tags.The keys of multiple tags added to a shared file system must", @@ -239,8 +275,8 @@ "title":"Batch Adding Tags to a Shared File System", "uri":"sfs_02_0041.html", "doc_type":"api", - "p_code":"22", - "code":"27" + "p_code":"26", + "code":"31" }, { "desc":"This API is used to batch delete tags from a specified shared file system.This API is idempotent. If the tags to be deleted do not exist on the shared file system, the de", @@ -248,8 +284,8 @@ "title":"Batch Deleting Tags from a Shared File System", "uri":"sfs_02_0042.html", "doc_type":"api", - "p_code":"22", - "code":"28" + "p_code":"26", + "code":"32" }, { "desc":"This API is used to query shared file systems by tag.POST /v2/{project_id}/sfs/resource_instances/actionParameter descriptionParameterMandatoryTypeDescriptionproject_idYe", @@ -257,8 +293,8 @@ "title":"Querying Shared File Systems by Tag", "uri":"sfs_02_0043.html", "doc_type":"api", - "p_code":"22", - "code":"29" + "p_code":"26", + "code":"33" }, { "desc":"This API is used to query the number of shared file systems by tag.POST /v2/{project_id}/sfs/resource_instances/actionParameter descriptionParameterMandatoryTypeDescripti", @@ -266,8 +302,8 @@ "title":"Querying the Number of Shared File Systems by Tag", "uri":"sfs_02_0044.html", "doc_type":"api", - "p_code":"22", - "code":"30" + "p_code":"26", + "code":"34" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -276,223 +312,223 @@ "uri":"sfs_02_0049.html", "doc_type":"api", "p_code":"", - "code":"31" + "code":"35" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"sfs", "title":"Lifecycle Management", - "uri":"sfs_02_0050.html", + "uri":"topic_300000000.html", "doc_type":"api", - "p_code":"31", - "code":"32" - }, - { - "desc":"This API is used to create an SFS Turbo file system.URI formatPOST /v1/{project_id}/sfs-turbo/sharesPOST /v1/{project_id}/sfs-turbo/sharesParameter descriptionParameterMa", - "product_code":"sfs", - "title":"Creating a File System", - "uri":"sfs_02_0051.html", - "doc_type":"api", - "p_code":"32", - "code":"33" - }, - { - "desc":"This API is used to delete an SFS Turbo file system.URI formatDELETE /v1/{project_id}/sfs-turbo/shares/{share_id}DELETE /v1/{project_id}/sfs-turbo/shares/{share_id}Parame", - "product_code":"sfs", - "title":"Deleting a File System", - "uri":"sfs_02_0052.html", - "doc_type":"api", - "p_code":"32", - "code":"34" - }, - { - "desc":"This API is used to query details about all SFS Turbo file systems.URI formatGET /v1/{project_id}/sfs-turbo/shares/detail?limit={limit}&offset={offset}GET /v1/{project_id", - "product_code":"sfs", - "title":"Querying Details About All File Systems", - "uri":"sfs_02_0053.html", - "doc_type":"api", - "p_code":"32", - "code":"35" - }, - { - "desc":"This API is used to query details about an SFS Turbo file system.URI formatGET /v1/{project_id}/sfs-turbo/shares/{share_id}GET /v1/{project_id}/sfs-turbo/shares/{share_id", - "product_code":"sfs", - "title":"Querying Details About a Single File System", - "uri":"sfs_02_0054.html", - "doc_type":"api", - "p_code":"32", + "p_code":"35", "code":"36" }, { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "desc":"This API is used to create a file system.POST /v1/{project_id}/sfs-turbo/sharesStatus code: 202Previous-generation SFS Turbo file system: This example creates an SFS Turb", "product_code":"sfs", - "title":"Storage Capacity Management", - "uri":"sfs_02_0055.html", + "title":"Creating a File System", + "uri":"CreateShare.html", "doc_type":"api", - "p_code":"31", + "p_code":"36", "code":"37" }, { - "desc":"This API is used to expand the capacity of an SFS Turbo file system. Capacity expansion is an asynchronous operation. You can check whether the expansion is successful by", + "desc":"This API is used to query details about an SFS Turbo file system.GET /v1/{project_id}/sfs-turbo/shares/{share_id}Status code: 200Querying the file system whose ID is 77ba", + "product_code":"sfs", + "title":"Querying Details About a File System", + "uri":"ShowShare.html", + "doc_type":"api", + "p_code":"36", + "code":"38" + }, + { + "desc":"This API is used to delete a file system.DELETE /v1/{project_id}/sfs-turbo/shares/{share_id}NoneDeleting the file system whose ID is 77ba6f4b-6365-4895-8dda-bc7142af4ddeN", + "product_code":"sfs", + "title":"Deleting a File System", + "uri":"DeleteShare.html", + "doc_type":"api", + "p_code":"36", + "code":"39" + }, + { + "desc":"This API is used to obtain the file system list.GET /v1/{project_id}/sfs-turbo/shares/detailStatus code: 200Querying file systems in the project whose ID e1e45b08f3ea4480", + "product_code":"sfs", + "title":"Obtaining the File System List", + "uri":"ListShares.html", + "doc_type":"api", + "p_code":"36", + "code":"40" + }, + { + "desc":"This API is used to expand the capacity of a file system.POST /v1/{project_id}/sfs-turbo/shares/{share_id}/actionStatus code: 202Expanding the capacity of a file system t", "product_code":"sfs", "title":"Expanding the Capacity of a File System", - "uri":"sfs_02_0056.html", + "uri":"ExpandShare.html", "doc_type":"api", - "p_code":"37", - "code":"38" + "p_code":"36", + "code":"41" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"sfs", "title":"Connection Management", - "uri":"sfs_02_0096.html", + "uri":"topic_300000001.html", "doc_type":"api", - "p_code":"31", - "code":"39" + "p_code":"35", + "code":"42" }, { - "desc":"This API is used to change the security group bound to an SFS Turbo file system. Security group change is an asynchronous task. You can determine whether the security gro", + "desc":"This API is used to change the security group associated with an SFS Turbo file system. Security group change is an asynchronous task. You can check whether the security ", "product_code":"sfs", - "title":"Changing a Security Group", - "uri":"sfs_02_0097.html", + "title":"Changing the Security Group Associated with a File System", + "uri":"ChangeSecurityGroup.html", "doc_type":"api", - "p_code":"39", - "code":"40" + "p_code":"42", + "code":"43" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"sfs", "title":"Tag Management", - "uri":"sfs_02_0074.html", + "uri":"topic_300000002.html", "doc_type":"api", - "p_code":"31", - "code":"41" - }, - { - "desc":"This API is used to add a tag to an SFS Turbo file system.A shared file system can have a maximum of 20 tags.The keys of multiple tags added to a shared file system must ", - "product_code":"sfs", - "title":"Adding a Tag to a File System", - "uri":"sfs_02_0075.html", - "doc_type":"api", - "p_code":"41", - "code":"42" - }, - { - "desc":"This API is used to delete a tag from an SFS Turbo file system.If the key to be deleted does not exist in the shared file system, error 404 is returned after API calling.", - "product_code":"sfs", - "title":"Deleting a Tag from a File System", - "uri":"sfs_02_0076.html", - "doc_type":"api", - "p_code":"41", - "code":"43" - }, - { - "desc":"This API is used to query all tags of an SFS Turbo file system.GET /v1/{project_id}/sfs-turbo/{share_id}/tagsParameter descriptionParameterMandatoryTypeDescriptionproject", - "product_code":"sfs", - "title":"Querying Tags of a File System", - "uri":"sfs_02_0077.html", - "doc_type":"api", - "p_code":"41", + "p_code":"35", "code":"44" }, { - "desc":"This API is used to batch add tags to an SFS Turbo file system.A shared file system can have a maximum of 20 tags.The keys of multiple tags added to a shared file system ", + "desc":"This API is used to add a tag to a specified file system. A maximum of 20 tags can be added to a file system. Tag keys added to the same file system must be unique. This ", "product_code":"sfs", - "title":"Batch Adding Tags to a File System", - "uri":"sfs_02_0078.html", + "title":"Adding a Tag for a File System", + "uri":"CreateSharedTag.html", "doc_type":"api", - "p_code":"41", + "p_code":"44", "code":"45" }, { - "desc":"This API is used to query the tags of all file systems of a tenant.GET /v1/{project_id}/sfs-turbo/tagsParameter descriptionParameterMandatoryTypeDescriptionproject_idYesS", + "desc":"This API is used to query all tags of a specified file system.GET /v1/{project_id}/sfs-turbo/{share_id}/tagsStatus code: 200Querying tags of the file system whose ID is 7", "product_code":"sfs", - "title":"Querying Tags of All File Systems of a Tenant", - "uri":"sfs_02_0094.html", + "title":"Querying Tags of a File System", + "uri":"ShowSharedTags.html", "doc_type":"api", - "p_code":"41", + "p_code":"44", "code":"46" }, { - "desc":"This API is used to query SFS Turbo file systems by tag.POST /v1/{project_id}/sfs-turbo/resource_instances/actionParameter descriptionParameterMandatoryTypeDescriptionpro", + "desc":"This API is used to delete a tag of a specified file system. If the key to be deleted does not exist, error 404 will be returned.DELETE /v1/{project_id}/sfs-turbo/{share_", "product_code":"sfs", - "title":"Querying File Systems by Tag", - "uri":"sfs_02_0095.html", + "title":"Deleting a Tag of a File System", + "uri":"DeleteSharedTag.html", "doc_type":"api", - "p_code":"41", + "p_code":"44", "code":"47" }, { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "desc":"This API is used to batch add tags for a specified file system.A maximum of 20 tags can be added to a file system. Tag keys added to the same file system must be unique. ", "product_code":"sfs", - "title":"Name Management", - "uri":"en-us_topic_0000001537230113.html", + "title":"Batch Adding Tags to a File System", + "uri":"BatchAddSharedTags.html", "doc_type":"api", - "p_code":"31", + "p_code":"44", "code":"48" }, { - "desc":"This API is used to change the name of a file system.POST /v1/{project_id}/sfs-turbo/shares/{share_id}/actionNoneNone", + "desc":"This API is used to query the tags of all file systems of a tenant.GET /v1/{project_id}/sfs-turbo/tagsStatus code: 200Query tags of all file systems in the project whose ", "product_code":"sfs", - "title":"Changing the Name of a File System", - "uri":"en-us_topic_0000001537629949.html", + "title":"Querying Tags of All File Systems of a Tenant", + "uri":"ListSharedTags.html", "doc_type":"api", - "p_code":"48", + "p_code":"44", "code":"49" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"sfs", - "title":"Permissions Management", - "uri":"en-us_topic_0000001663116961.html", + "title":"Name Management", + "uri":"topic_300000003.html", "doc_type":"api", - "p_code":"31", + "p_code":"35", "code":"50" }, { - "desc":"This API is used to create a permission rule.POST /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rulesStatus code: 200Status code: 400Status code: 500Status code: 2", + "desc":"This API is used to change the name of an SFS Turbo file system.POST /v1/{project_id}/sfs-turbo/shares/{share_id}/actionNoneChanging the name of an SFS Turbo file system ", "product_code":"sfs", - "title":"Creating a Permission Rule", - "uri":"en-us_topic_0000001663156945.html", + "title":"Changing the Name of a File System", + "uri":"ChangeShareName.html", "doc_type":"api", "p_code":"50", "code":"51" }, { - "desc":"This API is used to query the permission rules of a file system.GET /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rulesStatus code: 200Status code: 500NoneStatus c", + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"sfs", + "title":"Permissions Management", + "uri":"topic_300000007.html", + "doc_type":"api", + "p_code":"35", + "code":"52" + }, + { + "desc":"This API is used to create a permission rule.A maximum of 64 permissions rules can be configured for a file system.POST /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/pe", + "product_code":"sfs", + "title":"Creating a Permission Rule", + "uri":"CreatePermRule.html", + "doc_type":"api", + "p_code":"52", + "code":"53" + }, + { + "desc":"This API is used to query the permission rules of a file system.GET /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rulesStatus code: 200Status code: 500Querying the", "product_code":"sfs", "title":"Querying Permission Rules of a File System", - "uri":"en-us_topic_0000001614397248.html", + "uri":"ListPermRules.html", "doc_type":"api", - "p_code":"50", - "code":"52" + "p_code":"52", + "code":"54" }, { "desc":"This API is used to query a specific permission rule of a file system.GET /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules/{rule_id}Status code: 200Status code:", "product_code":"sfs", "title":"Querying a Permission Rule by ID", - "uri":"en-us_topic_0000001662877113.html", + "uri":"ShowPermRule.html", "doc_type":"api", - "p_code":"50", - "code":"53" + "p_code":"52", + "code":"55" }, { "desc":"This API is used to modify a permission rule.PUT /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules/{rule_id}Status code: 200Status code: 400Status code: 500Statu", "product_code":"sfs", "title":"Modifying a Permission Rule", - "uri":"en-us_topic_0000001662997101.html", + "uri":"UpdatePermRule.html", "doc_type":"api", - "p_code":"50", - "code":"54" + "p_code":"52", + "code":"56" }, { - "desc":"This API is used to delete a permission rule.DELETE /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules/{rule_id}Status code: 400Status code: 500NoneStatus code: 5", + "desc":"This API is used to delete a permission rule.DELETE /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules/{rule_id}Status code: 400Status code: 500Deleting the permi", "product_code":"sfs", "title":"Deleting a Permissions Rule", - "uri":"en-us_topic_0000001614557076.html", + "uri":"DeletePermRule.html", "doc_type":"api", - "p_code":"50", - "code":"55" + "p_code":"52", + "code":"57" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"sfs", + "title":"Task Management", + "uri":"topic_300000008.html", + "doc_type":"api", + "p_code":"35", + "code":"58" + }, + { + "desc":"This API is used to query the execution status of an SFS Turbo asynchronous task. For example, you can query the task execution status using the jobId returned after you ", + "product_code":"sfs", + "title":"Querying Details About a Task", + "uri":"ShowJobDetail.html", + "doc_type":"api", + "p_code":"58", + "code":"59" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -501,16 +537,16 @@ "uri":"sfs_02_0079.html", "doc_type":"api", "p_code":"", - "code":"56" + "code":"60" }, { - "desc":"This section describes fine-grained permissions management for your SFS. If your cloud account does not need individual IAM users, then you may skip over this section.By ", + "desc":"This section describes fine-grained permissions management for your SFS resources. If your cloud account does not need individual IAM users, then you may skip over this s", "product_code":"sfs", "title":"Introduction", "uri":"sfs_02_0080.html", "doc_type":"api", - "p_code":"56", - "code":"57" + "p_code":"60", + "code":"61" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -518,8 +554,8 @@ "title":"Supported Actions", "uri":"sfs_02_0081.html", "doc_type":"api", - "p_code":"56", - "code":"58" + "p_code":"60", + "code":"62" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -527,8 +563,8 @@ "title":"SFS Turbo Actions", "uri":"sfs_02_0083.html", "doc_type":"api", - "p_code":"58", - "code":"59" + "p_code":"62", + "code":"63" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -537,7 +573,7 @@ "uri":"sfs_02_0084.html", "doc_type":"api", "p_code":"", - "code":"60" + "code":"64" }, { "desc":"SFS Turbo file system status elementsReturned ValueDescription100CREATING: The file system is being created.200ACTIVE: The file system is active. An SFS Turbo file system", @@ -545,8 +581,8 @@ "title":"SFS Turbo File System Statuses", "uri":"sfs_02_0085.html", "doc_type":"api", - "p_code":"60", - "code":"61" + "p_code":"64", + "code":"65" }, { "desc":"SFS Turbo file system substatus elementsReturned ValueDescription121Expanding the capacity online.221Online capacity expansion succeeded.321Failed to perform online capac", @@ -554,8 +590,8 @@ "title":"SFS Turbo File System Substatuses", "uri":"sfs_02_0086.html", "doc_type":"api", - "p_code":"60", - "code":"62" + "p_code":"64", + "code":"66" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -564,7 +600,7 @@ "uri":"sfs_02_0088.html", "doc_type":"api", "p_code":"", - "code":"63" + "code":"67" }, { "desc":"NormalReturned ValueDescription200 OKSpecifies the normal response for the GET and PUT operations.201 CreatedSpecifies the normal response for the POST operation.202 Acce", @@ -572,8 +608,8 @@ "title":"Status Codes", "uri":"sfs_02_0089.html", "doc_type":"api", - "p_code":"63", - "code":"64" + "p_code":"67", + "code":"68" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -581,8 +617,26 @@ "title":"SFS Turbo Error Codes", "uri":"ErrorCode.html", "doc_type":"api", - "p_code":"63", - "code":"65" + "p_code":"67", + "code":"69" + }, + { + "desc":"When calling an API, you need to use the AK/SK to verify the signature. To obtain the AK/SK, perform the following steps:Keep the AK/SK file properly to prevent informati", + "product_code":"sfs", + "title":"Obtaining Access Keys (AK/SK)", + "uri":"sfs_02_0120.html", + "doc_type":"api", + "p_code":"67", + "code":"70" + }, + { + "desc":"A project ID is required for some URLs when an API is called. Therefore, you need to obtain a project ID in advance. Two methods are available:Obtain the Project ID by Ca", + "product_code":"sfs", + "title":"Obtaining a Project ID", + "uri":"sfs_02_0090.html", + "doc_type":"api", + "p_code":"67", + "code":"71" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -591,6 +645,6 @@ "uri":"sfs_02_0092.html", "doc_type":"api", "p_code":"", - "code":"66" + "code":"72" } ] \ No newline at end of file diff --git a/docs/sfs/api-ref/ChangeSecurityGroup.html b/docs/sfs/api-ref/ChangeSecurityGroup.html new file mode 100644 index 00000000..f863d3f9 --- /dev/null +++ b/docs/sfs/api-ref/ChangeSecurityGroup.html @@ -0,0 +1,177 @@ + + +

Changing the Security Group Associated with a File System

+

Function

This API is used to change the security group associated with an SFS Turbo file system. Security group change is an asynchronous task. You can check whether the security group is changed based on the value of sub_status returned after calling the API to query details of a file system. If value 232 is returned, the security group has been changed.

+
+

URI

POST /v1/{project_id}/sfs-turbo/shares/{share_id}/action

+ +
+ + + + + + + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+

share_id

+

Yes

+

String

+

File system ID

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+ +
+ + + + + + + + + + + +
Table 3 Request body parameters

Parameter

+

Mandatory

+

Type

+

Description

+

change_security_group

+

Yes

+

ChangeSecurityGroup object

+

Object of change_security_group

+
+
+ +
+ + + + + + + + + + + +
Table 4 ChangeSecurityGroup

Parameter

+

Mandatory

+

Type

+

Description

+

security_group_id

+

Yes

+

String

+

ID of the security group to be changed

+
+
+
+

Response Parameters

Status code: 202

+ +
+ + + + + + + + + +
Table 5 Response body parameters

Parameter

+

Type

+

Description

+

id

+

String

+

ID of the SFS Turbo file system

+
+
+
+

Example Requests

Changing the security group of a file system (target security group ID 26f6b565-240e-43c3-8867-03f0bd975433)

+
{
+  "change_security_group" : {
+    "security_group_id" : "26f6b565-240e-43c3-8867-03f0bd975433"
+  }
+}
+
+

Example Responses

Status code: 202

+

ID of the SFS Turbo file system

+
{
+  "id" : "67d4bd5e-7b2f-4c24-9a0b-c0038940c6f8"
+}
+
+

Status Codes

+
+ + + + + + + +

Status Code

+

Description

+

202

+

ID of the SFS Turbo file system

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/ChangeShareName.html b/docs/sfs/api-ref/ChangeShareName.html new file mode 100644 index 00000000..d6a2a2b5 --- /dev/null +++ b/docs/sfs/api-ref/ChangeShareName.html @@ -0,0 +1,169 @@ + + +

Changing the Name of a File System

+

Function

This API is used to change the name of an SFS Turbo file system.

+
+

URI

POST /v1/{project_id}/sfs-turbo/shares/{share_id}/action

+ +
+ + + + + + + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+

share_id

+

Yes

+

String

+

File system ID

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+ +
+ + + + + + + + + + + +
Table 3 Request body parameters

Parameter

+

Mandatory

+

Type

+

Description

+

change_name

+

Yes

+

ShareName object

+

SFS Turbo file system to be modified

+
+
+ +
+ + + + + + + + + + + +
Table 4 ShareName

Parameter

+

Mandatory

+

Type

+

Description

+

name

+

Yes

+

String

+

Name of the SFS Turbo file system to be modified

+
+
+
+

Response Parameters

None

+
+

Example Requests

Changing the name of an SFS Turbo file system to sfs-turbo-test1

+
{
+  "change_name" : {
+    "name" : "sfs-turbo-test1"
+  }
+}
+
+

Example Responses

None

+
+

Status Codes

+
+ + + + + + + + + + + + + + + + +

Status Code

+

Description

+

204

+

Request successful

+

400

+

Invalid parameter

+

409

+

The file system name already exists.

+

500

+

Internal error

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/CreatePermRule.html b/docs/sfs/api-ref/CreatePermRule.html new file mode 100644 index 00000000..8b38f2b8 --- /dev/null +++ b/docs/sfs/api-ref/CreatePermRule.html @@ -0,0 +1,352 @@ + + +

Creating a Permission Rule

+

Function

This API is used to create a permission rule.

+
+

Constraints

A maximum of 64 permissions rules can be configured for a file system.

+
+

URI

POST /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules

+ +
+ + + + + + + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+

share_id

+

Yes

+

String

+

File system ID

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+ +
+ + + + + + + + + + + +
Table 3 Request body parameters

Parameter

+

Mandatory

+

Type

+

Description

+

rules

+

Yes

+

Array of OnePermRuleRequestInfo objects

+

Permission rule details. A maximum of five rules can be created at a time.

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
Table 4 OnePermRuleRequestInfo

Parameter

+

Mandatory

+

Type

+

Description

+

ip_cidr

+

No

+

String

+

IP address or IP address range of the object to be authorized. Once configured, this parameter cannot be modified.

+

rw_type

+

No

+

String

+

Read/write permission of the object to be authorized.

+
  • rw: read and write permission, which is the default option

    +
  • ro: read-only permission

    +
  • none: no permission

    +
+

user_type

+

No

+

String

+

File system access permission granted to the user of the object to be authorized. Supported values are:

+
  • no_root_squash: allows any user including the root user on the client to access the file system as who they are, instead of mapping them to another user.

    +
  • root_squash: allows the root user on the client to access the file system as nfsnobody.

    +
  • all_squash: allows any user on the client to access the file system as nfsnobody.

    +
+
+
+
+

Response Parameters

Status code: 200

+ +
+ + + + + + + + + +
Table 5 Response body parameters

Parameter

+

Type

+

Description

+

rules

+

Array of OnePermRuleResponseInfo objects

+

Permission rule details

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
Table 6 OnePermRuleResponseInfo

Parameter

+

Type

+

Description

+

id

+

String

+

Permission rule ID

+

ip_cidr

+

String

+

IP address or IP address range of the authorized object

+

rw_type

+

String

+

Read/write permission of the authorized object.

+
  • rw: read and write permission, which is the default option

    +
  • ro: read-only permission

    +
  • none: no permission

    +
+

user_type

+

String

+

File system access permission granted to the user of the authorized object. Supported values are:

+
  • no_root_squash: allows the root user on the client to access the file system as root.

    +
  • root_squash: allows the root user on the client to access the file system as nfsnobody.

    +
  • all_squash: allows any user on the client to access the file system as nfsnobody. It is the default value.

    +
+
+
+

Status code: 400

+ +
+ + + + + + + + + + + + + +
Table 7 Response body parameters

Parameter

+

Type

+

Description

+

errCode

+

String

+

Error code

+

Minimum: 8

+

Maximum: 36

+

errMsg

+

String

+

Error description

+

Minimum: 2

+

Maximum: 512

+
+
+

Status code: 500

+ +
+ + + + + + + + + + + + + +
Table 8 Response body parameters

Parameter

+

Type

+

Description

+

errCode

+

String

+

Error code

+

Minimum: 8

+

Maximum: 36

+

errMsg

+

String

+

Error description

+

Minimum: 2

+

Maximum: 512

+
+
+
+

Example Requests

{
+  "rules" : [ {
+    "ip_cidr" : "192.168.0.0/16",
+    "rw_type" : "rw",
+    "user_type" : "no_root_squash"
+  }, {
+    "ip_cidr" : "192.32.0.0/16",
+    "rw_type" : "rw",
+    "user_type" : "no_root_squash"
+  } ]
+}
+
+

Example Responses

Status code: 200

+

Successful creation

+
{
+  "rules" : [ {
+    "id" : "1131ed520xxxxxxebedb6e57xxxxxxxx",
+    "ip_cidr" : "192.32.0.0/16",
+    "rw_type" : "rw",
+    "user_type" : "no_root_squash"
+  }, {
+    "id" : "1131ed520xxxxxxebedb6e57xxxxxxxx",
+    "ip_cidr" : "192.32.0.1",
+    "rw_type" : "rw",
+    "user_type" : "no_root_squash"
+  } ]
+}
+

Status code: 400

+

Error response

+
{
+  "errCode" : "SFS.TURBO.0001",
+  "errMsg" : "Rules not allowed empty"
+}
+

Status code: 500

+

Error response

+
{
+  "errCode" : "SFS.TURBO.0005",
+  "errMsg" : "Internal server error"
+}
+
+

Status Codes

+
+ + + + + + + + + + + + + +

Status Code

+

Description

+

200

+

Successful creation

+

400

+

Error response

+

500

+

Error response

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/CreateShare.html b/docs/sfs/api-ref/CreateShare.html new file mode 100644 index 00000000..f9bf607e --- /dev/null +++ b/docs/sfs/api-ref/CreateShare.html @@ -0,0 +1,405 @@ + + +

Creating a File System

+

Function

This API is used to create a file system.

+
+

URI

POST /v1/{project_id}/sfs-turbo/shares

+ +
+ + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+ +
+ + + + + + + + + + + +
Table 3 Request body parameters

Parameter

+

Mandatory

+

Type

+

Description

+

share

+

Yes

+

Share object

+

Request body for creating a file system

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 4 Share

Parameter

+

Mandatory

+

Type

+

Description

+

availability_zone

+

Yes

+

String

+

Code of the AZ where the file system is located. For details about the code, see section "Regions and Endpoints."

+

description

+

No

+

String

+

Description of the file system, which can contain 0 to 255 characters. This parameter is not supported by the current version.

+

Minimum: 0

+

Maximum: 255

+

metadata

+

No

+

Metadata object

+

Metadata of the file system. The value consists of key and value pairs as a directory of strings.

+

name

+

Yes

+

String

+

Name of the SFS Turbo file system. The name contains 4 to 64 characters and must start with a letter. It can contain letters (case insensitive), digits, hyphens (-), and underscores (_), and cannot contain other special characters.

+

Minimum: 4

+

Maximum: 64

+

security_group_id

+

Yes

+

String

+

Security group ID of a tenant in a region. You can obtain the security group ID from the console or by following the instructions provided in section "Querying Security Groups" in Virtual Private Cloud API Reference.

+

share_proto

+

Yes

+

String

+

File sharing protocol. The valid value is NFS. Network File System (NFS) is a distributed file system protocol that allows different computers and operating systems to share data over a network.

+

share_type

+

Yes

+

String

+

File system type. Valid values are STANDARD and PERFORMANCE. This field is not returned when the file system is being created.

+
  • For a previous-generation SFS Turbo file system, specify STANDARD for a Standard or Standard - Enhanced file system, and PERFORMANCE for a Performance or Performance - Enhanced file system.
  • For a 250 MB/s/TiB, 125 MB/s/TiB, 40 MB/s/TiB, or 20 MB/s/TiB file system, this field is not verified. Specify either STANDARD or PERFORMANCE.
+

+

size

+

Yes

+

Integer

+
  • For a previous-generation SFS Turbo file system, the capacity ranges from 500 to 32768, in GiB.
  • For a previous-generation SFS Turbo file system with expand_type="bandwidth" configured under metadata, the capacity ranges from 10240 to 3276800, in GiB.
  • For a 20 MB/s/TiB file system with expand_type="hpc" and hpc_bw="20M" configured under metadata, the capacity ranges from 3686 to 1048576 (in GiB) and must be a multiple of 1.2 TiB. The desired capacity must be converted to GiB and rounded down to the nearest integer. For example, specify 3686 GiB for a 3.6 TiB file system, 4915 GiB for a 4.8 TiB file system, and 8601 GiB for a 8.4 TiB file system.
  • For a 40 MB/s/TiB file system with expand_type="hpc" and hpc_bw="40M" configured under metadata, the capacity ranges from 1228 to 1048576 (in GiB) and must be a multiple of 1.2 TiB. The desired capacity must be converted to GiB and rounded down to the nearest integer. For example, specify 3686 GiB for a 3.6 TiB file system, 4915 GiB for a 4.8 TiB file system, and 8601 GiB for a 8.4 TiB file system.
  • For a 125 MB/s/TiB file system with expand_type="hpc" and hpc_bw="125M" configured under metadata, the capacity ranges from 1228 to 1048576 (in GiB) and must be a multiple of 1.2 TiB. The desired capacity must be converted to GiB and rounded down to the nearest integer. For example, specify 3686 GiB for a 3.6 TiB file system, 4915 GiB for a 4.8 TiB file system, and 8601 GiB for a 8.4 TiB file system.
  • For a 250 MB/s/TiB file system with expand_type="hpc" and hpc_bw="250M" configured under metadata, the capacity ranges from 1228 to 1048576 (in GiB) and must be a multiple of 1.2 TiB. The desired capacity must be converted to GiB and rounded down to the nearest integer. For example, specify 3686 GiB for a 3.6 TiB file system, 4915 GiB for a 4.8 TiB file system, and 8601 GiB for a 8.4 TiB file system.
+

+

+

+

subnet_id

+

Yes

+

String

+

Subnet ID of a tenant in a VPC. You can obtain the ID from the VPC console or by following the instructions provided in section "Querying Subnets" in Virtual Private Cloud API Reference.

+

vpc_id

+

Yes

+

String

+

VPC ID of a tenant in a region. You can obtain the VPC ID from the console or by following the instructions provided in section "Querying VPCs" in Virtual Private Cloud API Reference.

+

backup_id

+

No

+

String

+

Backup ID. This parameter is mandatory if you create a file system from a backup.

+

tags

+

No

+

Array of ResourceTag objects

+

Tag list

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
Table 5 Metadata

Parameter

+

Mandatory

+

Type

+

Description

+

crypt_key_id

+

No

+

String

+

ID of a KMS professional key. This parameter is used if you want to create an encrypted file system.

+

expand_type

+

No

+

String

+

Extension type. This parameter is not returned when the file system is being created.

+

This parameter is mandatory when you are creating an SFS Turbo 250 MB/s/TiB, 125 MB/s/TiB, 40 MB/s/TiB, 20 MB/s/TiB, or Enhanced file system.

+
  • Specify bandwidth when you are creating a Standard - Enhanced or Performance - Enhanced file system.
  • Specify hpc when you are creating a 250 MB/s/TiB, 125 MB/s/TiB, 40 MB/s/TiB, or 20 MB/s/TiB file system.
+

+

hpc_bw

+

No

+

String

+

File system bandwidth.

+

This parameter is mandatory when you are creating an SFS Turbo 250 MB/s/TiB, 125 MB/s/TiB, 40 MB/s/TiB, or 20 MB/s/TiB file system.

+

Specify 20M for a 20 MB/s/TiB file system, 40M for a 40 MB/s/TiB file system, 125M for a 125 MB/s/TiB file system, and 250M for a 250 MB/s/TiB file system.

+
+
+ +
+ + + + + + + + + + + + + + + + +
Table 6 ResourceTag

Parameter

+

Mandatory

+

Type

+

Description

+

key

+

Yes

+

String

+

Tag key.

+

It can contain a maximum of 128 characters.

+

It cannot be left empty and cannot contain the following characters: ASCII (0-31), equal signs (=), asterisks (*), left angle brackets (<), right angle brackets (>), backslashes (), commas (,), vertical bars (|), and slashes (/). It can contain only letters, digits, hyphens (-), and underscores (_).

+

Minimum: 1

+

Maximum: 128

+

value

+

Yes

+

String

+

Tag value.

+

Each tag value can contain a maximum of 255 characters and can be an empty string.

+

It cannot contain the following characters: ASCII (0-31), equal signs (=), asterisks (*), left angle brackets (<), right angle brackets (>), backslashes (), commas (,), vertical bars (|), and slashes (/). It can contain only letters, digits, hyphens (-), and underscores (_).

+

Minimum: 0

+

Maximum: 255

+
+
+
+

Response Parameters

Status code: 202

+ +
+ + + + + + + + + + + + + + + + + +
Table 7 Response body parameters

Parameter

+

Type

+

Description

+

id

+

String

+

ID of the created SFS Turbo file system

+

name

+

String

+

Name of the created SFS Turbo file system

+

status

+

String

+

Status of the SFS Turbo file system

+
+
+
+

Example Requests

  • Previous-generation SFS Turbo file system: This example creates an SFS Turbo Standard file system in the AZ whose AZ code is example, with the file system name set to sfs-turbo-test, protocol type to NFS, capacity to 500 GB. The security group ID is 8c4ebbd0-6edf-4aae-8353-xxx, the subnet ID is b8884abe-f47b-4917-9f6c-xxx, and the VPC ID is d651ea2b-2b20-4c6d-8bbf-xxx.
    POST HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares
    +
    +{
    +  "share" : {
    +    "name" : "sfs-turbo-test",
    +    "availability_zone" : "example",
    +    "security_group_id" : "8c4ebbd0-6edf-4aae-8353-xxx",
    +    "share_proto" : "NFS",
    +    "share_type" : "STANDARD",
    +    "size" : 500,
    +    "subnet_id" : "b8884abe-f47b-4917-9f6c-xxx",
    +    "vpc_id" : "d651ea2b-2b20-4c6d-8bbf-xxx"
    +  }
    +}
    +
  • 125 MB/s/TiB: This example creates an SFS Turbo 125 MB/s/TiB file system in the AZ whose AZ code is example, with the file system name set to sfs-turbo-test, protocol type to NFS, capacity to 3686 GB. The security group ID is 8c4ebbd0-6edf-4aae-8353-xxx, the subnet ID is b8884abe-f47b-4917-9f6c-xxx, and the VPC ID is d651ea2b-2b20-4c6d-8bbf-xxx.
    POST HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares
    +
    +{
    +  "share" : {
    +    "name" : "sfs-turbo-test",
    +    "availability_zone" : "example",
    +    "security_group_id" : "8c4ebbd0-6edf-4aae-8353-xxx",
    +    "share_proto" : "NFS",
    +    "share_type" : "STANDARD",
    +    "size" : 3686,
    +    "subnet_id" : "b8884abe-f47b-4917-9f6c-xxx",
    +    "vpc_id" : "d651ea2b-2b20-4c6d-8bbf-xxx",
    +    "metadata" : {
    +      "expand_type" : "hpc",
    +      "hpc_bw" : "125M"
    +    }
    +  }
    +}
    +
+
+

Example Responses

Status code: 202

+

Response body for creating a file system

+
{
+  "id" : "708c017c-54b5-429a-a098-7692e23fa518",
+  "name" : "sfs-turbo-test",
+  "status" : "100"
+}
+
+

Status Codes

+
+ + + + + + + +

Status Code

+

Description

+

202

+

Response body for creating a file system

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/CreateSharedTag.html b/docs/sfs/api-ref/CreateSharedTag.html new file mode 100644 index 00000000..73191bc5 --- /dev/null +++ b/docs/sfs/api-ref/CreateSharedTag.html @@ -0,0 +1,172 @@ + + +

Adding a Tag for a File System

+

Function

This API is used to add a tag to a specified file system. A maximum of 20 tags can be added to a file system. Tag keys added to the same file system must be unique. This API is idempotent. If the file system already has the key you want to add, the tag will be updated.

+
+

URI

POST /v1/{project_id}/sfs-turbo/{share_id}/tags

+ +
+ + + + + + + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+

share_id

+

Yes

+

String

+

File system ID

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+ +
+ + + + + + + + + + + +
Table 3 Request body parameters

Parameter

+

Mandatory

+

Type

+

Description

+

tag

+

Yes

+

ResourceTag object

+

Description of the resource_tag field

+
+
+ +
+ + + + + + + + + + + + + + + + +
Table 4 ResourceTag

Parameter

+

Mandatory

+

Type

+

Description

+

key

+

Yes

+

String

+

Tag key.

+

It can contain a maximum of 128 characters.

+

It cannot be left empty and cannot contain the following characters: ASCII (0-31), equal signs (=), asterisks (*), left angle brackets (<), right angle brackets (>), backslashes (), commas (,), vertical bars (|), and slashes (/). It can contain only letters, digits, hyphens (-), and underscores (_).

+

Minimum: 1

+

Maximum: 128

+

value

+

Yes

+

String

+

Tag value.

+

Each tag value can contain a maximum of 255 characters and can be an empty string.

+

It cannot contain the following characters: ASCII (0-31), equal signs (=), asterisks (*), left angle brackets (<), right angle brackets (>), backslashes (), commas (,), vertical bars (|), and slashes (/). It can contain only letters, digits, hyphens (-), and underscores (_).

+

Minimum: 0

+

Maximum: 255

+
+
+
+

Response Parameters

None

+
+

Example Requests

Creating a file system tag, with tag value set to key1 and tag key value1

+
{
+  "tag" : {
+    "key" : "key1",
+    "value" : "value1"
+  }
+}
+
+

Example Responses

None

+
+

Status Codes

+
+ + + + + + + +

Status Code

+

Description

+

204

+

Tag adding request delivered.

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/DeletePermRule.html b/docs/sfs/api-ref/DeletePermRule.html new file mode 100644 index 00000000..3b9ea438 --- /dev/null +++ b/docs/sfs/api-ref/DeletePermRule.html @@ -0,0 +1,189 @@ + + +

Deleting a Permissions Rule

+

Function

This API is used to delete a permission rule.

+
+

URI

DELETE /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules/{rule_id}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+

share_id

+

Yes

+

String

+

File system ID

+

rule_id

+

Yes

+

String

+

Permission rule ID

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+
+

Response Parameters

Status code: 400

+ +
+ + + + + + + + + + + + + +
Table 3 Response body parameters

Parameter

+

Type

+

Description

+

errCode

+

String

+

Error code

+

Minimum: 8

+

Maximum: 36

+

errMsg

+

String

+

Error description

+

Minimum: 2

+

Maximum: 512

+
+
+

Status code: 500

+ +
+ + + + + + + + + + + + + +
Table 4 Response body parameters

Parameter

+

Type

+

Description

+

errCode

+

String

+

Error code

+

Minimum: 8

+

Maximum: 36

+

errMsg

+

String

+

Error description

+

Minimum: 2

+

Maximum: 512

+
+
+
+

Example Requests

Deleting the permission rule whose ID is 11abef677ac40f46644d1d5cfc2424a4 for the file system whose ID is 77ba6f4b-6365-4895-8dda-bc7142af4dde

+
DELETE HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/77ba6f4b-6365-4895-8dda-bc7142af4dde/fs/perm-rules/11abef677ac40f46644d1d5cfc2424a4
+
+

Example Responses

Status code: 500

+

Error response

+
{
+  "errCode" : "SFS.TURBO.0005",
+  "errMsg" : "Internal server error"
+}
+
+

Status Codes

+
+ + + + + + + + + + + + + +

Status Code

+

Description

+

204

+

Successful deletion

+

400

+

Error response

+

500

+

Error response

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/DeleteShare.html b/docs/sfs/api-ref/DeleteShare.html new file mode 100644 index 00000000..89c3e2d2 --- /dev/null +++ b/docs/sfs/api-ref/DeleteShare.html @@ -0,0 +1,104 @@ + + +

Deleting a File System

+

Function

This API is used to delete a file system.

+
+

URI

DELETE /v1/{project_id}/sfs-turbo/shares/{share_id}

+ +
+ + + + + + + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+

share_id

+

Yes

+

String

+

File system ID

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+
+

Response Parameters

None

+
+

Example Requests

Deleting the file system whose ID is 77ba6f4b-6365-4895-8dda-bc7142af4dde

+
DELETE HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/77ba6f4b-6365-4895-8dda-bc7142af4dde
+
+

Example Responses

None

+
+

Status Codes

+
+ + + + + + + +

Status Code

+

Description

+

202

+

File system deletion request delivered.

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/DeleteSharedTag.html b/docs/sfs/api-ref/DeleteSharedTag.html new file mode 100644 index 00000000..4cf9bf7d --- /dev/null +++ b/docs/sfs/api-ref/DeleteSharedTag.html @@ -0,0 +1,114 @@ + + +

Deleting a Tag of a File System

+

Function

This API is used to delete a tag of a specified file system. If the key to be deleted does not exist, error 404 will be returned.

+
+

URI

DELETE /v1/{project_id}/sfs-turbo/{share_id}/tags/{key}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+

share_id

+

Yes

+

String

+

File system ID

+

key

+

Yes

+

String

+

Tag key, which can contain a maximum of 128 characters. It cannot be left blank and cannot contain the following characters: ASCII (0-31), equal signs (=), asterisks (*), left angle brackets (<), right angle brackets (>), backslashes (), commas (,), vertical bars (|), and slashes (/). It can contain only letters, digits, hyphens (-), and underscores (_).

+

When this API is called to delete a tag, if the tag key contains special characters that cannot be directly resolved by the URL, the key needs to be escaped.

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+
+

Response Parameters

None

+
+

Example Requests

Deleting tags whose key is test for the file system whose ID is 77ba6f4b-6365-4895-8dda-bc7142af4dde

+
DELETE HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/77ba6f4b-6365-4895-8dda-bc7142af4dde/tags/test
+
+

Example Responses

None

+
+

Status Codes

+
+ + + + + + + +

Status Code

+

Description

+

204

+

File system tag deleted.

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/ErrorCode.html b/docs/sfs/api-ref/ErrorCode.html index 53b123d0..a2c287b8 100644 --- a/docs/sfs/api-ref/ErrorCode.html +++ b/docs/sfs/api-ref/ErrorCode.html @@ -108,7 +108,7 @@

Name has existed

-

The file system name already exists.

+

File system name already exists.

Use valid parameters and try again.

@@ -421,6 +421,28 @@

Apply for a higher quota.

+

400

+ +

SFS.TURBO.0041

+ +

Operation is not allowed

+ +

File system version too early.

+ +

Contact technical support.

+ + +

404

+ +

SFS.TURBO.0042

+ +

Invalid NIC ID

+ +

The specified NIC ID is not found or is empty.

+ +

Use valid parameters and try again.

+ +

400

SFS.TURBO.0100

diff --git a/docs/sfs/api-ref/ExpandShare.html b/docs/sfs/api-ref/ExpandShare.html new file mode 100644 index 00000000..89f6e3af --- /dev/null +++ b/docs/sfs/api-ref/ExpandShare.html @@ -0,0 +1,193 @@ + + +

Expanding the Capacity of a File System

+

Function

This API is used to expand the capacity of a file system.

+
+

URI

POST /v1/{project_id}/sfs-turbo/shares/{share_id}/action

+ +
+ + + + + + + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+

share_id

+

Yes

+

String

+

File system ID

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+ +
+ + + + + + + + + + + +
Table 3 Request body parameters

Parameter

+

Mandatory

+

Type

+

Description

+

extend

+

Yes

+

Extend object

+

Object of extend

+
+
+ +
+ + + + + + + + + + + +
Table 4 Extend

Parameter

+

Mandatory

+

Type

+

Description

+

new_size

+

Yes

+

Integer

+

New capacity of the file system, in GiB

+

For a previous-generation Standard or Performance file system, the capacity ranges from 500 to 32768 (in GiB), and the expansion increment is 100 GiB.

+

For a previous-generation Standard - Enhanced or Performance Enhanced file system, the capacity ranges from 10240 to 327680 (in GiB), and the expansion increment is 100 GiB.

+

For a 20 MB/s/TiB file system, the capacity ranges from 3686 to 1048576 (in GiB) and must be a multiple of 1.2 TiB. The desired capacity must be converted to GiB and rounded down to the nearest integer. For example, use 4915 GiB for a 4.8 TiB file system and 8601 GiB for a 8.4 TiB file system. The expansion increment is 1.2 TiB.

+

For a 40 MB/s/TiB file system, the capacity ranges from 1228 to 1048576 (in GiB) and must be a multiple of 1.2 TiB. The desired capacity must be converted to GiB and rounded down to the nearest integer. For example, use 4915 GiB for a 4.8 TiB file system and 8601 GiB for a 8.4 TiB file system. The expansion increment is 1.2 TiB.

+

The capacity range and expansion increment of 250 MB/s/TiB and 125 MB/s/TiB file systems are the same as those of 40 MB/s/TiB file systems.

+

+

Minimum: 500

+

Maximum: 1048576

+
+
+
+

Response Parameters

Status code: 202

+ +
+ + + + + + + + + + + + + +
Table 5 Response body parameters

Parameter

+

Type

+

Description

+

id

+

String

+

ID of the SFS Turbo file system

+

name

+

String

+

Name of the SFS Turbo file system

+
+
+
+

Example Requests

Expanding the capacity of a file system to 1,000 GB

+
{
+  "extend" : {
+    "new_size" : 1000
+  }
+}
+
+

Example Responses

Status code: 202

+

Response body for expanding the capacity of a file system

+
{
+  "id" : "67d4bd5e-7b2f-4c24-9a0b-c0038940c6f8",
+  "name" : "sfs-turbo-test"
+}
+
+

Status Codes

+
+ + + + + + + +

Status Code

+

Description

+

202

+

Response body for expanding the capacity of a file system

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/ListPermRules.html b/docs/sfs/api-ref/ListPermRules.html new file mode 100644 index 00000000..b5db4c14 --- /dev/null +++ b/docs/sfs/api-ref/ListPermRules.html @@ -0,0 +1,227 @@ + + +

Querying Permission Rules of a File System

+

Function

This API is used to query the permission rules of a file system.

+
+

URI

GET /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules

+ +
+ + + + + + + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+

share_id

+

Yes

+

String

+

File system ID

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+
+

Response Parameters

Status code: 200

+ +
+ + + + + + + + + +
Table 3 Response body parameters

Parameter

+

Type

+

Description

+

rules

+

Array of OnePermRuleResponseInfo objects

+

Permission rule information

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
Table 4 OnePermRuleResponseInfo

Parameter

+

Type

+

Description

+

id

+

String

+

Permission rule ID

+

ip_cidr

+

String

+

IP address or IP address range of the authorized object

+

rw_type

+

String

+

Read/write permission of the authorized object.

+
  • rw: read and write permission, which is the default option

    +
  • ro: read-only permission

    +
  • none: no permission

    +
+

user_type

+

String

+

File system access permission granted to the user of the authorized object. Supported values are:

+
  • no_root_squash: allows the root user on the client to access the file system as root.

    +
  • root_squash: allows the root user on the client to access the file system as nfsnobody.

    +
  • all_squash: allows any user on the client to access the file system as nfsnobody. It is the default value.

    +
+
+
+

Status code: 500

+ +
+ + + + + + + + + + + + + +
Table 5 Response body parameters

Parameter

+

Type

+

Description

+

errCode

+

String

+

Error code

+

Minimum: 8

+

Maximum: 36

+

errMsg

+

String

+

Error description

+

Minimum: 2

+

Maximum: 512

+
+
+
+

Example Requests

Querying the permission rules of the file system whose ID is 77ba6f4b-6365-4895-8dda-bc7142af4dde

+
GET HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/77ba6f4b-6365-4895-8dda-bc7142af4dde/fs/perm-rules
+
+

Example Responses

Status code: 200

+

Successful query

+
{
+  "rules" : [ {
+    "id" : "1131ed520xxxxxxebedb6e57xxxxxxxx",
+    "ip_cidr" : "192.168.0.0/16",
+    "rw_type" : "rw",
+    "user_type" : "no_root_squash"
+  }, {
+    "id" : "1231ed520xxxxxxebedb6e57xxxxxxxx",
+    "ip_cidr" : "192.32.0.0/16",
+    "rw_type" : "rw",
+    "user_type" : "no_root_squash"
+  } ]
+}
+

Status code: 500

+

Error response

+
{
+  "errCode" : "SFS.TURBO.0005",
+  "errMsg" : "Internal server error"
+}
+
+

Status Codes

+
+ + + + + + + + + + +

Status Code

+

Description

+

200

+

Successful query

+

500

+

Error response

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/ListSharedTags.html b/docs/sfs/api-ref/ListSharedTags.html new file mode 100644 index 00000000..5e45e30e --- /dev/null +++ b/docs/sfs/api-ref/ListSharedTags.html @@ -0,0 +1,155 @@ + + +

Querying Tags of All File Systems of a Tenant

+

Function

This API is used to query the tags of all file systems of a tenant.

+
+

URI

GET /v1/{project_id}/sfs-turbo/tags

+ +
+ + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+
+

Response Parameters

Status code: 200

+ +
+ + + + + + + + + +
Table 3 Response body parameters

Parameter

+

Type

+

Description

+

tags

+

Array of Tag objects

+

Tag list

+
+
+ +
+ + + + + + + + + + + + + +
Table 4 Tag

Parameter

+

Type

+

Description

+

key

+

String

+

Tag key.

+

A key can contain a maximum of 128 characters and cannot be left blank.

+

Minimum: 1

+

Maximum: 128

+

values

+

Array of strings

+

Tag values. Each value can contain a maximum of 255 characters. An empty list of values can match with any value. All values of a tag key are in the OR relationship.

+

Minimum: 0

+

Maximum: 255

+
+
+
+

Example Requests

Query tags of all file systems in the project whose ID is e1e45b08f3ea4480ab4655ef9c7160ba

+
GET HTTPS://{endpoint}/v1/e1e45b08f3ea4480ab4655ef9c7160ba/sfs-turbo/tags
+
+

Example Responses

Status code: 200

+

Response body for querying a file system

+
{
+  "tags" : [ {
+    "key" : "key1",
+    "values" : [ "value1", "" ]
+  }, {
+    "key" : "key2",
+    "values" : [ "value1", "value2" ]
+  } ]
+}
+
+

Status Codes

+
+ + + + + + + +

Status Code

+

Description

+

200

+

Response body for querying a file system

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/ListShares.html b/docs/sfs/api-ref/ListShares.html new file mode 100644 index 00000000..4d42ec61 --- /dev/null +++ b/docs/sfs/api-ref/ListShares.html @@ -0,0 +1,464 @@ + + +

Obtaining the File System List

+

Function

This API is used to obtain the file system list.

+
+

URI

GET /v1/{project_id}/sfs-turbo/shares/detail

+ +
+ + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+
+
+ +
+ + + + + + + + + + + + + + + + +
Table 2 Query Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

limit

+

No

+

Long

+

Maximum number of the file systems returned is 200. If not specified, 1000 is used by default.

+

offset

+

No

+

Long

+

Offset where the file system listing starts.

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 3 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+
+

Response Parameters

Status code: 200

+ +
+ + + + + + + + + + + + + +
Table 4 Response body parameters

Parameter

+

Type

+

Description

+

shares

+

Array of ShareInfo objects

+

List of SFS Turbo file systems

+

count

+

Integer

+

Number of SFS Turbo file systems

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 5 ShareInfo

Parameter

+

Type

+

Description

+

action_progress

+

ActionProgress object

+

Creation progress of the SFS Turbo file system. This field is only returned when the file system is being created.

+

version

+

String

+

Version of the SFS Turbo file system

+

avail_capacity

+

String

+

Available capacity of the SFS Turbo file system, in GB

+

availability_zone

+

String

+

Code of the AZ where the SFS Turbo file system resides

+

az_name

+

String

+

Name of the AZ where the SFS Turbo file system resides

+

created_at

+

String

+

Time when the file system was created. UTC time, for example: 2018-11-19T04:02:03

+

crypt_key_id

+

String

+

ID of the encryption key specified by the user. This parameter is not returned for non-encrypted file systems.

+

expand_type

+

String

+

For an Enhanced file system, bandwidth is returned. For a 250 MB/s/TiB, 125 MB/s/TiB, 40 MB/s/TiB, or 20 MB/s/TiB file system, hpc is returned. For other types of file systems, this field is not returned.

+

export_location

+

String

+

Location of the SFS Turbo file system. For a previous-generation file system, an IP address is returned, for example, 192.168.0.90:/. For a 250 MB/s/TiB, 125 MB/s/TiB, 40 MB/s/TiB, or 20 MB/s/TiB file system, a domain name is returned, for example, 2c568e3b-da13-4041-b5f8-fb77f611914e.sfsturbo.internal:/. If the file system is being created, this field is not returned.

+

id

+

String

+

ID of the SFS Turbo file system

+

name

+

String

+

Name of the SFS Turbo file system specified during creation

+

pay_model

+

String

+

Billing mode of the SFS Turbo file system. Value 0 indicates pay-per-use. If the file system is being created, this field is not returned.

+

Enumeration values:

+
  • 0
  • 1
+

region

+

String

+

Region where the SFS Turbo file system resides

+

security_group_id

+

String

+

ID of the security group specified by the user

+

share_proto

+

String

+

Protocol used by the SFS Turbo file system. The valid value is NFS.

+

share_type

+

String

+

Storage class of the SFS Turbo file system. Valid values are STANDARD and PERFORMANCE.

+

size

+

String

+

Total capacity of the SFS Turbo file system, in GB

+

status

+

String

+

SFS Turbo file system status. The value can be as follows: 100 (creating), 200 (available), 303 (creation failed), and 800 (frozen)

+

sub_status

+

String

+

Sub-status of the SFS Turbo file system. The value can be as follows: This field is not returned if no modification is made to the file system. 121 (expanding capacity), 132 (changing security group), 137 (adding authorized VPC), 138 (removing authorized VPC) 221 (expansion succeeded), 232 (security group changed), 237 (authorized VPC added), 238 (authorized VPC removed) 321 (expansion failed), 332 (changing security group failed), 337 (adding authorized VPC failed), 338 (removing authorized VPC failed)

+

subnet_id

+

String

+

ID of the subnet specified by the user

+

vpc_id

+

String

+

ID of the VPC specified by the user

+

tags

+

Array of ResourceTag objects

+

Tag list

+

optional_endpoint

+

String

+

Alternative IP addresses that can be used for mounting. This field is not returned for previous-generation file systems.

+

hpc_bw

+

String

+

File system bandwidth.

+
  • "20M": 20 MB/s/TiB
  • "40M": 40 MB/s/TiB
  • "125M": 125 MB/s/TiB
  • "250M": 250 MB/s/TiB
+

instanceId

+

String

+

Node ID of the file system type. This is a reserved field.

+

instanceType

+

String

+

Node type of the file system type. This is a reserved field.

+

statusDetail

+

String

+

Request ID of the file system. This is a reserved field.

+

features

+

String

+

Whether backup is supported for SFS turbo file systems.

+
+
+ +
+ + + + + + + + + +
Table 6 ActionProgress

Parameter

+

Type

+

Description

+

CREATING

+

String

+

File system creation progress

+
+
+ +
+ + + + + + + + + + + + + +
Table 7 ResourceTag

Parameter

+

Type

+

Description

+

key

+

String

+

Tag key.

+

It can contain a maximum of 128 characters.

+

It cannot be left empty and cannot contain the following characters: ASCII (0-31), equal signs (=), asterisks (*), left angle brackets (<), right angle brackets (>), backslashes (), commas (,), vertical bars (|), and slashes (/). It can contain only letters, digits, hyphens (-), and underscores (_).

+

Minimum: 1

+

Maximum: 128

+

value

+

String

+

Tag value.

+

Each tag value can contain a maximum of 255 characters and can be an empty string.

+

It cannot contain the following characters: ASCII (0-31), equal signs (=), asterisks (*), left angle brackets (<), right angle brackets (>), backslashes (), commas (,), vertical bars (|), and slashes (/). It can contain only letters, digits, hyphens (-), and underscores (_).

+

Minimum: 0

+

Maximum: 255

+
+
+
+

Example Requests

Querying file systems in the project whose ID e1e45b08f3ea4480ab4655ef9c7160ba

+
GET HTTPS://{endpoint}/v1/e1e45b08f3ea4480ab4655ef9c7160ba/sfs-turbo/shares/detail
+
+

Example Responses

Status code: 200

+

Response body for querying the file system list

+
{
+  "shares" : [ {
+    "id" : "8fba8253-c914-439d-ae8b-d5c89d0bf5e8",
+    "name" : "sfs-turbo-8468",
+    "status" : "100",
+    "version" : "1.0.0",
+    "region" : "north-1",
+    "created_at" : "2018-11-19T04:02:03",
+    "export_location" : "192.168.0.90:/",
+    "action_progress" : {
+      "CREATING" : "22%"
+    },
+    "share_type" : "STANDARD",
+    "sub_status" : "",
+    "availability_zone" : "az1.dc1",
+    "az_name" : "az1",
+    "vpc_id" : "b24e39e1-bc0c-475b-ae0c-aef9cf240af3",
+    "subnet_id" : "86fc01ea-8ec8-409d-ba7a-e0ea16d4fd97",
+    "security_group_id" : "50586458-aec9-442c-bb13-e08ddc6f1b7a",
+    "size" : "500.00",
+    "pay_model" : "0",
+    "avail_capacity" : "500.00",
+    "share_proto" : "NFS"
+  }, {
+    "id" : "65f2d30b-7b4e-4786-9608-4324faef6646",
+    "name" : "sfs-turbo-df12",
+    "status" : "200",
+    "version" : "1.0.0",
+    "region" : "north-1",
+    "created_at" : "2018-11-15T02:32:10",
+    "export_location" : "65f2d30b-7b4e-4786-9608-4324faef6646.sfsturbo.internal:/",
+    "optional_endpoint" : "192.168.0.90 192.168.0.89",
+    "share_type" : "HPC_PERFORMANCE_250M",
+    "expand_type" : "hpc",
+    "sub_status" : "",
+    "availability_zone" : "az1.dc1",
+    "az_name" : "az1",
+    "vpc_id" : "b24e39e1-bc0c-475b-ae0c-aef9cf240af3",
+    "subnet_id" : "86fc01ea-8ec8-409d-ba7a-e0ea16d4fd97",
+    "security_group_id" : "50586458-aec9-442c-bb13-e08ddc6f1b7a",
+    "size" : "3686.00",
+    "pay_model" : "0",
+    "avail_capacity" : "3686.00",
+    "share_proto" : "NFS"
+  } ]
+}
+
+

Status Codes

+
+ + + + + + + +

Status Code

+

Description

+

200

+

Response body for querying the file system list

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/ShowJobDetail.html b/docs/sfs/api-ref/ShowJobDetail.html new file mode 100644 index 00000000..083c3743 --- /dev/null +++ b/docs/sfs/api-ref/ShowJobDetail.html @@ -0,0 +1,391 @@ + + +

Querying Details About a Task

+

Function

This API is used to query the execution status of an SFS Turbo asynchronous task. For example, you can query the task execution status using the jobId returned after you call the API for creating and binding the LDAP configuration.

+
+

URI

GET /v1/{project_id}/sfs-turbo/jobs/{job_id}

+ +
+ + + + + + + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+

job_id

+

Yes

+

String

+

job ID

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+
+

Response Parameters

Status code: 200

+ +
+ + + + + + + + + +
Table 3 Response header parameters

Parameter

+

Type

+

Description

+

X-request-id

+

String

+

Request ID

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 4 Response body parameters

Parameter

+

Type

+

Description

+

status

+

String

+

Task status, which can be success, running, failed, or waiting

+

Enumeration values:

+
  • success

    +
  • failed

    +
  • waiting

    +
  • running

    +
+

job_id

+

String

+

Task ID

+

job_type

+

String

+

Task type

+

begin_time

+

String

+

Task start time in UTC format, for example, '2016-01-02 15:04:05

+

end_time

+

String

+

Task end time in UTC format, for example, '2016-01-02 15:04:05

+

error_code

+

String

+

Error code returned if the task execution fails

+

fail_reason

+

String

+

Cause of the task execution failure

+

sub_jobs

+

Array of GetSubJobDetail objects

+

List of subtasks

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 5 GetSubJobDetail

Parameter

+

Type

+

Description

+

status

+

String

+

Subtask status, which can be success, running, failed, or waiting

+

job_id

+

String

+

Task ID

+

job_type

+

String

+

Subtask type

+

begin_time

+

String

+

Task start time in UTC format, for example, '2016-01-02 15:04:05

+

end_time

+

String

+

Task end time in UTC format, for example, '2016-01-02 15:04:05

+

error_code

+

String

+

Error code returned if the task execution fails

+

fail_reason

+

String

+

Cause of the task execution failure

+
+
+

Status code: 400

+ +
+ + + + + + + + + + + + + +
Table 6 Response body parameters

Parameter

+

Type

+

Description

+

errCode

+

String

+

Error code

+

Minimum: 8

+

Maximum: 36

+

errMsg

+

String

+

Error description

+

Minimum: 2

+

Maximum: 512

+
+
+

Status code: 404

+ +
+ + + + + + + + + + + + + +
Table 7 Response body parameters

Parameter

+

Type

+

Description

+

errCode

+

String

+

Error code

+

Minimum: 8

+

Maximum: 36

+

errMsg

+

String

+

Error description

+

Minimum: 2

+

Maximum: 512

+
+
+

Status code: 500

+ +
+ + + + + + + + + + + + + +
Table 8 Response body parameters

Parameter

+

Type

+

Description

+

errCode

+

String

+

Error code

+

Minimum: 8

+

Maximum: 36

+

errMsg

+

String

+

Error description

+

Minimum: 2

+

Maximum: 512

+
+
+
+

Example Requests

None

+
+

Example Responses

Status code: 200

+

Response body parameters

+
{
+  "job_id" : "26f6b565-xxxx-XXXX-xxxx-03f0bd975433",
+  "status" : "success",
+  "job_type" : "bind_ldap",
+  "begin_time" : "2023-07-26 09:33:58",
+  "end_time" : "2023-07-26 09:33:58"
+}
+

Status code: 400

+

Client error

+
{
+  "errCode" : "SFS.TURBO.0001",
+  "errMsg" : "parameter error"
+}
+

Status code: 404

+

Resource not found

+
{
+  "errCode" : "SFS.TURBO.0001",
+  "errMsg" : "parameter error"
+}
+

Status code: 500

+

Internal error

+
{
+  "errCode" : "SFS.TURBO.0005",
+  "errMsg" : "Internal server error"
+}
+
+

Status Codes

+
+ + + + + + + + + + + + + + + + +

Status Code

+

Description

+

200

+

Response body parameters

+

400

+

Client error

+

404

+

Resource not found

+

500

+

Internal error

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/ShowPermRule.html b/docs/sfs/api-ref/ShowPermRule.html new file mode 100644 index 00000000..15dcca6c --- /dev/null +++ b/docs/sfs/api-ref/ShowPermRule.html @@ -0,0 +1,246 @@ + + +

Querying a Permission Rule by ID

+

Function

This API is used to query a specific permission rule of a file system.

+
+

URI

GET /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules/{rule_id}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+

share_id

+

Yes

+

String

+

File system ID

+

rule_id

+

Yes

+

String

+

Permission rule ID

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+
+

Response Parameters

Status code: 200

+ +
+ + + + + + + + + + + + + + + + + + + + + +
Table 3 Response body parameters

Parameter

+

Type

+

Description

+

id

+

String

+

Permission rule ID

+

ip_cidr

+

String

+

IP address or IP address range of the authorized object

+

rw_type

+

String

+

Read/write permission of the authorized object.

+
  • rw: read and write permission, which is the default option
  • ro: read-only permission
  • none: no permission
+

user_type

+

String

+

File system access permission granted to the user of the authorized object. Supported values are:

+
  • no_root_squash: allows the root user on the client to access the file system as root.
  • root_squash: allows the root user on the client to access the file system as nfsnobody.
  • all_squash: allows any user on the client to access the file system as nfsnobody. It is the default value.
+
+
+

Status code: 400

+ +
+ + + + + + + + + + + + + +
Table 4 Response body parameters

Parameter

+

Type

+

Description

+

errCode

+

String

+

Error code

+

Minimum: 8

+

Maximum: 36

+

errMsg

+

String

+

Error description

+

Minimum: 2

+

Maximum: 512

+
+
+

Status code: 500

+ +
+ + + + + + + + + + + + + +
Table 5 Response body parameters

Parameter

+

Type

+

Description

+

errCode

+

String

+

Error code

+

Minimum: 8

+

Maximum: 36

+

errMsg

+

String

+

Error description

+

Minimum: 2

+

Maximum: 512

+
+
+
+

Example Requests

Querying details about the permission rule whose ID is 11abef677ac40f46644d1d5cfc2424a4 for the file system whose ID is 77ba6f4b-6365-4895-8dda-bc7142af4dde

+
GET HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/77ba6f4b-6365-4895-8dda-bc7142af4dde/fs/perm-rules/11abef677ac40f46644d1d5cfc2424a4
+
+

Example Responses

Status code: 200

+

Successful query

+
{
+  "id" : "1131ed520xxxxxxebedb6e57xxxxxxxx",
+  "ip_cidr" : "192.168.0.0/16",
+  "rw_type" : "rw",
+  "user_type" : "no_root_squash"
+}
+

Status code: 400

+

Error response

+
{
+  "errCode" : "SFS.TURBO.0001",
+  "errMsg" : "Invalid rule id"
+}
+

Status code: 500

+

Error response

+
{
+  "errCode" : "SFS.TURBO.0005",
+  "errMsg" : "Internal server error"
+}
+
+

Status Codes

+
+ + + + + + + + + + + + + +

Status Code

+

Description

+

200

+

Successful query

+

400

+

Error response

+

500

+

Error response

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/ShowShare.html b/docs/sfs/api-ref/ShowShare.html new file mode 100644 index 00000000..5236108f --- /dev/null +++ b/docs/sfs/api-ref/ShowShare.html @@ -0,0 +1,390 @@ + + +

Querying Details About a File System

+

Function

This API is used to query details about an SFS Turbo file system.

+
+

URI

GET /v1/{project_id}/sfs-turbo/shares/{share_id}

+ +
+ + + + + + + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+

share_id

+

Yes

+

String

+

File system ID

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+
+

Response Parameters

Status code: 200

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 3 Response body parameters

Parameter

+

Type

+

Description

+

action_progress

+

ActionProgress object

+

Creation progress of the SFS Turbo file system. This field is only returned when the file system is being created.

+

version

+

String

+

Version of the SFS Turbo file system

+

avail_capacity

+

String

+

Available capacity of the SFS Turbo file system, in GB

+

availability_zone

+

String

+

Code of the AZ where the SFS Turbo file system resides

+

az_name

+

String

+

Name of the AZ where the SFS Turbo file system resides

+

created_at

+

String

+

Time when the file system was created. UTC time, for example: 2018-11-19T04:02:03

+

crypt_key_id

+

String

+

ID of the encryption key specified by the user. This parameter is not returned for non-encrypted file systems.

+

expand_type

+

String

+

For an Enhanced file system, bandwidth is returned. For a 250 MB/s/TiB, 125 MB/s/TiB, 40 MB/s/TiB, or 20 MB/s/TiB file system, hpc is returned. For other types of file systems, this field is not returned.

+

export_location

+

String

+

Location of the SFS Turbo file system. For a previous-generation file system, an IP address is returned, for example, 192.168.0.90:/. For a 250 MB/s/TiB, 125 MB/s/TiB, 40 MB/s/TiB, or 20 MB/s/TiB file system, a domain name is returned, for example, 2c568e3b-da13-4041-b5f8-fb77f611914e.sfsturbo.internal:/. If the file system is being created, this field is not returned.

+

id

+

String

+

ID of the SFS Turbo file system

+

name

+

String

+

Name of the SFS Turbo file system specified during creation

+

pay_model

+

String

+

Billing mode of the SFS Turbo file system. Value 0 indicates pay-per-use. If the file system is being created, this field is not returned.

+

Enumeration values:

+
  • 0
  • 1
+

region

+

String

+

Region where the SFS Turbo file system resides

+

security_group_id

+

String

+

ID of the security group specified by the user

+

share_proto

+

String

+

Protocol used by the SFS Turbo file system. The valid value is NFS.

+

share_type

+

String

+

Storage class of the SFS Turbo file system. Valid values are STANDARD and PERFORMANCE.

+

size

+

String

+

Total capacity of the SFS Turbo file system, in GB

+

status

+

String

+

SFS Turbo file system status. The value can be as follows: 100 (creating), 200 (available), 303 (creation failed), and 800 (frozen)

+

sub_status

+

String

+

Sub-status of the SFS Turbo file system. The value can be as follows: This field is not returned if no modification is made to the file system. 121 (expanding capacity), 132 (changing security group), 137 (adding authorized VPC), 138 (removing authorized VPC) 221 (expansion succeeded), 232 (security group changed), 237 (authorized VPC added), 238 (authorized VPC removed) 321 (expansion failed), 332 (changing security group failed), 337 (adding authorized VPC failed), 338 (removing authorized VPC failed)

+

subnet_id

+

String

+

ID of the subnet specified by the user

+

vpc_id

+

String

+

ID of the VPC specified by the user

+

tags

+

Array of ResourceTag objects

+

Tag list

+

optional_endpoint

+

String

+

Alternative IP addresses that can be used for mounting. This field is not returned for previous-generation file systems.

+

hpc_bw

+

String

+

File system bandwidth.

+
  • "20M": 20 MB/s/TiB
  • "40M": 40 MB/s/TiB
  • "125M": 125 MB/s/TiB
  • "250M": 250 MB/s/TiB
+

instanceId

+

String

+

Node ID of the file system type. This is a reserved field.

+

instanceType

+

String

+

Node type of the file system type. This is a reserved field.

+

statusDetail

+

String

+

Request ID of the file system. This is a reserved field.

+

features

+

String

+

Whether backup is supported for SFS turbo file systems.

+
+
+ +
+ + + + + + + + + +
Table 4 ActionProgress

Parameter

+

Type

+

Description

+

CREATING

+

String

+

File system creation progress

+
+
+ +
+ + + + + + + + + + + + + +
Table 5 ResourceTag

Parameter

+

Type

+

Description

+

key

+

String

+

Tag key.

+

It can contain a maximum of 128 characters.

+

It cannot be left empty and cannot contain the following characters: ASCII (0-31), equal signs (=), asterisks (*), left angle brackets (<), right angle brackets (>), backslashes (), commas (,), vertical bars (|), and slashes (/). It can contain only letters, digits, hyphens (-), and underscores (_).

+

Minimum: 1

+

Maximum: 128

+

value

+

String

+

Tag value.

+

Each tag value can contain a maximum of 255 characters and can be an empty string.

+

It cannot contain the following characters: ASCII (0-31), equal signs (=), asterisks (*), left angle brackets (<), right angle brackets (>), backslashes (), commas (,), vertical bars (|), and slashes (/). It can contain only letters, digits, hyphens (-), and underscores (_).

+

Minimum: 0

+

Maximum: 255

+
+
+
+

Example Requests

Querying the file system whose ID is 77ba6f4b-6365-4895-8dda-bc7142af4dde

+
GET HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/77ba6f4b-6365-4895-8dda-bc7142af4dde
+
+

Example Responses

Status code: 200

+

Response body for querying a file system

+
{
+  "id" : "8fba8253-c914-439d-ae8b-d5c89d0bf5e8",
+  "name" : "sfs-turbo-8468",
+  "status" : "200",
+  "version" : "1.0.0",
+  "region" : "region",
+  "availability_zone" : "example",
+  "az_name" : "example",
+  "created_at" : "2018-11-19T04:02:03",
+  "export_location" : "192.168.0.90:/",
+  "action_progress" : { },
+  "share_type" : "STANDARD",
+  "sub_status" : "221",
+  "vpc_id" : "b24e39e1-bc0c-475b-ae0c-aef9cf240af3",
+  "subnet_id" : "86fc01ea-8ec8-409d-ba7a-e0ea16d4fd97",
+  "security_group_id" : "50586458-aec9-442c-bb13-e08ddc6f1b7a",
+  "size" : "600.00",
+  "avail_capacity" : "600.00",
+  "pay_model" : "0",
+  "share_proto" : "NFS"
+}
+
+

Status Codes

+
+ + + + + + + +

Status Code

+

Description

+

200

+

Response body for querying a file system

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/ShowSharedTags.html b/docs/sfs/api-ref/ShowSharedTags.html new file mode 100644 index 00000000..e7c0952d --- /dev/null +++ b/docs/sfs/api-ref/ShowSharedTags.html @@ -0,0 +1,178 @@ + + +

Querying Tags of a File System

+

Function

This API is used to query all tags of a specified file system.

+
+

URI

GET /v1/{project_id}/sfs-turbo/{share_id}/tags

+ +
+ + + + + + + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+

share_id

+

Yes

+

String

+

File system ID

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+
+

Response Parameters

Status code: 200

+ +
+ + + + + + + + + + + + + +
Table 3 Response body parameters

Parameter

+

Type

+

Description

+

tags

+

Array of ResourceTag objects

+

Tag list

+

sys_tags

+

Array of ResourceTag objects

+

Only users with the op_service permission can obtain this field.

+
  1. This field currently contains only one resource_tag structure key, _sys_enterprise_project_id.

    +
  2. The key contains only value 0 currently, which indicates the default enterprise project.

    +
+

This field is not returned for users without the op_service permission.

+
+
+ +
+ + + + + + + + + + + + + +
Table 4 ResourceTag

Parameter

+

Type

+

Description

+

key

+

String

+

Tag key.

+

It can contain a maximum of 128 characters.

+

It cannot be left empty and cannot contain the following characters: ASCII (0-31), equal signs (=), asterisks (*), left angle brackets (<), right angle brackets (>), backslashes (), commas (,), vertical bars (|), and slashes (/). It can contain only letters, digits, hyphens (-), and underscores (_).

+

Minimum: 1

+

Maximum: 128

+

value

+

String

+

Tag value.

+

Each tag value can contain a maximum of 255 characters and can be an empty string.

+

It cannot contain the following characters: ASCII (0-31), equal signs (=), asterisks (*), left angle brackets (<), right angle brackets (>), backslashes (), commas (,), vertical bars (|), and slashes (/). It can contain only letters, digits, hyphens (-), and underscores (_).

+

Minimum: 0

+

Maximum: 255

+
+
+
+

Example Requests

Querying tags of the file system whose ID is 77ba6f4b-6365-4895-8dda-bc7142af4dde

+
GET HTTPS://{endpoint}/v1/v1/{project_id}/sfs-turbo/77ba6f4b-6365-4895-8dda-bc7142af4dde/tags
+
+

Example Responses

Status code: 200

+

Response body for query all tags of a specified file system

+
{
+  "tags" : [ {
+    "key" : "key1",
+    "value" : "value1"
+  }, {
+    "key" : "key2",
+    "value" : "value1"
+  } ]
+}
+
+

Status Codes

+
+ + + + + + + +

Status Code

+

Description

+

200

+

Response body for query all tags of a specified file system

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/UpdatePermRule.html b/docs/sfs/api-ref/UpdatePermRule.html new file mode 100644 index 00000000..1edb3ab7 --- /dev/null +++ b/docs/sfs/api-ref/UpdatePermRule.html @@ -0,0 +1,303 @@ + + +

Modifying a Permission Rule

+

Function

This API is used to modify a permission rule.

+
+

URI

PUT /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules/{rule_id}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
Table 1 Path Parameters

Parameter

+

Mandatory

+

Type

+

Description

+

project_id

+

Yes

+

String

+

Project ID

+

share_id

+

Yes

+

String

+

File system ID

+

rule_id

+

Yes

+

String

+

Permission rule ID

+
+
+
+

Request Parameters

+
+ + + + + + + + + + + + + + + + +
Table 2 Request header parameters

Parameter

+

Mandatory

+

Type

+

Description

+

X-Auth-Token

+

Yes

+

String

+

Account token

+

Content-Type

+

Yes

+

String

+

MIME type

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
Table 3 Request body parameters

Parameter

+

Mandatory

+

Type

+

Description

+

ip_cidr

+

No

+

String

+

IP address or IP address range of the object to be authorized. Once configured, this parameter cannot be modified.

+

rw_type

+

No

+

String

+

Read/write permission of the object to be authorized.

+
  • rw: read and write permission, which is the default option

    +
  • ro: read-only permission

    +
  • none: no permission

    +
+

user_type

+

No

+

String

+

File system access permission granted to the user of the object to be authorized. Supported values are:

+
  • no_root_squash: allows any user including the root user on the client to access the file system as who they are, instead of mapping them to another user.

    +
  • root_squash: allows the root user on the client to access the file system as nfsnobody.

    +
  • all_squash: allows any user on the client to access the file system as nfsnobody.

    +
+
+
+
+

Response Parameters

Status code: 200

+ +
+ + + + + + + + + + + + + + + + + + + + + +
Table 4 Response body parameters

Parameter

+

Type

+

Description

+

id

+

String

+

Permission rule ID

+

ip_cidr

+

String

+

IP address or IP address range of the authorized object

+

rw_type

+

String

+

Read/write permission of the authorized object.

+
  • rw: read and write permission, which is the default option

    +
  • ro: read-only permission

    +
  • none: no permission

    +
+

user_type

+

String

+

File system access permission granted to the user of the authorized object. Supported values are:

+
  • no_root_squash: allows the root user on the client to access the file system as root.

    +
  • root_squash: allows the root user on the client to access the file system as nfsnobody.

    +
  • all_squash: allows any user on the client to access the file system as nfsnobody. It is the default value.

    +
+
+
+

Status code: 400

+ +
+ + + + + + + + + + + + + +
Table 5 Response body parameters

Parameter

+

Type

+

Description

+

errCode

+

String

+

Error code

+

Minimum: 8

+

Maximum: 36

+

errMsg

+

String

+

Error description

+

Minimum: 2

+

Maximum: 512

+
+
+

Status code: 500

+ +
+ + + + + + + + + + + + + +
Table 6 Response body parameters

Parameter

+

Type

+

Description

+

errCode

+

String

+

Error code

+

Minimum: 8

+

Maximum: 36

+

errMsg

+

String

+

Error description

+

Minimum: 2

+

Maximum: 512

+
+
+
+

Example Requests

{
+  "rw_type" : "rw",
+  "user_type" : "no_root_squash"
+}
+
+

Example Responses

Status code: 200

+

Successful creation

+
{
+  "id" : "1131ed520xxxxxxebedb6e57xxxxxxxx",
+  "ip_cidr" : "192.32.0.0/16",
+  "rw_type" : "rw",
+  "user_type" : "no_root_squash"
+}
+

Status code: 400

+

Error response

+
{
+  "errCode" : "SFS.TURBO.0001",
+  "errMsg" : "Invalid rule id"
+}
+

Status code: 500

+

Error response

+
{
+  "errCode" : "SFS.TURBO.0005",
+  "errMsg" : "Internal server error"
+}
+
+

Status Codes

+
+ + + + + + + + + + + + + +

Status Code

+

Description

+

200

+

Successful creation

+

400

+

Error response

+

500

+

Error response

+
+
+
+

Error Codes

See Error Codes.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/en-us_image_0000001508295281.png b/docs/sfs/api-ref/en-us_image_0000001508295281.png new file mode 100644 index 0000000000000000000000000000000000000000..ec3abb85c4e87fdcfd64e390ee05842d55edaffe GIT binary patch literal 54806 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 H<}d#@Kprjvr3cMIRkaij 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
G$>UjJHb*Av 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 literal 0 HcmV?d00001 diff --git a/docs/sfs/api-ref/en-us_topic_0000001537230113.html b/docs/sfs/api-ref/en-us_topic_0000001537230113.html deleted file mode 100644 index f4ea59a3..00000000 --- a/docs/sfs/api-ref/en-us_topic_0000001537230113.html +++ /dev/null @@ -1,19 +0,0 @@ - - - -

Name Management

- -

-
- -
- - - -
- diff --git a/docs/sfs/api-ref/en-us_topic_0000001537629949.html b/docs/sfs/api-ref/en-us_topic_0000001537629949.html deleted file mode 100644 index 455facba..00000000 --- a/docs/sfs/api-ref/en-us_topic_0000001537629949.html +++ /dev/null @@ -1,167 +0,0 @@ - - -

Changing the Name of a File System

-

Function

This API is used to change the name of a file system.

-
-

URI

POST /v1/{project_id}/sfs-turbo/shares/{share_id}/action

-
- -
- - - - - - - - - - - - - - - - -
Table 1 Path parameters

Parameter

-

Mandatory

-

Type

-

Description

-

project_id

-

Yes

-

String

-

Specifies the project ID.

-

share_id

-

Yes

-

String

-

Specifies the file system ID.

-
-
-

Request Parameters

-
- - - - - - - - - - - - - - - - -
Table 2 Request header parameters

Parameter

-

Mandatory

-

Type

-

Description

-

X-Auth-Token

-

Yes

-

String

-

Specifies the account token.

-

Content-Type

-

Yes

-

String

-

Specifies the MIME type.

-
-
- -
- - - - - - - - - - - -
Table 3 Request body parameter

Parameter

-

Mandatory

-

Type

-

Description

-

change_name

-

Yes

-

ShareName object

-

Specifies the SFS Turbo file system you want to change the name.

-
-
- -
- - - - - - - - - - - -
Table 4 ShareName

Parameter

-

Mandatory

-

Type

-

Description

-

name

-

Yes

-

String

-

Specifies the name of the SFS Turbo file system you want to change the name.

-
-
-
-

Response Parameters

None

-
-

Example Request

{
-  "change_name" : {
-    "name" : "sfs-turbo-test1"
-  }
-}
-
-

Example Response

None

-
-

Status Codes

-
- - - - - - - - - - - - - - - - -

Status Code

-

Description

-

204

-

Request successful.

-

400

-

Invalid parameters.

-

500

-

Internal error.

-

409

-

File system name already exists.

-
-
-
-

-
-
- -
- diff --git a/docs/sfs/api-ref/en-us_topic_0000001614397248.html b/docs/sfs/api-ref/en-us_topic_0000001614397248.html deleted file mode 100644 index 2cbb0f01..00000000 --- a/docs/sfs/api-ref/en-us_topic_0000001614397248.html +++ /dev/null @@ -1,227 +0,0 @@ - - -

Querying Permission Rules of a File System

-

Function

This API is used to query the permission rules of a file system.

-
-

URI

GET /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules

- -
- - - - - - - - - - - - - - - - -
Table 1 Path parameters

Parameter

-

Mandatory

-

Type

-

Description

-

project_id

-

Yes

-

String

-

Project ID

-

share_id

-

Yes

-

String

-

File system ID

-
-
-
-

Request Parameters

-
- - - - - - - - - - - - - - - - -
Table 2 Request header parameters

Parameter

-

Mandatory

-

Type

-

Description

-

X-Auth-Token

-

Yes

-

String

-

Account token

-

Content-Type

-

Yes

-

String

-

MIME type

-
-
-
-

Response Parameters

Status code: 200

- -
- - - - - - - - - - - - - -
Table 3 Response body parameter

Parameter

-

Type

-

Description

-

rules

-

Array of Table 4 objects

-

Permission rule information

-

count

-

int

-

Total rules

-
-
- -
- - - - - - - - - - - - - - - - - - - - - -
Table 4 OnePermRuleResponseInfo

Parameter

-

Type

-

Description

-

id

-

String

-

Permission rule ID

-

ip_cidr

-

String

-

IP address or IP address range of the authorized object

-

rw_type

-

String

-

Read/write permission of the authorized object. The value can be rw (read and write permission), ro (read only permission), or none (no access permission). The default value is rw.

-

user_type

-

String

-

File system access permission granted to the user of the authorized object. The value can be no_root_squash, root_squash, or all_squash. Value no_root_squash allows the root user on the client to access the file system as root. Value root_squash allows the root user on the client to access the file system as nfsnobody. Value all_squash allows any user on the client to access the file system as nfsnobody.

-
-
-

Status code: 500

- -
- - - - - - - - - - - - - -
Table 5 Response body parameters

Parameter

-

Type

-

Description

-

errCode

-

String

-

Error code

-

Minimum length: 8 characters

-

Maximum length: 36 characters

-

errMsg

-

String

-

Error message

-

Minimum length: 2 characters

-

Maximum length: 512 characters

-
-
-
-

Example Request

None

-
-

Example Response

Status code: 200

-
Successful query
{
-    "rules": [
-        {
-            "id": "2be0cc3d-cf1e-49d5-bce3-83e91e32ff42",
-            "ip_cidr": "*",
-            "rw_type": "rw",
-            "user_type": "no_root_squash"
-        },
-        {
-            "id": "d56a5130-6744-4a64-866b-9dc259f5a64c",
-            "ip_cidr": "188.88.88.88",
-            "rw_type": "ro",
-            "user_type": "no_root_squash"
-        }
-    ],
-    "count": 2
-}
-
-

Status code: 500

-

Error response

-
{ 
-  "errCode" : "SFS.TURBO.0005", 
-  "errMsg" : "Internal server error" 
-}
-
-

Status Codes

-
- - - - - - - - - - -

Status Code

-

Description

-

200

-

Successful query

-

500

-

Error response

-
-
-
-
-
- -
- diff --git a/docs/sfs/api-ref/en-us_topic_0000001614557076.html b/docs/sfs/api-ref/en-us_topic_0000001614557076.html deleted file mode 100644 index 5a758716..00000000 --- a/docs/sfs/api-ref/en-us_topic_0000001614557076.html +++ /dev/null @@ -1,186 +0,0 @@ - - -

Deleting a Permissions Rule

-

Function

This API is used to delete a permission rule.

-
-

URI

DELETE /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules/{rule_id}

- -
- - - - - - - - - - - - - - - - - - - - - -
Table 1 Path parameters

Parameter

-

Mandatory

-

Type

-

Description

-

project_id

-

Yes

-

String

-

Project ID

-

share_id

-

Yes

-

String

-

File system ID

-

rule_id

-

Yes

-

String

-

Permission rule ID

-
-
-
-

Request Parameters

-
- - - - - - - - - - - - - - - - -
Table 2 Request header parameters

Parameter

-

Mandatory

-

Type

-

Description

-

X-Auth-Token

-

Yes

-

String

-

Account token

-

Content-Type

-

Yes

-

String

-

MIME type

-
-
-
-

Response Parameters

Status code: 400

- -
- - - - - - - - - - - - - -
Table 3 Response body parameters

Parameter

-

Type

-

Description

-

errCode

-

String

-

Error code

-

Minimum length: 8 characters

-

Maximum length: 36 characters

-

errMsg

-

String

-

Error message

-

Minimum length: 2 characters

-

Maximum length: 512 characters

-
-
-

Status code: 500

- -
- - - - - - - - - - - - - -
Table 4 Response body parameters

Parameter

-

Type

-

Description

-

errCode

-

String

-

Error code

-

Minimum length: 8 characters

-

Maximum length: 36 characters

-

errMsg

-

String

-

Error message

-

Minimum length: 2 characters

-

Maximum length: 512 characters

-
-
-
-

Example Request

None

-
-

Example Response

Status code: 500

-

Error response

-
{ 
-  "errCode" : "SFS.TURBO.0005", 
-  "errMsg" : "Internal server error" 
-}
-
-

Status Codes

-
- - - - - - - - - - - - - -

Status Code

-

Description

-

204

-

Successful deletion

-

400

-

Error response

-

500

-

Error response

-
-
-
-
-
- -
- diff --git a/docs/sfs/api-ref/en-us_topic_0000001662877113.html b/docs/sfs/api-ref/en-us_topic_0000001662877113.html deleted file mode 100644 index eca335ae..00000000 --- a/docs/sfs/api-ref/en-us_topic_0000001662877113.html +++ /dev/null @@ -1,240 +0,0 @@ - - -

Querying a Permission Rule by ID

-

Function

This API is used to query a specific permission rule of a file system.

-
-

URI

GET /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules/{rule_id}

- -
- - - - - - - - - - - - - - - - - - - - - -
Table 1 Path parameters

Parameter

-

Mandatory

-

Type

-

Description

-

project_id

-

Yes

-

String

-

Project ID

-

share_id

-

Yes

-

String

-

File system ID

-

rule_id

-

Yes

-

String

-

Permission rule ID

-
-
-
-

Request Parameters

-
- - - - - - - - - - - - - - - - -
Table 2 Request header parameters

Parameter

-

Mandatory

-

Type

-

Description

-

X-Auth-Token

-

Yes

-

String

-

Account token

-

Content-Type

-

Yes

-

String

-

MIME type

-
-
-
-

Response Parameters

Status code: 200

- -
- - - - - - - - - - - - - - - - - - - - - -
Table 3 Response body parameters

Parameter

-

Type

-

Description

-

id

-

String

-

Permission rule ID

-

ip_cidr

-

String

-

IP address or IP address range of the authorized object

-

rw_type

-

String

-

Read/write permission of the authorized object. The value can be rw (read and write permission), ro (read only permission), or none (no access permission). The default value is rw.

-

user_type

-

String

-

File system access permission granted to the user of the authorized object. The value can be no_root_squash, root_squash, or all_squash. Value no_root_squash allows the root user on the client to access the file system as root. Value root_squash allows the root user on the client to access the file system as nfsnobody. Value all_squash allows any user on the client to access the file system as nfsnobody.

-
-
-

Status code: 400

- -
- - - - - - - - - - - - - -
Table 4 Response body parameters

Parameter

-

Type

-

Description

-

errCode

-

String

-

Error code

-

Minimum length: 8 characters

-

Maximum length: 36 characters

-

errMsg

-

String

-

Error message

-

Minimum length: 2 characters

-

Maximum length: 512 characters

-
-
-

Status code: 500

- -
- - - - - - - - - - - - - -
Table 5 Response body parameters

Parameter

-

Type

-

Description

-

errCode

-

String

-

Error code

-

Minimum length: 8 characters

-

Maximum length: 36 characters

-

errMsg

-

String

-

Error message

-

Minimum length: 2 characters

-

Maximum length: 512 characters

-
-
-
-

Example Request

None

-
-

Example Response

{  
-  "ip_cidr":"188.88.88.88",
-  "rw_type":"ro",
-  "user_type":"no_root_squash"
-}
-

Status code: 200

-

Successful query

-

Status code: 400

-

Error response

-
{ 
-  "errCode" : "SFS.TURBO.0001", 
-  "errMsg" : "Invalid rule id" 
-}
-

Status code: 500

-

Error response

-
{ 
-  "errCode" : "SFS.TURBO.0005", 
-  "errMsg" : "Internal server error" 
-}
-
-

Status Codes

-
- - - - - - - - - - - - - -

Status Code

-

Description

-

200

-

Successful query

-

400

-

Error response

-

500

-

Error response

-
-
-
-
-
- -
- diff --git a/docs/sfs/api-ref/en-us_topic_0000001662997101.html b/docs/sfs/api-ref/en-us_topic_0000001662997101.html deleted file mode 100644 index 9b6a6dc8..00000000 --- a/docs/sfs/api-ref/en-us_topic_0000001662997101.html +++ /dev/null @@ -1,269 +0,0 @@ - - -

Modifying a Permission Rule

-

Function

This API is used to modify a permission rule.

-
-

URI

PUT /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules/{rule_id}

- -
- - - - - - - - - - - - - - - - - - - - - -
Table 1 Path parameters

Parameter

-

Mandatory

-

Type

-

Description

-

project_id

-

Yes

-

String

-

Project ID

-

share_id

-

Yes

-

String

-

File system ID

-

rule_id

-

Yes

-

String

-

Permission rule ID

-
-
-
-

Request Parameters

-
- - - - - - - - - - - - - - - - -
Table 2 Request header parameters

Parameter

-

Mandatory

-

Type

-

Description

-

X-Auth-Token

-

Yes

-

String

-

Account token

-

Content-Type

-

Yes

-

String

-

MIME type

-
-
- -
- - - - - - - - - - - - - - - - -
Table 3 Request body parameters

Parameter

-

Mandatory

-

Type

-

Description

-

rw_type

-

No

-

String

-

Read/write permission of the object to be authorized. The value can be rw (read and write permission), ro (read only permission), or none (no access permission). The default value is rw.

-

user_type

-

No

-

String

-

File system access permission granted to the user of the object to be authorized. The value can be no_root_squash, root_squash, or all_squash. Value no_root_squash allows the root user on the client to access the file system as root. Value root_squash allows the root user on the client to access the file system as nfsnobody. Value all_squash allows any user on the client to access the file system as nfsnobody.

-
-
-
-

Response Parameters

Status code: 200

- -
- - - - - - - - - - - - - - - - - -
Table 4 Response body parameters

Parameter

-

Type

-

Description

-

ip_cidr

-

String

-

IP address or IP address range of the authorized object

-

rw_type

-

String

-

Read/write permission of the authorized object. The value can be rw (read and write permission), ro (read only permission), or none (no access permission). The default value is rw.

-

user_type

-

String

-

File system access permission granted to the user of the authorized object. The value can be no_root_squash, root_squash, or all_squash. Value no_root_squash allows the root user on the client to access the file system as root. Value root_squash allows the root user on the client to access the file system as nfsnobody. Value all_squash allows any user on the client to access the file system as nfsnobody.

-
-
-

Status code: 400

- -
- - - - - - - - - - - - - -
Table 5 Response body parameters

Parameter

-

Type

-

Description

-

errCode

-

String

-

Error code

-

Minimum length: 8 characters

-

Maximum length: 36 characters

-

errMsg

-

String

-

Error message

-

Minimum length: 2 characters

-

Maximum length: 512 characters

-
-
-

Status code: 500

- -
- - - - - - - - - - - - - -
Table 6 Response body parameters

Parameter

-

Type

-

Description

-

errCode

-

String

-

Error code

-

Minimum length: 8 characters

-

Maximum length: 36 characters

-

errMsg

-

String

-

Error message

-

Minimum length: 2 characters

-

Maximum length: 512 characters

-
-
-
-

Example Request

{ 
-  "rw_type" : "rw", 
-  "user_type" : "no_root_squash" 
-}
-
-

Example Response

{
-  "ip_cidr":"188.88.88.88",
-  "rw_type":"ro",
-  "user_type":"no_root_squash"
-}
- 
-

Status code: 200

-

Successful modification

-

Status code: 400

-

Error response

-
{ 
-  "errCode" : "SFS.TURBO.0001", 
-  "errMsg" : "Invalid rule id" 
-}
-

Status code: 500

-

Error response

-
{ 
-  "errCode" : "SFS.TURBO.0005", 
-  "errMsg" : "Internal server error" 
-}
-
-

Status Codes

-
- - - - - - - - - - - - - -

Status Code

-

Description

-

200

-

Successful modification

-

400

-

Error response

-

500

-

Error response

-
-
-
-
-
- -
- diff --git a/docs/sfs/api-ref/en-us_topic_0000001663116961.html b/docs/sfs/api-ref/en-us_topic_0000001663116961.html deleted file mode 100644 index 2f2fd29d..00000000 --- a/docs/sfs/api-ref/en-us_topic_0000001663116961.html +++ /dev/null @@ -1,23 +0,0 @@ - - -

Permissions Management

-
- - diff --git a/docs/sfs/api-ref/en-us_topic_0000001663156945.html b/docs/sfs/api-ref/en-us_topic_0000001663156945.html deleted file mode 100644 index 49cb6bd9..00000000 --- a/docs/sfs/api-ref/en-us_topic_0000001663156945.html +++ /dev/null @@ -1,336 +0,0 @@ - - -

Creating a Permission Rule

-

Function

This API is used to create a permission rule.

-
-

URI

POST /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/perm-rules

- -
- - - - - - - - - - - - - - - - -
Table 1 Path parameters

Parameter

-

Mandatory

-

Type

-

Description

-

project_id

-

Yes

-

String

-

Project ID

-

share_id

-

Yes

-

String

-

File system ID

-
-
-
-

Request Parameters

-
- - - - - - - - - - - - - - - - -
Table 2 Request header parameters

Parameter

-

Mandatory

-

Type

-

Description

-

X-Auth-Token

-

Yes

-

String

-

Account token

-

Content-Type

-

Yes

-

String

-

MIME type

-
-
- -
- - - - - - - - - - - -
Table 3 Request body parameter

Parameter

-

Mandatory

-

Type

-

Description

-

rules

-

Yes

-

Array of Table 4 objects

-

Permission rule details. A maximum of five rules can be created at a time.

-
-
- -
- - - - - - - - - - - - - - - - - - - - - -
Table 4 OnePermRuleRequestInfo

Parameter

-

Mandatory

-

Type

-

Description

-

rw_type

-

Yes

-

String

-

Read/write permission of the object to be authorized. The value can be rw (read and write permission), ro (read only permission), or none (no access permission). The default value is rw.

-

user_type

-

Yes

-

String

-

File system access permission granted to the user of the object to be authorized. The value can be no_root_squash, root_squash, or all_squash. Value no_root_squash allows the root user on the client to access the file system as root. Value root_squash allows the root user on the client to access the file system as nfsnobody. Value all_squash allows any user on the client to access the file system as nfsnobody.

-

ip_cidr

-

Yes

-

String

-

IP address or IP address range of the object to be authorized

-
-
-
-

Response Parameters

Status code: 200

- -
- - - - - - - - - -
Table 5 Response body parameter

Parameter

-

Type

-

Description

-

rules

-

Array of Table 6 objects

-

Permission rule details

-
-
- -
- - - - - - - - - - - - - - - - - - - - - -
Table 6 OnePermRuleResponseInfo

Parameter

-

Type

-

Description

-

id

-

String

-

Permission rule ID

-

ip_cidr

-

String

-

IP address or IP address range of the authorized object

-

rw_type

-

String

-

Read/write permission of the authorized object. The value can be rw (read and write permission), ro (read only permission), or none (no access permission). The default value is rw.

-

user_type

-

String

-

File system access permission granted to the user of the authorized object. The value can be no_root_squash, root_squash, or all_squash. Value no_root_squash allows the root user on the client to access the file system as root. Value root_squash allows the root user on the client to access the file system as nfsnobody. Value all_squash allows any user on the client to access the file system as nfsnobody.

-
-
-

Status code: 400

- -
- - - - - - - - - - - - - -
Table 7 Response body parameters

Parameter

-

Type

-

Description

-

errCode

-

String

-

Error code

-

Minimum length: 8 characters

-

Maximum length: 36 characters

-

errMsg

-

String

-

Error message

-

Minimum length: 2 characters

-

Maximum length: 512 characters

-
-
-

Status code: 500

- -
- - - - - - - - - - - - - -
Table 8 Response body parameters

Parameter

-

Type

-

Description

-

errCode

-

String

-

Error code

-

Minimum length: 8 characters

-

Maximum length: 36 characters

-

errMsg

-

String

-

Error message

-

Minimum length: 2 characters

-

Maximum length: 512 characters

-
-
-
-

Example Request

{ 
-  "rules" : [ { 
-    "ip_cidr" : "192.168.0.0/16", 
-    "rw_type" : "rw", 
-    "user_type" : "no_root_squash" 
-  }, { 
-    "ip_cidr" : "192.32.0.0/16", 
-    "rw_type" : "rw", 
-    "user_type" : "no_root_squash" 
-  } ] 
-}
-
-

Example Response

{
-    "rules": [
-        {
-            "id": "2be0cc3d-cf1e-49d5-bce3-83e91e32ff42",
-            "ip_cidr": "*",
-            "rw_type": "rw",
-            "user_type": "no_root_squash"
-        },
-        {
-            "id": "d56a5130-6744-4a64-866b-9dc259f5a64c",
-            "ip_cidr": "192.32.0.0/16",
-            "rw_type": "ro",
-            "user_type": "no_root_squash"
-        }
-    ],
-    "count": 2
-}
-

Status code: 200

-

Successful creation

-

Status code: 400

-

Error response

-
{ 
-  "errCode" : "SFS.TURBO.0001", 
-  "errMsg" : "Rules not allowed empty" 
-}
-

Status code: 500

-

Error response

-
{ 
-  "errCode" : "SFS.TURBO.0005", 
-  "errMsg" : "Internal server error" 
-}
-
-

Status Codes

-
- - - - - - - - - - - - - -

Status Code

-

Description

-

200

-

Successful creation

-

400

-

Error response

-

500

-

Error response

-
-
-
-
-
- -
- diff --git a/docs/sfs/api-ref/public_sys-resources/imageclose.gif b/docs/sfs/api-ref/public_sys-resources/imageclose.gif new file mode 100644 index 0000000000000000000000000000000000000000..3a3344af4afdeedcbd8d49c6739d1e100142841b GIT binary patch literal 1238 zcmZ?wbhEHb6krfwSj57xcJ11&Tet4ryZ7kPqyPW^XMh34|J)J20SYdOC5b@V#=fE; zF*!T6L?J0PJu}Z%>HY5gN(z}Nwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBX zRu#Dgxv3?I3Kh9IdBs*0wn~X9`AMl(KsHENUr7P1q$Jx`$q^)>0J76LzbI9~RL@v9 z*}%|H!OTq0(8Sct%uq+c$iUD@-vEfrbPY|cOwFu}%oU(O320kUN}5%WiyPD~AkS7Q zqokz3N?*Ucyj-u`STDaQUEk2s(h_8bk&!M?g>G?WUP)qwZeFo6%mkOz;^d;tf|AVq zJOz-6iAnjTCALaHmqNUdTj1*pH#o0Y59}emIIA zz^b}9q_QAYKPa_0zqBYh6{uVprWqJ^_$>k{1iHq`zbF$JDTz5Q`N^fZsd*)yF1AWQ z8NHOu6f0*7Co?Al3m0=|Hz!wTLqkUsXG>=zLt`g5XA?&!BSV-O*z_71I9eK+yO_E; zSy&hvx;k5$nmSv$xwx4dyBfNhxVXUddgc|EB<3Zj!tBii+6&cdf>*DVb5UwyNq$jC zetr%t1q5W|m*f{`1N{AbeZ0LqJ>1<~U7Vd99qjFFZLF;!Y#3Q(W~w5=#5%__*n4QdyV zXRDM^Qc_^0uU}qXu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bM zNoIbY0?5R~r2NtnTP2`NAzsKWfE$}vtOxdvUUGh}ennz|zM-B0$V)JVzP|XC=H|jx z7ncO3BHWAB;NpiyW)Z+ZoqU2Pda%GTJ1y;^Qsfi`|MIrh5Ij~R+$jC3rFV4s> zP;d@5Q_u*{%uC5HFV+OB_w}{%%quQQ%u7!7bg@+enxL1NnPO#X>1=9lW@_r@WZ`IN z=<4ibV(4aRVPt0NVq{?MV&MeS>yn>bnwy$e0@Is<&})WMFDNPG765H_NiE7OOHFYr z%Fk5*d)X=zw_A*Hng`XJg4-=7IQ8lS9itD5Sfq%C2?0|NhzU=&Kn^_Nr{)1udl4{M zGyebg_s{QNKYx7x_Vvr>Pai+LfA{vy>sK#dJb(7|$>T>4AKbrp_s;EGH*Z|OcJ<2T zOBXMkKX>-b=~E|996xsS$l*f=5A5H!chBx!J9li~wsp(qO&d3?U$=J6>QyUOEMK;C z$>K!|7tEhGch2ltGiOYnHg(G6NfRgZ_x1L4cXf8Ox3#u3H#IiY*VWckS5;P&mz9V~xOjJZzNKk;EkC%s= zi<5($jg^I&iIIUp@h1zAWM$9+l@y?Ign`*MLgebdMh%7=#f^GV`6oq~%OupNBpS~X u5MOie_{@!7oGG@??#=tAc88xep;u>9v^MK*8TL~W837UsORumnSOWmkrlE=e literal 0 HcmV?d00001 diff --git a/docs/sfs/api-ref/public_sys-resources/imagemax.gif b/docs/sfs/api-ref/public_sys-resources/imagemax.gif new file mode 100644 index 0000000000000000000000000000000000000000..99c07dc2570d75fa74b38e02474edaa068eac3cd GIT binary patch literal 1267 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 CuQ@6J literal 0 HcmV?d00001 diff --git a/docs/sfs/api-ref/sfs_02_0001.html b/docs/sfs/api-ref/sfs_02_0001.html index e6a60b66..f0d162d2 100644 --- a/docs/sfs/api-ref/sfs_02_0001.html +++ b/docs/sfs/api-ref/sfs_02_0001.html @@ -4,5 +4,54 @@

Public cloud APIs comply with the RESTful API design principles. REST-based web services are organized into resources. Each resource is identified by one or more Uniform Resource Identifiers (URIs). An application accesses a resource based on the resource's Unified Resource Locator (URL). A URL is usually in the following format: https://Endpoint/uri. In the URL, uri indicates the resource path, that is, the API access path.

Public cloud APIs use HTTPS as the transmission protocol. Requests/Responses are transmitted by using JSON messages, with media type represented by Application/json.

For details about how to use APIs, see API Usage Guidelines.

+

An endpoint is the request address for calling an API. Endpoints vary depending on services and regions.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Table 1 SFS endpoint information

Service Name

+

Region

+

URL

+

Protocol

+

Scalable File Service Turbo

+

eu-de

+

sfs-turbo.eu-de.otc.t-systems.com

+

HTTPS

+

eu-nl

+

sfs-turbo.eu-nl.otc.t-systems.com

+

HTTPS

+

Scalable File Service

+

eu-de

+

sfs.eu-de.otc.t-systems.com

+

HTTPS

+

SFS 3.0 Capacity-Oriented

+

eu-de

+

sfs3.eu-de.otc.t-systems.com

+

HTTPS

+
+
diff --git a/docs/sfs/api-ref/sfs_02_0008.html b/docs/sfs/api-ref/sfs_02_0008.html new file mode 100644 index 00000000..bf7a6bbd --- /dev/null +++ b/docs/sfs/api-ref/sfs_02_0008.html @@ -0,0 +1,15 @@ + + +

Calling APIs

+
+ + diff --git a/docs/sfs/api-ref/sfs_02_0009.html b/docs/sfs/api-ref/sfs_02_0009.html new file mode 100644 index 00000000..c049fc08 --- /dev/null +++ b/docs/sfs/api-ref/sfs_02_0009.html @@ -0,0 +1,232 @@ + + +

Making an API Request

+

This section describes the structure of a REST API request, and uses the IAM API for obtaining a user token as an example to demonstrate how to call an API. The obtained token can then be used to authenticate the calling of other APIs.

+

Request URI

A request URI is in the following format:

+

{URI-scheme}://{Endpoint}/{resource-path}?{query-string}

+

Although a request URI is included in the request header, most programming languages or frameworks require the request URI to be transmitted separately.

+ +
+ + + + + + + + + + + + + + + + +
Table 1 URI parameter description

Parameter

+

Description

+

URI-scheme

+

Protocol used to transmit requests. All APIs use HTTPS.

+

Endpoint

+

Domain name or IP address of the server bearing the REST service. The endpoint varies between services in different regions. It can be obtained from Regions and Endpoints.

+

resource-path

+

Access path of an API for performing a specified operation. Obtain the path from the URI of an API. For example, the resource-path of the API used to obtain a user token is /v3/auth/tokens.

+

query-string

+

Query parameter, which is optional. Ensure that a question mark (?) is included before each query parameter that is in the format of Parameter name=Parameter value. For example, ? limit=10 indicates that a maximum of 10 data records will be displayed.

+
+
+

To simplify the URI display in this document, each API is provided only with a resource-path and a request method. The URI-scheme of all APIs is HTTPS, and the endpoints of all APIs in the same region are identical.

+
+
+

Request Methods

The HTTP protocol defines the following request methods that can be used to send a request to the server. +
+ + + + + + + + + + + + + + + + + + + + + + +
Table 2 HTTP methods

Method

+

Description

+

GET

+

Requests the server to return specified resources.

+

PUT

+

Requests the server to update specified resources.

+

POST

+

Requests the server to add resources or perform special operations.

+

DELETE

+

Requests the server to delete specified resources, for example, an object.

+

HEAD

+

Same as GET except that the server must return only the response header.

+

PATCH

+

Requests the server to update partial content of a specified resource.

+

If the resource does not exist, a new resource will be created.

+
+
+
+

For example, in the case of the API used to obtain a user token, the request method is POST. The request is as follows:

+
1
POST https://{{endpoint}}/v3/auth/tokens
+
+
+
+

Request Header

You can also add additional header fields to a request, such as the fields required by a specified URI or HTTP method. For example, to request for the authentication information, add Content-Type, which specifies the request body type.

+
Common request header fields are as follows. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 3 Common request header fields

Parameter

+

Description

+

Mandatory

+

Example Value

+

Host

+

Specifies the server domain name and port number of the resources being requested. The value can be obtained from the URL of the service API. The value is in the format of Hostname:Port number. If the port number is not specified, the default port is used. The default port number for https is 443.

+

No

+

This field is mandatory for AK/SK authentication.

+

code.test.com

+

or

+

code.test.com:443

+

Content-Type

+

Specifies the type (or format) of the message body. The default value application/json is recommended. Other values of this field will be provided for specific APIs if any.

+

Yes

+

application/json

+

Content-Length

+

Specifies the length of the request body. The unit is byte.

+

No

+

3495

+

X-Project-Id

+

Specifies the project ID. Obtain the project ID by following the instructions in Obtaining a Project ID.

+

No

+

e9993fc787d94b6c886cbaa340f9c0f4

+

X-Auth-Token

+

Specifies the user token.

+

It is a response to the API for obtaining a user token (This is the only API that does not require authentication).

+

After the request is processed, the value of X-Subject-Token in the response header is the token value.

+

No

+

This field is mandatory for token authentication.

+

The following is part of an example token:

+

MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ

+
+
+
+

In addition to supporting authentication using tokens, APIs support authentication using AK/SK, which uses SDKs to sign a request. During the signature, the Authorization (signature authentication) and X-Sdk-Date (time when a request is sent) headers are automatically added in the request.

+

For more details, see "Authentication Using AK/SK" in Authentication.

+
+

The API used to obtain a user token does not require authentication. Therefore, only the Content-Type field needs to be added to requests for calling the API. An example of such requests is as follows:

+
1
+2
POST https://{{endpoint}}/v3/auth/tokens
+Content-Type: application/json
+
+
+
+

(Optional) Request Body

This part is optional. The body of a request is often sent in a structured format (for example, JSON or XML) as specified in the Content-Type header field. The request body transfers content except the request header.

+

The request body varies between APIs. Some APIs do not require the request body, such as the APIs requested using the GET and DELETE methods.

+

In the case of the API used to obtain a user token, the request parameters and parameter description can be obtained from the API request. The following provides an example request with a body included. Replace username, domainname, $ADMIN_PASS (login password), and xxxxxxxxxxxxxxxxxx (project name) with the actual values. Obtain a project name from Regions and Endpoints.

+

The scope parameter specifies where a token takes effect. You can set scope to an account or a project under an account. In the following example, the token takes effect only for the resources in a specified project. For more information about this API, see Obtaining a User Token.

+
+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
POST https://{{endpoint}}/v3/auth/tokens
+Content-Type: application/json
+
+{
+    "auth": {
+        "identity": {
+            "methods": [
+                "password"
+            ],
+            "password": {
+                "user": {
+                    "name": "username",
+                    "password": "$ADMIN_PASS",     //You are advised to store it in ciphertext in the configuration file or an environment variable and decrypt it when needed to ensure security.
+                    "domain": {
+                        "name": "domainname"
+                    }
+                }
+            }
+        },
+        "scope": {
+            "project": {
+                "name": "xxxxxxxxxxxxxxxxxx"
+            }
+        }
+    }
+}
+
+
+

If all data required for the API request is available, you can send the request to call the API through curl, Postman, or coding. In the response to the API used to obtain a user token, X-Subject-Token is the desired user token. This token can then be used to authenticate the calling of other APIs.

+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/sfs_02_0011.html b/docs/sfs/api-ref/sfs_02_0011.html new file mode 100644 index 00000000..a322468e --- /dev/null +++ b/docs/sfs/api-ref/sfs_02_0011.html @@ -0,0 +1,57 @@ + + +

Authentication

+
Requests for calling an API can be authenticated using either of the following methods:
  • AK/SK authentication: Requests are encrypted using AK/SK pairs. AK/SK authentication is recommended because it is more secure than token authentication.
  • Token authentication: Requests are authenticated using tokens.
+
+

AK/SK Authentication

AK/SK authentication supports API requests with a body not larger than 12 MB. For API requests with a larger body, token authentication is recommended.

+
+

In AK/SK authentication, AK/SK is used to sign requests and the signature is then added to the requests for authentication.

+
  • AK: access key ID, which is a unique identifier used in conjunction with a secret access key to sign requests cryptographically.
  • SK: secret access key, which is used in conjunction with an AK to sign requests cryptographically. It identifies a request sender and prevents the request from being modified.
+

In AK/SK authentication, you can use an AK/SK to sign requests based on the signature algorithm or using the signing SDK.

+

The signing SDK is only used for signing requests and is different from the SDKs provided by services.

+
+
+

Token Authentication

The validity period of a token is 24 hours. When using a token for authentication, cache it to prevent frequently calling the IAM API used to obtain a user token.

+
+

A token specifies temporary permissions in a computer system. During API authentication using a token, the token is added to requests to get permissions for calling the API. You can obtain a token by calling the Obtaining User Token API.

+

IMS is a project-level service. When you call the API, set auth.scope in the request body to project.

+

+
{
+    "auth": {
+        "identity": {
+            "methods": [
+                "password"
+            ],
+            "password": {
+                "user": {
+                    "name": "username",   // IAM user name
+                    "password": $ADMIN_PASS,  //IAM user password. You are advised to store it in ciphertext in the configuration file or an environment variable and decrypt it when needed to ensure security.
+                    "domain": {
+                        "name": "domainname"  // Name of the domain to which the IAM user belongs
+                    }
+                }
+            }
+        },
+        "scope": {
+            "project": {
+                "name": "xxxxxxxx"    // Project name
+            }
+        }
+    }
+}
+

After a token is obtained, the X-Auth-Token header field must be added to requests to specify the token when calling other APIs. For example, if the token is ABCDEFJ...., X-Auth-Token: ABCDEFJ.... can be added to a request as follows:

+
1
+2
+3
POST https://{{endpoint}}/v3/auth/projects
+Content-Type: application/json
+X-Auth-Token: ABCDEFJ....
+
+
+
+
+
+ +
+ diff --git a/docs/sfs/api-ref/sfs_02_0012.html b/docs/sfs/api-ref/sfs_02_0012.html new file mode 100644 index 00000000..78e33480 --- /dev/null +++ b/docs/sfs/api-ref/sfs_02_0012.html @@ -0,0 +1,41 @@ + + +

Response

+

Status Code

After sending a request, you will receive a response, including a status code, response header, and response body.

+

A status code is a group of digits, ranging from 1xx to 5xx. It indicates the status of a request. For more information, see Status Codes.

+

For example, if status code 201 is returned for calling the API used to , the request is successful.

+
+

Response Header

Similar to a request, a response also has a header, for example, Content-Type.

+

Figure 1 shows the response header fields for the API used to . The X-Subject-Token header field is the desired user token. This token can then be used to authenticate the calling of other APIs.

+

For security purposes, you are advised to set the token in ciphertext in configuration files or environment variables and decrypt it when using it.

+
+
Figure 1 Header fields of the response to the request for obtaining a user token
+
+

(Optional) Response Body

The body of a response is often returned in a structured format (for example, JSON or XML) as specified in the Content-Type header field. The response body transfers content except the response header.

+
+

The following is part of the response body for the API used to .

+

If an error occurs during API calling, an error code and a message will be displayed. The following shows an error response body.

+
1
+2
+3
+4
{
+    "error_msg": "The request message format is invalid.",
+    "error_code": "IMG.0001"
+}
+
+
+

In the response body, error_code is an error code, and error_msg provides information about the error.

+
+
+ +
+ + + \ No newline at end of file diff --git a/docs/sfs/api-ref/sfs_02_0016.html b/docs/sfs/api-ref/sfs_02_0016.html index f7764778..89635777 100644 --- a/docs/sfs/api-ref/sfs_02_0016.html +++ b/docs/sfs/api-ref/sfs_02_0016.html @@ -1,7 +1,8 @@

SFS Capacity-Oriented APIs

-
+

+
-
  • Example request
    {
    +
    • Example request
      Modifying a shared file system (with the file system name changed to testshare and description to test):
      {
           "share": {
               "display_name": "testshare",
               "display_description": "test"
           }
       }
      +

    Response

    • Parameter description @@ -198,7 +199,7 @@

      String

      -

      (Supported by API versions from v2.31 to v2.42) Specifies the ID of a consistency group. This parameter is reserved, because consistency groups are not supported currently.

      +

      (Supported by API versions from v2.31 to v2.42.) Specifies the ID of a consistency group. This parameter is reserved, because consistency groups are not supported currently.

      project_id

      @@ -233,14 +234,14 @@

      Boolean

      -

      (Supported by API versions from v2.11 to v2.42) Specifies whether any replication exists. This parameter is reserved, because replication is not supported currently.

      +

      (Supported by API versions from v2.11 to v2.42.) Specifies whether any replication exists. This parameter is reserved, because replication is not supported currently.

      replication_type

      String

      -

      (Supported by API versions from v2.11 to v2.42) Specifies the replication type. This parameter is reserved, because replication is not supported currently.

      +

      (Supported by API versions from v2.11 to v2.42.) Specifies the replication type. This parameter is reserved, because replication is not supported currently.

      description

      @@ -324,7 +325,7 @@

      Boolean

      -

      (Supported by API versions from v2.8 to v2.42). Specifies whether a file system can be publicly seen. If it is set to true, the file system can be seen publicly. If it is set to false, the file system can be seen privately. The default value is false.

      +

      (Supported by API versions from v2.8 to v2.42.) Specifies whether a file system can be publicly seen. If it is set to true, the file system can be seen publicly. If it is set to false, the file system can be seen privately. The default value is false.

      source_share_group_snapshot_member_id

      diff --git a/docs/sfs/api-ref/sfs_02_0029.html b/docs/sfs/api-ref/sfs_02_0029.html index 85b0e5dc..4af20124 100644 --- a/docs/sfs/api-ref/sfs_02_0029.html +++ b/docs/sfs/api-ref/sfs_02_0029.html @@ -132,7 +132,7 @@
    • Example request (IP address-based authorization)

      POST /v2/{project_id}/shares/{share_id}/action?vpc_ip_base_acl=enable

      -

      NFS file system:

      +

      Adding a file system access rule (value of the rule parameter 0560a527-0e77-40a6-aa3b-110beecad368#127.0.0.1#1#all_squash,root_squash):

      { 
           "allow_access": { 
               "access_to": "0560a527-0e77-40a6-aa3b-110beecad368#127.0.0.1#1#all_squash,root_squash", 
      @@ -227,14 +227,14 @@
       
       

      String

      -

      Specifies the time when the access rule was created. This parameter exists only when the value of X-Openstack-Manila-Api-Version in the request header is greater than or equal to 2.33.

      +

      Specifies the time when the access rule was created. This parameter exists only when the value of X-Openstack-Manila-Api-Version in the request header is greater than or equal to 2.33.

      updated_at

      String

      -

      Specifies the time when the access rule was updated. This parameter exists only when the value of X-Openstack-Manila-Api-Version in the request header is greater than or equal to 2.33.

      +

      Specifies the time when the access rule was updated. This parameter exists only when the value of X-Openstack-Manila-Api-Version in the request header is greater than or equal to 2.33.

      diff --git a/docs/sfs/api-ref/sfs_02_0030.html b/docs/sfs/api-ref/sfs_02_0030.html index 51eb73ac..18e293cb 100644 --- a/docs/sfs/api-ref/sfs_02_0030.html +++ b/docs/sfs/api-ref/sfs_02_0030.html @@ -88,11 +88,12 @@
    -
    • Example request
      {
      +
      • Example request
        Deleting a file system access rule (rule ID: 418e3cf4-08c3-4ed2-a29a-ceffa346b3b8):
        {
             "os-deny_access": {
                 "access_id": "418e3cf4-08c3-4ed2-a29a-ceffa346b3b8"
             }
         }
        +

      Response

      • Parameter description
      diff --git a/docs/sfs/api-ref/sfs_02_0034.html b/docs/sfs/api-ref/sfs_02_0034.html index 7fcfdfdd..e78c0e1c 100644 --- a/docs/sfs/api-ref/sfs_02_0034.html +++ b/docs/sfs/api-ref/sfs_02_0034.html @@ -86,11 +86,12 @@
    -
    • Example request
      {
      +
      • Example request
        Expanding the capacity of a shared file system to 2 GB:
        {
             "os-extend": {
                 "new_size": 2
             }
         }
        +

      Response

      • Parameter description

        None

        diff --git a/docs/sfs/api-ref/sfs_02_0035.html b/docs/sfs/api-ref/sfs_02_0035.html index 28ac1fef..420c3c73 100644 --- a/docs/sfs/api-ref/sfs_02_0035.html +++ b/docs/sfs/api-ref/sfs_02_0035.html @@ -86,11 +86,12 @@
    -
    • Example request
      {
      +
      • Example request
        Reducing the capacity of a shared file system to 1 GB:
        {
             "os-shrink": {
                 "new_size": 1
             }
         }
        +

      Response

      • Parameter description

        None

        diff --git a/docs/sfs/api-ref/sfs_02_0049.html b/docs/sfs/api-ref/sfs_02_0049.html index aed5d941..c2c48d90 100644 --- a/docs/sfs/api-ref/sfs_02_0049.html +++ b/docs/sfs/api-ref/sfs_02_0049.html @@ -4,17 +4,17 @@
        diff --git a/docs/sfs/api-ref/sfs_02_0050.html b/docs/sfs/api-ref/sfs_02_0050.html deleted file mode 100644 index a1443652..00000000 --- a/docs/sfs/api-ref/sfs_02_0050.html +++ /dev/null @@ -1,21 +0,0 @@ - - -

        Lifecycle Management

        -
        - - diff --git a/docs/sfs/api-ref/sfs_02_0051.html b/docs/sfs/api-ref/sfs_02_0051.html deleted file mode 100644 index 3a06ea58..00000000 --- a/docs/sfs/api-ref/sfs_02_0051.html +++ /dev/null @@ -1,275 +0,0 @@ - - -

        Creating a File System

        -

        Function

        This API is used to create an SFS Turbo file system.

        -
        -

        URI

        • URI format

          POST /v1/{project_id}/sfs-turbo/shares

          -
        • Parameter description -
          - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          project_id

          -

          Yes

          -

          String

          -

          Specifies the project ID. For details about how to obtain the project ID, see API Usage Guidelines.

          -
          -
          -
        -
        -

        Request

        • Parameter description -
          - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          share

          -

          Yes

          -

          Object

          -

          Specifies the SFS Turbo file system information. For details about the parameters, see the description of the share field.

          -
          -
          -
        • Description of the share field -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          name

          -

          Yes

          -

          String

          -

          Specifies the name of the SFS Turbo file system. The value contains 4 to 64 characters and must start with a letter. This value can contain letters (case insensitive), digits, hyphens (-), and underscores (_), and cannot contain other special characters.

          -

          share_proto

          -

          Yes

          -

          String

          -

          Specifies the protocol of the file system. The valid value is NFS. Network File System (NFS) is a distributed file system protocol that allows different computers and operating systems to share data over a network.

          -

          share_type

          -

          Yes

          -

          String

          -

          Specifies the file system type. The valid values are STANDARD and PERFORMANCE

          -

          STANDARD: Standard file system, corresponding to the media of SAS disks.

          -

          PERFORMANCE: Performance file system, corresponding to the media of SSD disks.

          -

          size

          -

          Yes

          -

          Int

          -

          For a common file system, the value of capacity ranges from 500 to 32768 (in the unit of GB).

          -

          For an enhanced file system where the expand_type field is specified for metadata, the capacity ranges from 10240 to 327680. For details about metadata, see Description of the metadata field.

          -

          availability_zone

          -

          Yes

          -

          String

          -

          Specifies the code of the AZ where the file system is located. For details about the code, see Regions and Endpoints.

          -

          vpc_id

          -

          Yes

          -

          String

          -

          Specifies the VPC ID of a tenant in a region. You can obtain the VPC ID from the console or by following the instructions provided in "Querying VPCs" in Virtual Private Cloud API Reference.

          -

          subnet_id

          -

          Yes

          -

          String

          -

          Specifies the network ID of the subnet of a tenant in a VPC. You can obtain the network ID from the VPC console or by following the instructions provided in "Querying Subnets" in Virtual Private Cloud API Reference.

          -

          security_group_id

          -

          Yes

          -

          String

          -

          Specifies the security group ID of a tenant in a region. You can obtain the security group ID from the console or by following the instructions provided in "Querying Security Groups" in Virtual Private Cloud API Reference.

          -

          backup_id

          -

          No

          -

          String

          -

          Specifies the backup ID. This parameter is mandatory when you create a file system from a backup. This is not supported by the current version.

          -

          description

          -

          No

          -

          String

          -

          Specifies the file system description. The length is 0-255 characters. This is not supported by the current version.

          -

          metadata

          -

          No

          -

          Object

          -

          Specifies the metadata information used to create the file system. The value consists of one or more key and value pairs organized as a dictionary of strings. For details about the parameters, see the description of field metadata.

          -
          -
          -
        • Description of the metadata field -
          - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          expand_type

          -

          No

          -

          String

          -

          Specifies the extension type. The current valid value is bandwidth, indicating that an enhanced file system is created. For details about the differences between different types of SFS Turbo file systems, see "Recommended Configurations".

          -

          crypt_key_id

          -

          No

          -

          String

          -

          Specifies the ID of a KMS professional key when an encrypted file system is created. The key ID can be obtained from the console of Data Encryption Workshop (DEW) or by referring to section "Querying the Information About a CMK" in the Data Encryption Workshop API Reference.

          -
          -
          -
        -
        • The regions mentioned above are the same region. Currently, cross-region configuration is not supported.
        • SFS Turbo will create two private IP addresses and one virtual IP address under the subnet you specified.
        • To ensure normal use, SFS Turbo will enable the inbound rules for ports 111, 445, 2049, 2051, 2052, and 20048 in the security group you specified.
        • An ECS cannot access file systems on VPCs other than the one where the ECS resides. Make sure that you enter the ID of the VPC when creating a file system to be the VPC where the ECS resides for mounting the file system.
        -
        -
        • Example request
          {
          -  "share": {
          -    "name": "sfs-turbo-test", 
          -    "share_proto": "NFS",
          -    "share_type": "STANDARD",
          -    "size": 100,
          -    "availability_zone": "az1", 
          -    "vpc_id": "d651ea2b-2b20-4c6d-8bbf-2adcec18dac9", 
          -    "subnet_id": "b8884abe-f47b-4917-9f6c-f64825c365db",
          -    "security_group_id": "8c4ebbd0-6edf-4aae-8353-81ce6d06e1f4", 
          -    "metadata": {
          -      "crypt_key_id": "015bf4b8-73cc-4235-8595-46931de7dfd0" 
          -    }
          -  }
          -}
          -
        -
        -

        Response

        • Parameter description -
          - - - - - - - - - - - - - - - - - -

          Parameter

          -

          Type

          -

          Description

          -

          id

          -

          String

          -

          Specifies the ID of the SFS Turbo file system.

          -

          name

          -

          String

          -

          Specifies the name of the SFS Turbo file system.

          -

          status

          -

          String

          -

          Specifies the status of the SFS Turbo file system. For details, see SFS Turbo File System Statuses.

          -
          -
          -
        -
        • Example response
          {
          -    "id": "708c017c-54b5-429a-a098-7692e23fa518",
          -    "name": "sfs-turbo-test",
          -    "status": "100"
          -}
          -
        -
        -

        Status Codes

        • Normal
        -

        202

        -
        • Abnormal
        -

        For details, see Status Codes.

        -
        -
        -
        - -
        - diff --git a/docs/sfs/api-ref/sfs_02_0052.html b/docs/sfs/api-ref/sfs_02_0052.html deleted file mode 100644 index 14be7bac..00000000 --- a/docs/sfs/api-ref/sfs_02_0052.html +++ /dev/null @@ -1,56 +0,0 @@ - - -

        Deleting a File System

        -

        Function

        This API is used to delete an SFS Turbo file system.

        -
        -

        URI

        • URI format

          DELETE /v1/{project_id}/sfs-turbo/shares/{share_id}

          -
        • Parameter description -
          - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          project_id

          -

          Yes

          -

          String

          -

          Specifies the project ID. For details about how to obtain the project ID, see API Usage Guidelines.

          -

          share_id

          -

          Yes

          -

          String

          -

          Specifies the ID of the SFS Turbo file system.

          -
          -
          -
        -
        -

        Request

        • None
        -
        -

        Response

        • None
        -
        -

        Status Codes

        • Normal
        -

        202

        -
        • Abnormal
        -

        For details, see Status Codes.

        -
        -
        -
        - -
        - diff --git a/docs/sfs/api-ref/sfs_02_0053.html b/docs/sfs/api-ref/sfs_02_0053.html deleted file mode 100644 index b25b2950..00000000 --- a/docs/sfs/api-ref/sfs_02_0053.html +++ /dev/null @@ -1,321 +0,0 @@ - - -

        Querying Details About All File Systems

        -

        Function

        This API is used to query details about all SFS Turbo file systems.

        -
        -

        URI

        • URI format

          GET /v1/{project_id}/sfs-turbo/shares/detail?limit={limit}&offset={offset}

          -
        • Parameter description -
          - - - - - - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          project_id

          -

          Yes

          -

          String

          -

          Specifies the project ID. For details about how to obtain the project ID, see API Usage Guidelines.

          -

          limit

          -

          No (query parameter)

          -

          Int

          -

          Specifies the number of returned file systems.

          -

          This parameter takes effect when both limit and offset are used.

          -

          offset

          -

          No (query parameter)

          -

          Int

          -

          Specifies the offset of the number of queried file systems.

          -

          This parameter takes effect when both limit and offset are used.

          -
          -
          -
        -
        -

        Request

        • Parameter description

          None

          -
        • Example request

          None

          -
        -
        -

        Response

        • Parameter description -
          - - - - - - - - - - - - - -

          Parameter

          -

          Type

          -

          Description

          -

          shares

          -

          Array of objects

          -

          Specifies the list of SFS Turbo file systems. For details, see the description of the share field.

          -

          count

          -

          Int

          -

          Specifies the number of SFS Turbo file systems.

          -
          -
          -
        • Description of the share field -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

          Parameter

          -

          Type

          -

          Description

          -

          id

          -

          String

          -

          Specifies the ID of the SFS Turbo file system.

          -

          name

          -

          String

          -

          Specifies the name of the SFS Turbo file system.

          -

          status

          -

          String

          -

          Specifies the status of the SFS Turbo file system. For details, see SFS Turbo File System Statuses.

          -

          sub_status

          -

          String

          -

          Specifies the sub-status of the SFS Turbo file system. For details, see SFS Turbo File System Substatuses.

          -

          version

          -

          String

          -

          Specifies the version ID of the SFS Turbo file system.

          -

          created_at

          -

          String

          -

          Specifies the creation time. UTC time, for example: 2018-11-19T04:02:03

          -

          export_location

          -

          String

          -

          Specifies the mount point of the SFS Turbo file system.

          -

          action_progress

          -

          Object

          -

          Specifies the creation progress of the SFS Turbo file system. For details, see Description of field action_progress.

          -

          share_type

          -

          String

          -

          Specifies the type of the SFS Turbo file system. The value can be STANDARD or PERFORMANCE.

          -

          region

          -

          String

          -

          Specifies the region of the SFS Turbo file system.

          -

          availability_zone

          -

          String

          -

          Specifies the code of the AZ where the SFS Turbo file system is located.

          -

          az_name

          -

          String

          -

          Specifies the name of the AZ where the SFS Turbo file system is located.

          -

          vpc_id

          -

          String

          -

          Specifies the VPC ID specified by the user.

          -

          subnet_id

          -

          String

          -

          Specifies the network ID of the subnet specified by the user.

          -

          security_group_id

          -

          String

          -

          Specifies the ID of a security group specified by the user.

          -

          crypt_key_id

          -

          String

          -

          Specifies the ID of the encryption key specified by the user. This parameter is not returned for non-encrypted disks.

          -

          size

          -

          String

          -

          Specifies the total capacity of the SFS Turbo file system in the unit of GB.

          -

          pay_model

          -

          String

          -

          Billing mode of the SFS Turbo file system.

          -

          avail_capacity

          -

          String

          -

          Specifies the available capacity of the SFS Turbo file system in the unit of GB.

          -

          share_proto

          -

          String

          -

          Specifies the protocol type of the SFS Turbo file system. The current value is NFS.

          -

          expand_type

          -

          String

          -

          For an enhanced file system, bandwidth is returned for this field. Otherwise, bandwidth is not returned.

          -
          -
          -
        • Description of field action_progress
        - -
        - - - - - - - - - -

        Parameter

        -

        Type

        -

        Description

        -

        CREATING

        -

        String

        -

        Specifies the file system creation progress.

        -
        -
        -
        • Example response
          {
          -    "shares": [
          -        {
          -            "id": "8fba8253-c914-439d-ae8b-d5c89d0bf5e8",
          -            "name": "sfs-turbo-8468",
          -            "status": "200",
          -            "version": "1.0.0",
          -            "region": "north-1",
          -            "created_at": "2018-11-19T04:02:03",
          -            "export_location": "192.168.0.90:/",
          -            "action_progress": {},
          -            "share_type": "STANDARD",
          -            "sub_status": "230",
          -            "availability_zone": "az1.dc1",
          -            "az_name": "az1",
          -            "vpc_id": "b24e39e1-bc0c-475b-ae0c-aef9cf240af3",
          -            "subnet_id": "86fc01ea-8ec8-409d-ba7a-e0ea16d4fd97",
          -            "security_group_id": "50586458-aec9-442c-bb13-e08ddc6f1b7a",
          -            "size": "500.00",
          -            "pay_model": "0",
          -            "avail_capacity": "500.00",
          -            "share_proto": "NFS"
          -        },
          -        {
          -            "id": "65f2d30b-7b4e-4786-9608-4324faef6646",
          -            "name": "sfs-turbo-df12",
          -            "status": "200",
          -            "version": "1.0.0",
          -            "actions": [],
          -            "region": "north-1",
          -            "created_at": "2018-11-15T02:32:10",
          -            "export_location": "192.168.0.197:/",
          -            "action_progress": {},
          -            "share_type": "STANDARD",
          -            "availability_zone": "az1.dc1",
          -            "az_name": "az1",
          -            "vpc_id": "b24e39e1-bc0c-475b-ae0c-aef9cf240af3",
          -            "subnet_id": "86fc01ea-8ec8-409d-ba7a-e0ea16d4fd97",
          -            "security_group_id": "50586458-aec9-442c-bb13-e08ddc6f1b7a",
          -            "size": "500.00",
          -            "pay_model": "0",
          -            "avail_capacity": "500.00",
          -            "share_proto": "NFS"
          -        }
          -    ]
          -    "count": 2
          -}
          -
        -
        -

        Status Codes

        • Normal
        -

        200

        -
        • Abnormal
        -

        For details, see Status Codes.

        -
        -
        -
        - -
        - diff --git a/docs/sfs/api-ref/sfs_02_0054.html b/docs/sfs/api-ref/sfs_02_0054.html deleted file mode 100644 index b9b78f9f..00000000 --- a/docs/sfs/api-ref/sfs_02_0054.html +++ /dev/null @@ -1,258 +0,0 @@ - - -

        Querying Details About a Single File System

        -

        Function

        This API is used to query details about an SFS Turbo file system.

        -
        -

        URI

        • URI format

          GET /v1/{project_id}/sfs-turbo/shares/{share_id}

          -
        • Parameter description -
          - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          project_id

          -

          Yes

          -

          String

          -

          Specifies the project ID. For details about how to obtain the project ID, see API Usage Guidelines.

          -

          share_id

          -

          Yes

          -

          String

          -

          Specifies the ID of the SFS Turbo file system.

          -
          -
          -
        -
        -

        Request

        • Parameter description

          None

          -
        • Example request

          None

          -
        -
        -

        Response

        • Parameter description -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

          Parameter

          -

          Type

          -

          Description

          -

          id

          -

          String

          -

          Specifies the ID of the SFS Turbo file system.

          -

          name

          -

          String

          -

          Specifies the name of the SFS Turbo file system.

          -

          status

          -

          String

          -

          Specifies the status of the SFS Turbo file system. For details, see SFS Turbo File System Statuses.

          -

          sub_status

          -

          String

          -

          Specifies the sub-status of the SFS Turbo file system. For details, see SFS Turbo File System Substatuses.

          -

          version

          -

          String

          -

          Specifies the version ID of the SFS Turbo file system.

          -

          created_at

          -

          String

          -

          Specifies the creation time. UTC time, for example: 2018-11-19T04:02:03

          -

          export_location

          -

          String

          -

          Specifies the mount point of the SFS Turbo file system.

          -

          action_progress

          -

          Object

          -

          Specifies the creation progress of the SFS Turbo file system. For details, see Description of field action_progress.

          -

          share_type

          -

          String

          -

          Specifies the type of the SFS Turbo file system. The value can be STANDARD or PERFORMANCE.

          -

          region

          -

          String

          -

          Specifies the region of the SFS Turbo file system.

          -

          availability_zone

          -

          String

          -

          Specifies the code of the AZ where the SFS Turbo file system is located.

          -

          az_name

          -

          String

          -

          Specifies the name of the AZ where the SFS Turbo file system is located.

          -

          vpc_id

          -

          String

          -

          Specifies the VPC ID specified by the user.

          -

          subnet_id

          -

          String

          -

          Specifies the network ID of the subnet specified by the user.

          -

          security_group_id

          -

          String

          -

          Specifies the ID of a security group specified by the user.

          -

          crypt_key_id

          -

          String

          -

          Specifies the ID of the encryption key specified by the user. This parameter is not returned for non-encrypted disks.

          -

          size

          -

          String

          -

          Specifies the total capacity of the SFS Turbo file system in the unit of GB.

          -

          avail_capacity

          -

          String

          -

          Specifies the available capacity of the SFS Turbo file system in the unit of GB.

          -

          pay_model

          -

          String

          -

          Billing mode of the SFS Turbo file system.

          -

          share_proto

          -

          String

          -

          Specifies the protocol type of the SFS Turbo file system. The current value is NFS.

          -

          expand_type

          -

          String

          -

          For an enhanced file system, bandwidth is returned for this field. Otherwise, bandwidth is not returned.

          -
          -
          -
        • Description of field action_progress -
          - - - - - - - - - -

          Parameter

          -

          Type

          -

          Description

          -

          CREATING

          -

          String

          -

          Specifies the file system creation progress.

          -
          -
          -
        -
        • Example response
          {
          -    "id": "8fba8253-c914-439d-ae8b-d5c89d0bf5e8",
          -    "name": "sfs-turbo-8468",
          -    "status": "200",
          -    "version": "1.0.0",
          -    "region": "north-1",
          -    "created_at": "2018-11-19T04:02:03",
          -    "export_location": "192.168.0.90:/",
          -    "action_progress": {},
          -    "share_type": "STANDARD",
          -    "sub_status": "330",
          -    "availability_zone": "az1.dc1",
          -    "az_name": "az1",
          -    "vpc_id": "b24e39e1-bc0c-475b-ae0c-aef9cf240af3",
          -    "subnet_id": "86fc01ea-8ec8-409d-ba7a-e0ea16d4fd97",
          -    "security_group_id": "50586458-aec9-442c-bb13-e08ddc6f1b7a",
          -    "size": "500.00",
          -    "avail_capacity": "500.00",
          -   
          -    "share_proto": "NFS"
          -}
          -
        -
        -

        Status Codes

        • Normal
        -

        200

        -
        • Abnormal
        -

        For details, see Status Codes.

        -
        -
        -
        - -
        - diff --git a/docs/sfs/api-ref/sfs_02_0055.html b/docs/sfs/api-ref/sfs_02_0055.html deleted file mode 100644 index 98496a9a..00000000 --- a/docs/sfs/api-ref/sfs_02_0055.html +++ /dev/null @@ -1,15 +0,0 @@ - - -

        Storage Capacity Management

        -
        - - diff --git a/docs/sfs/api-ref/sfs_02_0056.html b/docs/sfs/api-ref/sfs_02_0056.html deleted file mode 100644 index e8273969..00000000 --- a/docs/sfs/api-ref/sfs_02_0056.html +++ /dev/null @@ -1,142 +0,0 @@ - - -

        Expanding the Capacity of a File System

        -

        Function

        This API is used to expand the capacity of an SFS Turbo file system. Capacity expansion is an asynchronous operation. You can check whether the expansion is successful by checking field sub_status returned by Querying Details About a Single File System. If the value of the sub-status is 221, the expansion is successful.

        -
        -

        URI

        • URI format

          POST /v1/{project_id}/sfs-turbo/shares/{share_id}/action

          -
        • Parameter description -
          - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          project_id

          -

          Yes

          -

          String

          -

          Specifies the project ID. For details about how to obtain the project ID, see API Usage Guidelines.

          -

          share_id

          -

          Yes

          -

          String

          -

          Specifies the ID of the SFS Turbo file system.

          -
          -
          -
        -
        -

        Request

        • Parameter description -
          - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          extend

          -

          Yes

          -

          Object

          -

          Specifies the extend object. For details, see the parameter in the extend field.

          -
          -
          -
        • Parameter in the extend field -
          - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          new_size

          -

          Yes

          -

          Int

          -

          Specifies the new capacity (GB) of the shared file system. The capacity expansion step is greater than or equal to 100 GB.

          -

          For a common file system, the value of capacity ranges from 500 to 32768.

          -

          For an enhanced file system, the value of capacity ranges from 10240 to 327680.

          -
          -
          -
        -
        • Example request
          {
          -    "extend": { 
          -       "new_size": 500    
          -    }
          -}
          -
        -
        -

        Response

        • Parameter description -
          - - - - - - - - - - - - - -

          Parameter

          -

          Type

          -

          Description

          -

          id

          -

          String

          -

          Specifies the ID of the SFS Turbo file system.

          -

          name

          -

          String

          -

          Specifies the name of the SFS Turbo file system.

          -
          -
          -
        -
        • Example response
          {
          -    "id": "67d4bd5e-7b2f-4c24-9a0b-c0038940c6f8",
          -    "name": "sfs-turbo-cts"
          -}
          -

          -
        -
        -

        Status Codes

        • Normal
        -

        202

        -
        • Abnormal
        -

        For details, see Status Codes.

        -
        -
        -
        - -
        - diff --git a/docs/sfs/api-ref/sfs_02_0074.html b/docs/sfs/api-ref/sfs_02_0074.html deleted file mode 100644 index 7503dfff..00000000 --- a/docs/sfs/api-ref/sfs_02_0074.html +++ /dev/null @@ -1,26 +0,0 @@ - - -

        Tag Management

        -

        -
        - - diff --git a/docs/sfs/api-ref/sfs_02_0075.html b/docs/sfs/api-ref/sfs_02_0075.html deleted file mode 100644 index 977c90d3..00000000 --- a/docs/sfs/api-ref/sfs_02_0075.html +++ /dev/null @@ -1,156 +0,0 @@ - - -

        Adding a Tag to a File System

        -

        Function

        This API is used to add a tag to an SFS Turbo file system.

        -

        A shared file system can have a maximum of 20 tags.

        -

        The keys of multiple tags added to a shared file system must be unique.

        -

        This API is idempotent. If the key to be added has already been added to the shared file system, the tag is updated.

        -
        -

        URI

        • POST /v1/{project_id}/sfs-turbo/{share_id}/tags
        • Parameter description -
          - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          project_id

          -

          Yes

          -

          String

          -

          Specifies the project ID of the operator.

          -

          share_id

          -

          Yes

          -

          String

          -

          Specifies the ID of the shared file system.

          -
          -
          -
        -
        -

        Request

        • Parameter description -
          - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          tag

          -

          Yes

          -

          Object

          -

          Specifies the tag. For details, see Description of field resource_tag.

          -
          -
          -
        -
        • Description of field resource_tag -
          - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          key

          -

          Yes

          -

          String

          -

          Specifies the tag key. The value can contain a maximum of 36 characters. This parameter cannot be left empty. It cannot contain the following characters: ASCII (0-31), asterisks (*), left angle brackets (<), right angle brackets (>), backslashes (\), equal signs (=), commas (,), vertical bars (|), and slashes (/). It can contain only letters, digits, hyphens (-), and underscores (_).

          -

          value

          -

          Yes

          -

          String

          -

          Specifies the tag value. The value contains a maximum of 43 characters and can be an empty string. It cannot contain ASCII (0-31) or the following characters: =*<>\,|/ It can contain only letters, digits, hyphens (-), and underscores (_).

          -
          -
          -
        -
        • Example request
          {
          -    "tag":{
          -        "key":"key1",
          -        "value":"value1"
          -    }
          -}
          -
        -
        -

        Response

        • Parameter description

          None

          -
        • Example response

          None

          -
        -
        -

        Status Codes

        • Normal

          204

          -
        • Abnormal -
          - - - - - - - - - - - - - - - - - - - -

          Status Code

          -

          Description

          -

          400 Bad Request

          -

          Invalid value.

          -

          401 Unauthorized

          -

          Authentication failed.

          -

          403 Forbidden

          -

          Access to the requested page is forbidden.

          -

          404 Not Found

          -

          The requested resource was not found.

          -

          500 Internal Server Error

          -

          The request is not completed because of a service error.

          -
          -
          -
        -
        -
        -
        - -
        - diff --git a/docs/sfs/api-ref/sfs_02_0076.html b/docs/sfs/api-ref/sfs_02_0076.html deleted file mode 100644 index 4e158471..00000000 --- a/docs/sfs/api-ref/sfs_02_0076.html +++ /dev/null @@ -1,105 +0,0 @@ - - -

        Deleting a Tag from a File System

        -

        Function

        This API is used to delete a tag from an SFS Turbo file system.

        -

        If the key to be deleted does not exist in the shared file system, error 404 is returned after API calling.

        -
        -
        -

        URI

        • DELETE /v1/{project_id}/sfs-turbo/{share_id}/tags/{key}
        • Parameter description -
          - - - - - - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          project_id

          -

          Yes

          -

          String

          -

          Specifies the project ID of the operator.

          -

          share_id

          -

          Yes

          -

          String

          -

          Specifies the ID of the shared file system.

          -

          key

          -

          Yes

          -

          String

          -

          Specifies the tag key. The value can contain a maximum of 36 characters. This parameter cannot be left empty. It cannot contain the following characters: ASCII (0-31), asterisks (*), left angle brackets (<), right angle brackets (>), backslashes (\), equal signs (=), commas (,), vertical bars (|), and slashes (/). It can contain only letters, digits, hyphens (-), and underscores (_).

          -
          NOTE:

          When calling this API to delete a tag, if the tag key contains special characters that are not directly resolved by the URL, the key needs to be escaped.

          -
          -
          -
          -
        -
        -

        Request

        • Parameter description

          None

          -
        • Example request

          None

          -
        -
        -

        Response

        • Parameter description

          None

          -
        • Example response

          None

          -
        -
        -

        Status Codes

        • Normal

          204

          -
        • Abnormal -
          - - - - - - - - - - - - - - - - - - - -

          Status Code

          -

          Description

          -

          400 Bad Request

          -

          Invalid value.

          -

          401 Unauthorized

          -

          Authentication failed.

          -

          403 Forbidden

          -

          Access to the requested page is forbidden.

          -

          404 Not Found

          -

          The requested resource was not found.

          -

          500 Internal Server Error

          -

          The request is not completed because of a service error.

          -
          -
          -
        -
        -
        -
        - -
        - diff --git a/docs/sfs/api-ref/sfs_02_0077.html b/docs/sfs/api-ref/sfs_02_0077.html deleted file mode 100644 index 5e468ff2..00000000 --- a/docs/sfs/api-ref/sfs_02_0077.html +++ /dev/null @@ -1,160 +0,0 @@ - - -

        Querying Tags of a File System

        -

        Function

        This API is used to query all tags of an SFS Turbo file system.

        -
        -

        URI

        • GET /v1/{project_id}/sfs-turbo/{share_id}/tags
        • Parameter description -
          - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          project_id

          -

          Yes

          -

          String

          -

          Specifies the project ID of the operator.

          -

          share_id

          -

          Yes

          -

          String

          -

          Specifies the ID of the shared file system.

          -
          -
          -
        -
        -

        Request

        • Parameter description

          None

          -
        • Example request

          None

          -
        -
        -

        Response

        • Parameter description -
          - - - - - - - - - - - - - -

          Parameter

          -

          Type

          -

          Description

          -

          tags

          -

          List<resource_tag>

          -

          Specifies the tag list. For details, see Description of field resource_tag.

          -

          sys_tags

          -

          List<resource_tag>

          -

          Only the op_service permission can obtain this field.

          -
          1. Currently, only one resource_tag structure key is used, _sys_enterprise_project_id.
          2. Currently, key contains only one value. 0 indicates the default enterprise project.
          -

          This field cannot be returned in non-op_service scenarios.

          -

          For details, see Description of field resource_tag.

          -
          -
          -
        -
        • Description of field resource_tag -
          - - - - - - - - - - - - - -

          Parameter

          -

          Type

          -

          Description

          -

          key

          -

          String

          -

          Specifies the tag key.

          -

          value

          -

          String

          -

          Specifies the tag value.

          -
          -
          -
        -

        -
        • Example response
          { 
          -        "tags": [ 
          -         { 
          -             "key": "key1", 
          -             "value": "value1" 
          -         }, 
          -         { 
          -             "key": "key2", 
          -             "value": "" 
          -         } 
          -     ] 
          - }
          -
        -
        -

        Status Codes

        • Normal

          200

          -
        • Abnormal -
          - - - - - - - - - - - - - - - - - - - -

          Status Code

          -

          Description

          -

          400 Bad Request

          -

          Invalid value.

          -

          401 Unauthorized

          -

          Authentication failed.

          -

          403 Forbidden

          -

          Access to the requested page is forbidden.

          -

          404 Not Found

          -

          The requested resource was not found.

          -

          500 Internal Server Error

          -

          The request is not completed because of a service error.

          -
          -
          -
        -
        -
        -
        - -
        - diff --git a/docs/sfs/api-ref/sfs_02_0078.html b/docs/sfs/api-ref/sfs_02_0078.html deleted file mode 100644 index 8bdd2ed7..00000000 --- a/docs/sfs/api-ref/sfs_02_0078.html +++ /dev/null @@ -1,188 +0,0 @@ - - -

        Batch Adding Tags to a File System

        -

        Function

        This API is used to batch add tags to an SFS Turbo file system.

        -

        A shared file system can have a maximum of 20 tags.

        -

        The keys of multiple tags added to a shared file system must be unique.

        -

        This API is idempotent. If the key to be added has already been added to the shared file system, the tag is updated.

        -
        -

        URI

        • POST /v1/{project_id}/sfs-turbo/{share_id}/tags/action
        • Parameter description -
          - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          project_id

          -

          Yes

          -

          String

          -

          Specifies the project ID of the operator.

          -

          share_id

          -

          Yes

          -

          String

          -

          Specifies the ID of the shared file system.

          -
          -
          -
        -

        -
        -

        Request

        • Parameter description -
          - - - - - - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          action

          -

          Yes

          -

          String

          -

          Specifies the operation identifier. Possible values are create and delete. Use create to batch add tags to a specified shared file system.

          -

          tags

          -

          No

          -

          list<resource_tag>

          -

          Specifies the tag list.

          -

          This parameter is mandatory when the tenant permission is used. For the op_service permission, choose either this field or sys_tags. For details, see Description of field resource_tag.

          -

          sys_tags

          -

          No

          -

          List<resource_tag>

          -

          Specifies the system tag list.

          -

          This field is available only to the op_service permission. Choose either this field or tags.

          -

          Only one resource_tag structure key, _sys_enterprise_project_id, is used in TMS calls.

          -

          The value is ID or 0. Value 0 indicates the default enterprise project.

          -

          For details, see Description of field resource_tag.

          -
          -
          -
        -

        -
        • Description of field resource_tag -
          - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          key

          -

          Yes

          -

          String

          -

          Specifies the tag key. The value can contain a maximum of 36 characters. This parameter cannot be left empty. It cannot contain the following characters: ASCII (0-31), asterisks (*), left angle brackets (<), right angle brackets (>), backslashes (\), equal signs (=), commas (,), vertical bars (|), and slashes (/). It can contain only letters, digits, hyphens (-), and underscores (_).

          -

          value

          -

          Yes

          -

          String

          -

          Specifies the tag value. The value contains a maximum of 43 characters and can be an empty string. It cannot contain ASCII (0-31) or the following characters: =*<>\,|/ It can contain only letters, digits, hyphens (-), and underscores (_).

          -
          -
          -
        -
        • Example request
          { 
          -     "action": "create", 
          -     "tags": [ 
          -         { 
          -             "key": "key1", 
          -             "value": "value1" 
          -         }, 
          -         { 
          -             "key": "key2", 
          -             "value": "value2" 
          -         } 
          -     ] 
          - }
          -
        -
        -

        Response

        • Parameter description

          None

          -
        • Example response

          None

          -
        -
        -

        Status Codes

        • Normal

          204

          -
        • Abnormal -
          - - - - - - - - - - - - - - - - - - - -

          Status Code

          -

          Description

          -

          400 Bad Request

          -

          Invalid value.

          -

          401 Unauthorized

          -

          Authentication failed.

          -

          403 Forbidden

          -

          Access to the requested page is forbidden.

          -

          404 Not Found

          -

          The requested resource was not found.

          -

          500 Internal Server Error

          -

          The request is not completed because of a service error.

          -
          -
          -
        -
        -
        -
        - -
        - diff --git a/docs/sfs/api-ref/sfs_02_0080.html b/docs/sfs/api-ref/sfs_02_0080.html index 2c6853ba..63f82dba 100644 --- a/docs/sfs/api-ref/sfs_02_0080.html +++ b/docs/sfs/api-ref/sfs_02_0080.html @@ -1,14 +1,14 @@

        Introduction

        -

        This section describes fine-grained permissions management for your SFS. If your cloud account does not need individual IAM users, then you may skip over this section.

        +

        This section describes fine-grained permissions management for your SFS resources. If your cloud account does not need individual IAM users, then you may skip over this section.

        By default, new IAM users do not have permissions assigned. You need to add a user to one or more groups, and attach permissions policies or roles to these groups. Users inherit permissions from the groups to which they are added and can perform specified operations on cloud services based on the permissions.

        You can grant users permissions by using roles and policies. Roles are a type of coarse-grained authorization mechanism that defines permissions related to user responsibilities. Policies define API-based permissions for operations on specific resources under certain conditions, allowing for more fine-grained, secure access control of cloud resources.

        • Policy-based authorization is useful if you want to allow or deny the access to an API.
        -

        An account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions. The permissions required for calling an API are determined by the actions supported by the API. Only users who have been granted permissions allowing the actions can call the API successfully. For example, if an IAM user wants to query ECSs using an API, the user must have been granted permissions that allow the ecs:servers:list action.

        +

        Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions. The permissions required for calling an API are determined by the actions supported by the API. Only users who have been granted permissions allowing the actions can call the API successfully. For example, if an IAM user wants to query ECSs using an API, the user must have been granted permissions that allow the ecs:servers:list action.

        Supported Actions

        SFS provides system-defined policies that can be directly used in IAM. You can also create custom policies and use them to supplement system-defined policies, implementing more refined access control. Operations supported by policies are specific to APIs. The following are common concepts related to policies:

        -
        • Permissions: Statements in a policy that allow or deny certain operations.
        • APIs: REST APIs that can be called by a user who has been granted specific permissions.
        • Actions: Specific operations that are allowed or denied.
        • Related actions: Actions on which a specific action depends to take effect. When assigning permissions for the action to a user, you also need to assign permissions for the related actions.
        • IAM Project: Authorization scope of a custom policy. A custom policy can be applied to IAM projects and takes effect for the user groups in IAM projects.

          The check mark (√) and cross symbol (x) indicate that an action takes effect or does not take effect for the corresponding type of projects.

          +
          • Permissions: Statements in a policy that allow or deny certain operations.
          • APIs: REST APIs that can be called by a user who has been granted specific permissions.
          • Actions: Specific operations that are allowed or denied.
          • Related actions: Actions on which a specific action depends to take effect. When assigning permissions for the action to a user, you also need to assign permissions for the related actions.
          • IAM Project: Authorization scope of a custom policy. A custom policy can be applied to IAM projects and takes effect for the user groups in IAM projects.

            The check mark (√) and cross symbol (x) indicate that an action takes effect or does not take effect for the corresponding type of projects.

          SFS supports the following actions that can be defined in custom policies:

          diff --git a/docs/sfs/api-ref/sfs_02_0083.html b/docs/sfs/api-ref/sfs_02_0083.html index 5d69b991..592c33f7 100644 --- a/docs/sfs/api-ref/sfs_02_0083.html +++ b/docs/sfs/api-ref/sfs_02_0083.html @@ -10,8 +10,8 @@

          Dependent Permission

          -

          IAM

          -

          Project

          +

          IAM Project

          +

          (Project)

          @@ -74,8 +74,8 @@

          Action

          -

          IAM

          -

          Project

          +

          IAM Project

          +

          (Project)

          @@ -101,8 +101,8 @@

          Dependent Permission

          -

          IAM

          -

          Project

          +

          IAM Project

          +

          (Project)

          diff --git a/docs/sfs/api-ref/sfs_02_0088.html b/docs/sfs/api-ref/sfs_02_0088.html index 2fa12087..28c097f8 100644 --- a/docs/sfs/api-ref/sfs_02_0088.html +++ b/docs/sfs/api-ref/sfs_02_0088.html @@ -12,6 +12,10 @@
        • + +
        diff --git a/docs/sfs/api-ref/sfs_02_0090.html b/docs/sfs/api-ref/sfs_02_0090.html new file mode 100644 index 00000000..53d628fe --- /dev/null +++ b/docs/sfs/api-ref/sfs_02_0090.html @@ -0,0 +1,53 @@ + + +

        Obtaining a Project ID

        +

        Scenarios

        A project ID is required for some URLs when an API is called. Therefore, you need to obtain a project ID in advance. Two methods are available:

        + +
        +

        Obtain the Project ID by Calling an API

        You can obtain the project ID by calling the IAM API used to query project information based on the specified criteria.

        +

        The API used to obtain a project ID is GET https://{Endpoint}/v3/projects. {Endpoint} is the IAM endpoint and can be obtained from Regions and Endpoints.

        +

        The following is an example response. The value of id is the project ID.

        +
        {
        +    "projects": [
        +        {
        +            "domain_id": "65ewtrgaggshhk1223245sghjlse684b",
        +            "is_domain": false,
        +            "parent_id": "65ewtrgaggshhk1223245sghjlse684b",
        +            "name": "project_name",
        +            "description": "",
        +            "links": {
        +                "next": null,
        +                "previous": null,
        +                "self": "https://www.example.com/v3/projects/a4adasfjljaaaakla12334jklga9sasfg"
        +            },
        +            "id": "a4adasfjljaaaakla12334jklga9sasfg",
        +            "enabled": true
        +        }
        +    ],
        +    "links": {
        +        "next": null,
        +        "previous": null,
        +        "self": "https://www.example.com/v3/projects"
        +    }
        +}
        +
        +

        Obtain a Project ID from the Console

        A project ID needs to be specified in the URIs of some APIs. Therefore, you need to obtain the project ID before calling APIs. The following procedure describes how to obtain a project ID:
        1. Log in to the management console.
        2. Click the username and select My Credentials from the drop-down list.

          On the My Credentials page, view project IDs in the project list.

          +
          Figure 1 Viewing project IDs
          +

          In multi-project scenarios, expand the region, and obtain your sub-project ID from the Project ID column.

          +
        +
        +
        +
        +
        + +
        + + + \ No newline at end of file diff --git a/docs/sfs/api-ref/sfs_02_0092.html b/docs/sfs/api-ref/sfs_02_0092.html index aa8d2e13..6d92242f 100644 --- a/docs/sfs/api-ref/sfs_02_0092.html +++ b/docs/sfs/api-ref/sfs_02_0092.html @@ -8,7 +8,13 @@ -

        2023-08-09

        +

        2024-08-02

        + +

        Updated the following content:

        + + + +

        2023-08-09

        Updated the following content:

        Modified the maximum number of tags that can be added to a file system in SFS Turbo tag APIs.

        @@ -17,7 +23,7 @@

        2023-07-28

        Updated the following content:

        -

        Added section Permissions Management.

        +

        Added permissions management APIs.

        2023-02-20

        diff --git a/docs/sfs/api-ref/sfs_02_0094.html b/docs/sfs/api-ref/sfs_02_0094.html deleted file mode 100644 index 09e9a75c..00000000 --- a/docs/sfs/api-ref/sfs_02_0094.html +++ /dev/null @@ -1,137 +0,0 @@ - - -

        Querying Tags of All File Systems of a Tenant

        -

        Function

        This API is used to query the tags of all file systems of a tenant.

        -
        -

        URI

        • GET /v1/{project_id}/sfs-turbo/tags
        • Parameter description -
          - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          project_id

          -

          Yes

          -

          String

          -

          Specifies the project ID of the operator.

          -
          -
          -
        -
        -

        Request

        • Parameter description

          None

          -
        • Example request

          None

          -
        -
        -

        Response

        • Parameter description -
          - - - - - - - - - -

          Parameter

          -

          Type

          -

          Description

          -

          tags

          -

          Array of tags

          -

          Specifies the tag list.

          -

          For details, see Description of field tag.

          -
          -
          -
        • Description of the tag field -
          - - - - - - - - - - - - - -

          Parameter

          -

          Type

          -

          Description

          -

          key

          -

          String

          -

          Specifies the key of the tag.

          -

          values

          -

          Array of strings

          -

          Lists the values of the tag. The value is a list of tag values of all shared file systems of a tenant. Only one of the same tag values is displayed.

          -
          -
          -
        -
        • Example response
          {
          -  "tags" : [ {
          -    "key" : "key1",
          -    "values" : [ "value1", "" ]
          -  }, {
          -    "key" : "key2",
          -    "values" : [ "value1", "value2" ]
          -  } ]
          -}
          -
        -
        -

        Status Codes

        • Normal

          200

          -
        • Abnormal -
          - - - - - - - - - - - - - - - - - - - -

          Status Code

          -

          Description

          -

          400 Bad Request

          -

          Invalid value.

          -

          401 Unauthorized

          -

          Authentication failed.

          -

          403 Forbidden

          -

          Access to the requested page is forbidden.

          -

          404 Not Found

          -

          The requested resource was not found.

          -

          500 Internal Server Error

          -

          The request is not completed because of a service error.

          -
          -
          -
        -
        -
        -
        - -
        - diff --git a/docs/sfs/api-ref/sfs_02_0095.html b/docs/sfs/api-ref/sfs_02_0095.html deleted file mode 100644 index fd42238a..00000000 --- a/docs/sfs/api-ref/sfs_02_0095.html +++ /dev/null @@ -1,445 +0,0 @@ - - -

        Querying File Systems by Tag

        -

        Function

        This API is used to query SFS Turbo file systems by tag.

        -
        -

        URI

        • POST /v1/{project_id}/sfs-turbo/resource_instances/action
        • Parameter description -
          - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          project_id

          -

          Yes

          -

          String

          -

          Specifies the project ID of the operator.

          -
          -
          -
        -
        -

        Request

        • Parameter description -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          offset

          -

          No

          -

          String

          -

          Specifies the index location. The value is a character string consisting of 0 and positive integers. The default value is 0. The first record in the query result is the offset+1 record that meets the query criteria.

          -

          limit

          -

          No

          -

          String

          -

          Specifies the maximum number of query records. The value is a character string consisting of integers. The default value is 1000. The value ranges from 1 to 1000.

          -

          The number of returned records cannot exceed the value of limit.

          -

          action

          -

          Yes

          -

          String

          -

          Specifies the operation identifier. Possible values are filter and count.

          -

          Use filter to query details of a shared file system using tags.

          -

          matches

          -

          No

          -

          Array of matches

          -

          Specifies the file system query field. If this parameter is left null, all shared file systems of the tenant are searched by default.

          -

          tags

          -

          No

          -

          Array of tags

          -

          Specifies the tag search field, which is a list of tags. Only shared file systems that contain all the listed tags can be returned. Tags in this search criteria are in the AND relationship. Specifically, a shared file system can be searched only when it meets all the tag search criteria. In the key-values structure of each tag search condition, tag values are in the OR relationship. If the value of tags is not specified, all shared file systems meet the requirement of this tag search field. This field contains a maximum of 20 tag keys and each tag key has a maximum of 10 tag values. The tag value corresponding to each tag key can be an empty array but the structure cannot be missing. Tag keys must be unique. Tag values in a key-values structure must be unique.

          -

          tags_any

          -

          No

          -

          Array of tags

          -

          Specifies the tag search field, which is a list of tags. Shared file systems that contain any listed tag will be returned. Tags in this search criteria are in the OR relationship. Specifically, a shared file system can be searched as long as it meets one tag search condition. In the key-values structure of each tag search condition, tag values are in the OR relationship. If the value of tags_any is not specified, all shared file systems meet the requirement of this tag search field. This field contains a maximum of 20 tag keys and each tag key has a maximum of 10 tag values. The tag value corresponding to each tag key can be an empty array but the structure cannot be missing. Tag keys must be unique. Tag values in a key-values structure must be unique.

          -

          not_tags

          -

          No

          -

          Array of tags

          -

          Specifies the tag search field, which is a list of tags. Only shared file systems that contain none of the listed tags will be returned. Tags in this search criteria are in the NOR relationship. Specifically, a shared file system can be searched only when it does not meet any tag search criteria. In the key-values structure of each tag search condition, tag values are in the OR relationship. If the value of not_tags is not specified, all shared file systems meet the requirement of this tag search field. This field contains a maximum of 20 tag keys and each tag key has a maximum of 10 tag values. The tag value corresponding to each tag key can be an empty array but the structure cannot be missing. Tag keys must be unique. Tag values in a key-values structure must be unique.

          -

          not_tags_any

          -

          No

          -

          Array of tags

          -

          Specifies the tag search field, which is a list of tags. Shared file systems that do not contain any of the listed tags will be returned. Tags in this search criteria are in the NAND relationship. Specifically, a shared file system can be searched as long as it does not meet one tag search condition. In the key-values structure of each tag search condition, tag values are in the OR relationship. If the value of not_tags_any is not specified, all shared file systems meet the requirement of this tag search field. This field contains a maximum of 20 tag keys and each tag key has a maximum of 10 tag values. The tag value corresponding to each tag key can be an empty array but the structure cannot be missing. Tag keys must be unique. Tag values in a key-values structure must be unique.

          -

          sys_tags

          -

          No

          -

          Array of tags

          -

          Only the op_service permission can use this field to filter resources.

          -
          1. Currently, TMS can invoke only one tag structure key, _sys_enterprise_project_id.
          2. Currently, key contains only one value.
          3. sys_tags and tenant tag filtering conditions (tags, tags_any, not_tags, and not_tags_any) cannot be used at the same time.
          -
          -
          -

          In the request parameters, tag search fields tags, tags_any, not_tags, and not_tags_any are optional and can be combined with each other. Such tag search fields are in the AND relationship.

          -
          -
        • Description of the match field -
          - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          key

          -

          Yes

          -

          String

          -

          Specifies the key. The value is fixed to resource_name.

          -

          value

          -

          Yes

          -

          String

          -

          Specifies the value. value indicates the name of a shared file system. An empty string specifies an exact match and only shared file systems whose names are empty can be queried. A non-empty string specifies a fuzzy query (case insensitive). The value can contain a maximum of 255 characters.

          -
          -
          -
        • Description of the tag field -
          - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          key

          -

          Yes

          -

          String

          -

          Specifies the key of the tag. A tag key can contain a maximum of 127 characters. This parameter cannot be left blank.

          -

          values

          -

          Yes

          -

          Array of strings

          -

          Lists the values. Each value can contain a maximum of 255 characters. If the value is left empty, any value is matched. The values are in the OR relationship.

          -
          -
          -
        • Example request
          {
          -    "offset": "0",
          -    "limit": "100",
          -    "action": "filter",
          -    "matches": [{
          -        "key": "resource_name",
          -        "value": "share_name"
          -    }],
          -    "tags": [{
          -        "key": "key1",
          -        "values": ["value2"]
          -    }, {
          -        "key": "key2",
          -        "values": []
          -    }],
          -    "tags_any": [{
          -        "key": "key3",
          -        "values": ["value3"]
          -    }, {
          -        "key": "key4",
          -        "values": []
          -    }],
          -    "not_tags": [{
          -        "key": "key5",
          -        "values": ["value5"]
          -    }, {
          -        "key": "key6",
          -        "values": []
          -    }],
          -    "not_tags_any": [{
          -        "key": "key7",
          -        "values": ["value7", "value8"]
          -    }, {
          -        "key": "key9",
          -        "values": []
          -    }]
          -}
          -
        -
        -
        • Example request (without passing matches)
          {
          -    "offset": "0",
          -    "limit": "100",
          -    "action": "filter",
          -    "tags": [{
          -        "key": "key1",
          -        "values": ["value2"]
          -    }, {
          -        "key": "key2",
          -        "values": []
          -    }]
          -}
          -
        • Example request (without passing limit and offset)
          {
          -    "action": "filter",
          -    "matches": [{
          -        "key": "resource_name",
          -        "value": "share_name"
          -    }],
          -    "tags": [{
          -        "key": "key1",
          -        "values": ["value2"]
          -    }, {
          -        "key": "key2",
          -        "values": []
          -    }]
          -}
          -
        -
        • Example request (without passing tags, not_tags, tags_any, and not_tags_any)
          {
          -    "offset": "0",
          -    "limit": "100",
          -    "action": "filter",
          -    "matches": [{
          -        "key": "resource_name",
          -        "value": "share_name"
          -    }]
          -}
          -
        -
        • Example request (with the action field only)
          {
          -    "action": "filter"
          -}
          -
        -

        Response

        • Parameter description -
          - - - - - - - - - - - - - -

          Parameter

          -

          Type

          -

          Description

          -

          resources

          -

          Array of resources

          -

          Specifies the list of shared file systems that meet the query criteria.

          -

          total_count

          -

          Integer

          -

          Specifies the total number of shared file systems that meet the query criteria.

          -
          NOTE:

          total_count specifies the total number of shared file systems that meet the query criteria, instead of the number returned after you set offset and limit.

          -
          -
          -
          -
        • Data structure of the resource field -
          - - - - - - - - - - - - - - - - - - - - - - - - - -

          Parameter

          -

          Type

          -

          Description

          -

          resource_id

          -

          String

          -

          Specifies the ID of the shared file system.

          -

          resource_detail

          -

          Object

          -

          Specifies the resource details. The value is a resource object, used for extension. This value is left empty by default.

          -

          tags

          -

          Array of resource_tags

          -

          Specifies the list of tags. If no tags exist, the value is an empty array by default.

          -

          sys_tags

          -

          Array of tags

          -

          Only the op_service permission can obtain this field.

          -
          1. Currently, only one tag structure key is used, _sys_enterprise_project_id.
          2. Currently, key contains only one value.
          -

          This field cannot be returned in non-op_service scenarios.

          -

          resource_name

          -

          String

          -

          Specifies the resource name.

          -
          -
          -
        • Data structure of the resource_tag field -
          - - - - - - - - - - - - - -

          Parameter

          -

          Type

          -

          Description

          -

          key

          -

          String

          -

          Specifies the tag key. The value can contain a maximum of 36 characters. This parameter cannot be left blank. It can only contain letters, digits, hyphens (-), and underscores (_).

          -

          value

          -

          String

          -

          Specifies the tag value. The value contains a maximum of 43 characters and can be an empty string. It can only contain letters, digits, hyphens (-), and underscores (_).

          -
          -
          -
        -
        • Example response
          {
          -    "resources":[
          -        {
          -            "resource_detail":{},
          -            "resource_id":"b1f3f06f-344d-446b-a4bf-647a225debae",
          -            "resource_name":"share_name",
          -            "tags":[
          -                {
          -                    "key":"key1", 
          -                    "value": "value1"
          -                },
          -                {
          -                    "key":"key2", 
          -                    "value": "value2"
          -                }
          -            ]
          -        }
          -    ],
          -    "total_count":1
          -}
          -
        -
        -

        Status Codes

        • Normal

          200

          -
        • Abnormal -
          - - - - - - - - - - - - - - - - - - - -

          Status Code

          -

          Description

          -

          400 Bad Request

          -

          Invalid value.

          -

          401 Unauthorized

          -

          Authentication failed.

          -

          403 Forbidden

          -

          Access to the requested page is forbidden.

          -

          404 Not Found

          -

          The requested resource was not found.

          -

          500 Internal Server Error

          -

          The request is not completed because of a service error.

          -
          -
          -
        -
        -
        -
        - -
        - diff --git a/docs/sfs/api-ref/sfs_02_0096.html b/docs/sfs/api-ref/sfs_02_0096.html deleted file mode 100644 index 6f0b1254..00000000 --- a/docs/sfs/api-ref/sfs_02_0096.html +++ /dev/null @@ -1,19 +0,0 @@ - - - -

        Connection Management

        - -

        -
        - -
        - - - -
        - diff --git a/docs/sfs/api-ref/sfs_02_0097.html b/docs/sfs/api-ref/sfs_02_0097.html deleted file mode 100644 index 0dbad171..00000000 --- a/docs/sfs/api-ref/sfs_02_0097.html +++ /dev/null @@ -1,132 +0,0 @@ - - -

        Changing a Security Group

        -

        Function

        This API is used to change the security group bound to an SFS Turbo file system. Security group change is an asynchronous task. You can determine whether the security group status is changed based on the sub_status field returned in Querying Details About a Single File System. If the sub_status field is 232, the security group has been successfully modified.

        -
        -

        URI

        • URI format

          POST /v1/{project_id}/sfs-turbo/shares/{share_id}/action

          -
        • Parameter description -
          - - - - - - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          project_id

          -

          Yes

          -

          String

          -

          Specifies the project ID. For details about how to obtain the project ID, see API Usage Guidelines.

          -

          share_id

          -

          Yes

          -

          String

          -

          Specifies the ID of the SFS Turbo file system.

          -
          -
          -
        -
        -

        Request

        • Parameter description -
          - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          change_security_group

          -

          Yes

          -

          Object

          -

          Specifies the change_security_group object. For details, see the change_security_group parameter description.

          -
          -
          -
        • change_security_group parameter description -
          - - - - - - - - - - - -

          Parameter

          -

          Mandatory

          -

          Type

          -

          Description

          -

          security_group_id

          -

          Yes

          -

          String

          -

          Specifies the ID of the security group to be modified.

          -
          -
          -
        -
        • Example request
          {
          -    "change_security_group": { 
          -       "security_group_id": "26f6b565-240e-43c3-8867-03f0bd975433"    
          -    }
          -}
          -
        -
        -

        Response

        • Parameter description -
          - - - - - - - - - -

          Parameter

          -

          Type

          -

          Description

          -

          id

          -

          String

          -

          Specifies the ID of the SFS Turbo file system.

          -
          -
          -
        -
        • Example response
          {
          -    "id": "67d4bd5e-7b2f-4c24-9a0b-c0038940c6f8"
          -}
          -

          -
        -
        -

        Status Codes

        • Normal
        -

        202

        -
        • Abnormal
        -

        For details, see Status Codes.

        -
        -
        -
        - -
        - diff --git a/docs/sfs/api-ref/sfs_02_0120.html b/docs/sfs/api-ref/sfs_02_0120.html new file mode 100644 index 00000000..e2b5fa81 --- /dev/null +++ b/docs/sfs/api-ref/sfs_02_0120.html @@ -0,0 +1,15 @@ + + +

        Obtaining Access Keys (AK/SK)

        +

        When calling an API, you need to use the AK/SK to verify the signature. To obtain the AK/SK, perform the following steps:

        +
        1. Log in to the console.
        2. Hover the cursor on the username in the upper right corner and select My Credentials from the drop-down list.
        3. In the navigation pane, select Access Keys.
        4. Click Create Access Key to go to the Create Access Key page.
        5. Enter a description (optional) and click OK.
        6. Click Download to obtain the access key file.

          Keep the AK/SK file properly to prevent information leakage.

          +
          +

        +

        +
        +
        + +
        + diff --git a/docs/sfs/api-ref/topic_300000000.html b/docs/sfs/api-ref/topic_300000000.html new file mode 100644 index 00000000..4e7ad152 --- /dev/null +++ b/docs/sfs/api-ref/topic_300000000.html @@ -0,0 +1,24 @@ + + +

        Lifecycle Management

        +

        +
        + + diff --git a/docs/sfs/api-ref/topic_300000001.html b/docs/sfs/api-ref/topic_300000001.html new file mode 100644 index 00000000..bfca2372 --- /dev/null +++ b/docs/sfs/api-ref/topic_300000001.html @@ -0,0 +1,16 @@ + + +

        Connection Management

        +

        +
        + + diff --git a/docs/sfs/api-ref/topic_300000002.html b/docs/sfs/api-ref/topic_300000002.html new file mode 100644 index 00000000..d6d9903c --- /dev/null +++ b/docs/sfs/api-ref/topic_300000002.html @@ -0,0 +1,24 @@ + + +

        Tag Management

        +

        +
        + + diff --git a/docs/sfs/api-ref/topic_300000003.html b/docs/sfs/api-ref/topic_300000003.html new file mode 100644 index 00000000..c9b5a090 --- /dev/null +++ b/docs/sfs/api-ref/topic_300000003.html @@ -0,0 +1,16 @@ + + +

        Name Management

        +

        +
        +
        + + + +
        + diff --git a/docs/sfs/api-ref/topic_300000007.html b/docs/sfs/api-ref/topic_300000007.html new file mode 100644 index 00000000..a85c35c8 --- /dev/null +++ b/docs/sfs/api-ref/topic_300000007.html @@ -0,0 +1,24 @@ + + +

        Permissions Management

        +

        +
        + + diff --git a/docs/sfs/api-ref/topic_300000008.html b/docs/sfs/api-ref/topic_300000008.html new file mode 100644 index 00000000..25ad857d --- /dev/null +++ b/docs/sfs/api-ref/topic_300000008.html @@ -0,0 +1,16 @@ + + +

        Task Management

        +

        +
        +
        + + + +
        +