# Clusters

Network File Storage cluster

This tag groups all operations for clusters.

## Retrieve all Clusters

> This endpoint enables retrieving all Clusters using\
> pagination and optional filters.<br>

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - Network File Storage API","version":"0.1.6"},"tags":[{"name":"Clusters","description":"Network File Storage cluster\n\nThis tag groups all operations for clusters.\n"}],"servers":[{"url":"https://nfs.de-fra.ionos.com","description":"service endpoint for location de-fra"},{"url":"https://nfs.de-txl.ionos.com","description":"service endpoint for location de-txl"},{"url":"https://nfs.es-vit.ionos.com","description":"service endpoint for location es-vit"},{"url":"https://nfs.fr-par.ionos.com","description":"service endpoint for location fr-par"},{"url":"https://nfs.gb-lhr.ionos.com","description":"service endpoint for location gb-lhr"},{"url":"https://nfs.us-ewr.ionos.com","description":"service endpoint for location us-ewr"},{"url":"https://nfs.us-las.ionos.com","description":"service endpoint for location us-las"},{"url":"https://nfs.us-mci.ionos.com","description":"service endpoint for location us-mci"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The token can be generated using the \n[Authentication API](https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate).\n"}},"parameters":{"paginationOffset":{"name":"offset","in":"query","description":"The first element (of the total list of elements) to include in the response. Use this parameter together with the limit for pagination.","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},"paginationLimit":{"name":"limit","in":"query","description":"The maximum number of elements to return. Use this parameter together with the offset for pagination.","required":false,"schema":{"type":"integer","format":"int32","default":100,"minimum":1,"maximum":1000}},"datacenterId":{"name":"filter.datacenterId","in":"query","description":"The datacenter ID to filter by.","required":false,"schema":{"type":"string","format":"uuid"}}},"schemas":{"ClusterReadList":{"allOf":[{"type":"object","required":["id","type","href"],"properties":{"id":{"description":"ID of the list of Cluster resources.","type":"string","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["collection"]},"href":{"description":"The URL of the list of Cluster resources.","type":"string"},"items":{"description":"The list of Cluster resources.","type":"array","items":{"$ref":"#/components/schemas/ClusterRead"}}}},{"$ref":"#/components/schemas/Pagination"}]},"ClusterRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the Cluster.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["cluster"]},"href":{"description":"The URL of the Cluster.","type":"string"},"metadata":{"$ref":"#/components/schemas/MetadataWithUsage"},"properties":{"$ref":"#/components/schemas/Cluster"}}},"MetadataWithUsage":{"allOf":[{"$ref":"#/components/schemas/MetadataWithStatus"},{"type":"object","required":["used"],"properties":{"used":{"type":"integer","format":"int64","description":"The storage capacity currently taken up by the customer's files in bytes, or 0 on error.\n","readOnly":true}}}]},"MetadataWithStatus":{"allOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"The status of the resource can be one of the following:\n* `AVAILABLE` - The resource exists and is healthy.\n* `PROVISIONING` - The resource is being created or updated.\n* `DESTROYING` - A delete command was issued, and the resource is being deleted.\n* `FAILED` - The resource failed, with details provided in `statusMessage`.\n","enum":["PROVISIONING","DESTROYING","AVAILABLE","FAILED"],"readOnly":true},"statusMessage":{"type":"string","description":"The error message when the status is `FAILED`.\n","readOnly":true}}}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"Cluster":{"type":"object","description":"Network File Storage cluster\n","required":["name","connections"],"properties":{"name":{"type":"string","description":"Name of the cluster"},"connections":{"type":"array","items":{"type":"object","required":["datacenterId","ipAddress","lan"],"properties":{"datacenterId":{"type":"string","format":"uuid","description":"The ID of the datacenter where the Network File Storage cluster is located.\n"},"lan":{"type":"string","description":"The LAN to which the Network File Storage cluster must be connected.\n"},"ipAddress":{"type":"string","description":"The IP address and prefix of the Network File Storage cluster. Must be specified in CIDR notation. Both IPv4 and IPv6 addresses are supported.\n"}}},"minItems":1,"maxItems":1},"nfs":{"type":"object","properties":{"minVersion":{"type":"string","description":"The minimum version of the NFS protocol.\n* `4.2` - NFSv4.2\n","default":"4.2"}}},"size":{"type":"integer","description":"The size of the Network File Storage cluster in TiB. Note that the cluster size cannot be reduced after provisioning.\nThis value determines the billing fees.\n","default":2,"minimum":2,"maximum":42}}},"Pagination":{"required":["offset","limit","_links"],"description":"Pagination information. The offset and limit parameters are used to\nnavigate the list of elements. The _links object contains URLs to\nnavigate the different pages.\n","type":"object","properties":{"offset":{"$ref":"#/components/schemas/Offset"},"limit":{"$ref":"#/components/schemas/Limit"},"_links":{"$ref":"#/components/schemas/Links"}}},"Offset":{"description":"The offset specified in the request (if none was specified, the default\noffset is 0).\n","type":"integer","minimum":0,"readOnly":true},"Limit":{"description":"The limit specified in the request (if none was specified, use the\nendpoint's default pagination limit).\n","type":"integer","minimum":0,"readOnly":true},"Links":{"description":"URLs to navigate the different pages. As of now we always only return a\nsingle page.\n","type":"object","properties":{"prev":{"description":"URL (with offset and limit parameters) of the previous page; only\npresent if offset is greater than 0.\n","type":"string","format":"uri","readOnly":true},"self":{"description":"URL (with offset and limit parameters) of the current page.\n","type":"string","format":"uri","readOnly":true},"next":{"description":"URL (with offset and limit parameters) of the next page; only\npresent if offset + limit is less than the total number of elements.\n","type":"string","format":"uri","readOnly":true}}},"Error":{"description":"The Error object is used to represent an error response from the API.\n","type":"object","properties":{"httpStatus":{"type":"integer","description":"The HTTP status code of the operation."},"messages":{"type":"array","description":"A list of error messages.\n","items":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code\n"},"message":{"type":"string","description":"A human readable explanation specific to this occurrence of the\nproblem.\n"}}}}}}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"### Too Many Requests\nThe user has sent too many requests in a given amount of time.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"### Service Unavailable\nThe server is currently unable to handle the request due to a temporary overloading or maintenance of the server.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnexpectedError":{"description":"### Unexpected Internal Server Error\nAn unexpected internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/clusters":{"get":{"operationId":"clustersGet","summary":"Retrieve all Clusters","description":"This endpoint enables retrieving all Clusters using\npagination and optional filters.\n","parameters":[{"$ref":"#/components/parameters/paginationOffset"},{"$ref":"#/components/parameters/paginationLimit"},{"$ref":"#/components/parameters/datacenterId"}],"tags":["Clusters"],"responses":{"200":{"description":"Returned all requested Clusters successfully.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClusterReadList"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"default":{"$ref":"#/components/responses/UnexpectedError"}}}}}}
```

## Create Cluster

> Creates a new Cluster.\
> \
> The full Cluster needs to be provided to create the object.\
> Optional data will be filled with defaults or left empty.<br>

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - Network File Storage API","version":"0.1.6"},"tags":[{"name":"Clusters","description":"Network File Storage cluster\n\nThis tag groups all operations for clusters.\n"}],"servers":[{"url":"https://nfs.de-fra.ionos.com","description":"service endpoint for location de-fra"},{"url":"https://nfs.de-txl.ionos.com","description":"service endpoint for location de-txl"},{"url":"https://nfs.es-vit.ionos.com","description":"service endpoint for location es-vit"},{"url":"https://nfs.fr-par.ionos.com","description":"service endpoint for location fr-par"},{"url":"https://nfs.gb-lhr.ionos.com","description":"service endpoint for location gb-lhr"},{"url":"https://nfs.us-ewr.ionos.com","description":"service endpoint for location us-ewr"},{"url":"https://nfs.us-las.ionos.com","description":"service endpoint for location us-las"},{"url":"https://nfs.us-mci.ionos.com","description":"service endpoint for location us-mci"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The token can be generated using the \n[Authentication API](https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate).\n"}},"schemas":{"ClusterCreate":{"type":"object","required":["properties"],"properties":{"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/Cluster"}}},"Cluster":{"type":"object","description":"Network File Storage cluster\n","required":["name","connections"],"properties":{"name":{"type":"string","description":"Name of the cluster"},"connections":{"type":"array","items":{"type":"object","required":["datacenterId","ipAddress","lan"],"properties":{"datacenterId":{"type":"string","format":"uuid","description":"The ID of the datacenter where the Network File Storage cluster is located.\n"},"lan":{"type":"string","description":"The LAN to which the Network File Storage cluster must be connected.\n"},"ipAddress":{"type":"string","description":"The IP address and prefix of the Network File Storage cluster. Must be specified in CIDR notation. Both IPv4 and IPv6 addresses are supported.\n"}}},"minItems":1,"maxItems":1},"nfs":{"type":"object","properties":{"minVersion":{"type":"string","description":"The minimum version of the NFS protocol.\n* `4.2` - NFSv4.2\n","default":"4.2"}}},"size":{"type":"integer","description":"The size of the Network File Storage cluster in TiB. Note that the cluster size cannot be reduced after provisioning.\nThis value determines the billing fees.\n","default":2,"minimum":2,"maximum":42}}},"ClusterRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the Cluster.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["cluster"]},"href":{"description":"The URL of the Cluster.","type":"string"},"metadata":{"$ref":"#/components/schemas/MetadataWithUsage"},"properties":{"$ref":"#/components/schemas/Cluster"}}},"MetadataWithUsage":{"allOf":[{"$ref":"#/components/schemas/MetadataWithStatus"},{"type":"object","required":["used"],"properties":{"used":{"type":"integer","format":"int64","description":"The storage capacity currently taken up by the customer's files in bytes, or 0 on error.\n","readOnly":true}}}]},"MetadataWithStatus":{"allOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"The status of the resource can be one of the following:\n* `AVAILABLE` - The resource exists and is healthy.\n* `PROVISIONING` - The resource is being created or updated.\n* `DESTROYING` - A delete command was issued, and the resource is being deleted.\n* `FAILED` - The resource failed, with details provided in `statusMessage`.\n","enum":["PROVISIONING","DESTROYING","AVAILABLE","FAILED"],"readOnly":true},"statusMessage":{"type":"string","description":"The error message when the status is `FAILED`.\n","readOnly":true}}}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"Error":{"description":"The Error object is used to represent an error response from the API.\n","type":"object","properties":{"httpStatus":{"type":"integer","description":"The HTTP status code of the operation."},"messages":{"type":"array","description":"A list of error messages.\n","items":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code\n"},"message":{"type":"string","description":"A human readable explanation specific to this occurrence of the\nproblem.\n"}}}}}}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnsupportedMediaType":{"description":"### Unsupported Media Type\nThe request has an unsupported media type.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnprocessableEntity":{"description":"### Unprocessable Entity\nThe request was well-formed but was unable to be followed due to semantic errors.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"### Too Many Requests\nThe user has sent too many requests in a given amount of time.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"### Service Unavailable\nThe server is currently unable to handle the request due to a temporary overloading or maintenance of the server.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnexpectedError":{"description":"### Unexpected Internal Server Error\nAn unexpected internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/clusters":{"post":{"operationId":"clustersPost","summary":"Create Cluster","tags":["Clusters"],"description":"Creates a new Cluster.\n\nThe full Cluster needs to be provided to create the object.\nOptional data will be filled with defaults or left empty.\n","requestBody":{"description":"Cluster to create.","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClusterCreate"}}}},"responses":{"201":{"description":"Cluster successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClusterRead"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"415":{"$ref":"#/components/responses/UnsupportedMediaType"},"422":{"$ref":"#/components/responses/UnprocessableEntity"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"default":{"$ref":"#/components/responses/UnexpectedError"}}}}}}
```

## Retrieve Cluster

> Returns the Cluster by ID.

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - Network File Storage API","version":"0.1.6"},"tags":[{"name":"Clusters","description":"Network File Storage cluster\n\nThis tag groups all operations for clusters.\n"}],"servers":[{"url":"https://nfs.de-fra.ionos.com","description":"service endpoint for location de-fra"},{"url":"https://nfs.de-txl.ionos.com","description":"service endpoint for location de-txl"},{"url":"https://nfs.es-vit.ionos.com","description":"service endpoint for location es-vit"},{"url":"https://nfs.fr-par.ionos.com","description":"service endpoint for location fr-par"},{"url":"https://nfs.gb-lhr.ionos.com","description":"service endpoint for location gb-lhr"},{"url":"https://nfs.us-ewr.ionos.com","description":"service endpoint for location us-ewr"},{"url":"https://nfs.us-las.ionos.com","description":"service endpoint for location us-las"},{"url":"https://nfs.us-mci.ionos.com","description":"service endpoint for location us-mci"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The token can be generated using the \n[Authentication API](https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate).\n"}},"schemas":{"ClusterRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the Cluster.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["cluster"]},"href":{"description":"The URL of the Cluster.","type":"string"},"metadata":{"$ref":"#/components/schemas/MetadataWithUsage"},"properties":{"$ref":"#/components/schemas/Cluster"}}},"MetadataWithUsage":{"allOf":[{"$ref":"#/components/schemas/MetadataWithStatus"},{"type":"object","required":["used"],"properties":{"used":{"type":"integer","format":"int64","description":"The storage capacity currently taken up by the customer's files in bytes, or 0 on error.\n","readOnly":true}}}]},"MetadataWithStatus":{"allOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"The status of the resource can be one of the following:\n* `AVAILABLE` - The resource exists and is healthy.\n* `PROVISIONING` - The resource is being created or updated.\n* `DESTROYING` - A delete command was issued, and the resource is being deleted.\n* `FAILED` - The resource failed, with details provided in `statusMessage`.\n","enum":["PROVISIONING","DESTROYING","AVAILABLE","FAILED"],"readOnly":true},"statusMessage":{"type":"string","description":"The error message when the status is `FAILED`.\n","readOnly":true}}}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"Cluster":{"type":"object","description":"Network File Storage cluster\n","required":["name","connections"],"properties":{"name":{"type":"string","description":"Name of the cluster"},"connections":{"type":"array","items":{"type":"object","required":["datacenterId","ipAddress","lan"],"properties":{"datacenterId":{"type":"string","format":"uuid","description":"The ID of the datacenter where the Network File Storage cluster is located.\n"},"lan":{"type":"string","description":"The LAN to which the Network File Storage cluster must be connected.\n"},"ipAddress":{"type":"string","description":"The IP address and prefix of the Network File Storage cluster. Must be specified in CIDR notation. Both IPv4 and IPv6 addresses are supported.\n"}}},"minItems":1,"maxItems":1},"nfs":{"type":"object","properties":{"minVersion":{"type":"string","description":"The minimum version of the NFS protocol.\n* `4.2` - NFSv4.2\n","default":"4.2"}}},"size":{"type":"integer","description":"The size of the Network File Storage cluster in TiB. Note that the cluster size cannot be reduced after provisioning.\nThis value determines the billing fees.\n","default":2,"minimum":2,"maximum":42}}},"Error":{"description":"The Error object is used to represent an error response from the API.\n","type":"object","properties":{"httpStatus":{"type":"integer","description":"The HTTP status code of the operation."},"messages":{"type":"array","description":"A list of error messages.\n","items":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code\n"},"message":{"type":"string","description":"A human readable explanation specific to this occurrence of the\nproblem.\n"}}}}}}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"### Not Found\nThe resource that was requested could not be found.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"### Too Many Requests\nThe user has sent too many requests in a given amount of time.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"### Service Unavailable\nThe server is currently unable to handle the request due to a temporary overloading or maintenance of the server.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnexpectedError":{"description":"### Unexpected Internal Server Error\nAn unexpected internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/clusters/{clusterId}":{"get":{"operationId":"clustersFindById","summary":"Retrieve Cluster","tags":["Clusters"],"description":"Returns the Cluster by ID.","parameters":[{"name":"clusterId","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"description":"The ID (UUID) of the Cluster."}],"responses":{"200":{"description":"Getting Cluster was successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClusterRead"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"default":{"$ref":"#/components/responses/UnexpectedError"}}}}}}
```

## Ensure Cluster

> Ensures that the Cluster with the provided ID is created or modified.\
> The full Cluster needs to be provided to ensure\
> (either update or create) the Cluster. Non present data will\
> only be filled with defaults or left empty, but not take\
> previous values into consideration.<br>

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - Network File Storage API","version":"0.1.6"},"tags":[{"name":"Clusters","description":"Network File Storage cluster\n\nThis tag groups all operations for clusters.\n"}],"servers":[{"url":"https://nfs.de-fra.ionos.com","description":"service endpoint for location de-fra"},{"url":"https://nfs.de-txl.ionos.com","description":"service endpoint for location de-txl"},{"url":"https://nfs.es-vit.ionos.com","description":"service endpoint for location es-vit"},{"url":"https://nfs.fr-par.ionos.com","description":"service endpoint for location fr-par"},{"url":"https://nfs.gb-lhr.ionos.com","description":"service endpoint for location gb-lhr"},{"url":"https://nfs.us-ewr.ionos.com","description":"service endpoint for location us-ewr"},{"url":"https://nfs.us-las.ionos.com","description":"service endpoint for location us-las"},{"url":"https://nfs.us-mci.ionos.com","description":"service endpoint for location us-mci"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The token can be generated using the \n[Authentication API](https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate).\n"}},"schemas":{"ClusterEnsure":{"type":"object","required":["id","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the Cluster.","format":"uuid"},"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/Cluster"}}},"Cluster":{"type":"object","description":"Network File Storage cluster\n","required":["name","connections"],"properties":{"name":{"type":"string","description":"Name of the cluster"},"connections":{"type":"array","items":{"type":"object","required":["datacenterId","ipAddress","lan"],"properties":{"datacenterId":{"type":"string","format":"uuid","description":"The ID of the datacenter where the Network File Storage cluster is located.\n"},"lan":{"type":"string","description":"The LAN to which the Network File Storage cluster must be connected.\n"},"ipAddress":{"type":"string","description":"The IP address and prefix of the Network File Storage cluster. Must be specified in CIDR notation. Both IPv4 and IPv6 addresses are supported.\n"}}},"minItems":1,"maxItems":1},"nfs":{"type":"object","properties":{"minVersion":{"type":"string","description":"The minimum version of the NFS protocol.\n* `4.2` - NFSv4.2\n","default":"4.2"}}},"size":{"type":"integer","description":"The size of the Network File Storage cluster in TiB. Note that the cluster size cannot be reduced after provisioning.\nThis value determines the billing fees.\n","default":2,"minimum":2,"maximum":42}}},"ClusterRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the Cluster.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["cluster"]},"href":{"description":"The URL of the Cluster.","type":"string"},"metadata":{"$ref":"#/components/schemas/MetadataWithUsage"},"properties":{"$ref":"#/components/schemas/Cluster"}}},"MetadataWithUsage":{"allOf":[{"$ref":"#/components/schemas/MetadataWithStatus"},{"type":"object","required":["used"],"properties":{"used":{"type":"integer","format":"int64","description":"The storage capacity currently taken up by the customer's files in bytes, or 0 on error.\n","readOnly":true}}}]},"MetadataWithStatus":{"allOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"The status of the resource can be one of the following:\n* `AVAILABLE` - The resource exists and is healthy.\n* `PROVISIONING` - The resource is being created or updated.\n* `DESTROYING` - A delete command was issued, and the resource is being deleted.\n* `FAILED` - The resource failed, with details provided in `statusMessage`.\n","enum":["PROVISIONING","DESTROYING","AVAILABLE","FAILED"],"readOnly":true},"statusMessage":{"type":"string","description":"The error message when the status is `FAILED`.\n","readOnly":true}}}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"Error":{"description":"The Error object is used to represent an error response from the API.\n","type":"object","properties":{"httpStatus":{"type":"integer","description":"The HTTP status code of the operation."},"messages":{"type":"array","description":"A list of error messages.\n","items":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code\n"},"message":{"type":"string","description":"A human readable explanation specific to this occurrence of the\nproblem.\n"}}}}}}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"### Not Found\nThe resource that was requested could not be found.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Conflict":{"description":"### Conflict\nThe UUID is already taken by another party, follow the guides to generate UUIDs uniquely.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnsupportedMediaType":{"description":"### Unsupported Media Type\nThe request has an unsupported media type.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnprocessableEntity":{"description":"### Unprocessable Entity\nThe request was well-formed but was unable to be followed due to semantic errors.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"### Too Many Requests\nThe user has sent too many requests in a given amount of time.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"### Service Unavailable\nThe server is currently unable to handle the request due to a temporary overloading or maintenance of the server.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnexpectedError":{"description":"### Unexpected Internal Server Error\nAn unexpected internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/clusters/{clusterId}":{"put":{"operationId":"clustersPut","summary":"Ensure Cluster","tags":["Clusters"],"description":"Ensures that the Cluster with the provided ID is created or modified.\nThe full Cluster needs to be provided to ensure\n(either update or create) the Cluster. Non present data will\nonly be filled with defaults or left empty, but not take\nprevious values into consideration.\n","parameters":[{"name":"clusterId","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"description":"The ID (UUID) of the Cluster."}],"requestBody":{"description":"update Cluster","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClusterEnsure"}}}},"responses":{"200":{"description":"Cluster successfully updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClusterRead"}}}},"201":{"description":"Cluster successfully ensured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClusterRead"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"415":{"$ref":"#/components/responses/UnsupportedMediaType"},"422":{"$ref":"#/components/responses/UnprocessableEntity"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"default":{"$ref":"#/components/responses/UnexpectedError"}}}}}}
```

## Delete Cluster

> Deletes the specified Cluster.

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - Network File Storage API","version":"0.1.6"},"tags":[{"name":"Clusters","description":"Network File Storage cluster\n\nThis tag groups all operations for clusters.\n"}],"servers":[{"url":"https://nfs.de-fra.ionos.com","description":"service endpoint for location de-fra"},{"url":"https://nfs.de-txl.ionos.com","description":"service endpoint for location de-txl"},{"url":"https://nfs.es-vit.ionos.com","description":"service endpoint for location es-vit"},{"url":"https://nfs.fr-par.ionos.com","description":"service endpoint for location fr-par"},{"url":"https://nfs.gb-lhr.ionos.com","description":"service endpoint for location gb-lhr"},{"url":"https://nfs.us-ewr.ionos.com","description":"service endpoint for location us-ewr"},{"url":"https://nfs.us-las.ionos.com","description":"service endpoint for location us-las"},{"url":"https://nfs.us-mci.ionos.com","description":"service endpoint for location us-mci"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The token can be generated using the \n[Authentication API](https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate).\n"}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"### Not Found\nThe resource that was requested could not be found.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ConflictDependencies":{"description":"### ConflictDependencies\nThe resource has dependencies and cannot be deleted. Follow the guidelines to delete the dependencies first.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"### Too Many Requests\nThe user has sent too many requests in a given amount of time.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"### Service Unavailable\nThe server is currently unable to handle the request due to a temporary overloading or maintenance of the server.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnexpectedError":{"description":"### Unexpected Internal Server Error\nAn unexpected internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"description":"The Error object is used to represent an error response from the API.\n","type":"object","properties":{"httpStatus":{"type":"integer","description":"The HTTP status code of the operation."},"messages":{"type":"array","description":"A list of error messages.\n","items":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code\n"},"message":{"type":"string","description":"A human readable explanation specific to this occurrence of the\nproblem.\n"}}}}}}}},"paths":{"/clusters/{clusterId}":{"delete":{"operationId":"clustersDelete","summary":"Delete Cluster","tags":["Clusters"],"description":"Deletes the specified Cluster.","parameters":[{"name":"clusterId","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"description":"The ID (UUID) of the Cluster."}],"responses":{"202":{"description":"Deleting Cluster was successful."},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/ConflictDependencies"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"default":{"$ref":"#/components/responses/UnexpectedError"}}}}}}
```
