Overview
INFINIDAT InfiniBox RESTful API provides programmatic access to the InfiniBox storage system. Use the APIs to access the system components and entities, create and edit entities and perform storage operations.
Terminology
- InfiniBox - The INFINIDAT storage system that is queried and posted to through the InfiniBox RESTful API.
- Entity - A logical entity that represents a portion or component of the InfiniBox business logic. For example, pool, volume, host, etc.
- Object - In REST terminology, the InfiniBox entity is an Object, a data structure with a known set of fields. The RESTful API request operates on, or returns, the data of an object.
For the data structure of an object – see the next section.
- Collection - An array of entities that is requested by an API request, along with possible support for filtering, sorting, field selection, pagination, and other common functions. For example, all of the pools in an InfiniBox system, or some of the pools in an InfiniBox system that meet a certain criteria.
For the data structure of a collection – see the next section.
All the resources and methods mentioned here are public; that is, are available for use by end-users.
Request headers
The client sends the InfiniBox a request with the following headers:
- Content-Type: application/json
Protocol Basics
This section covers the structure of the supported requests, and their responses. We'll start from the response.
Data structure
The API uses the JSON protocol. The JSON protocol comprises the following data types:
- Null - null (only one value)
- Boolean - true or false
- Number - Numeric values, e.g: 123456
- String - Characters, enclosed in quotes, e.g: "some text"
- Object - A JSON object is a container of fields and values. Objects may contain nested objects.
For example:
{
"age": 42,
"name": "Joe",
"is_married": true,
"children_ids": [2, 5, 4],
"job_id": null,
"metadata": {
"religion": "PASTAFARIANISM",
"political_affiliation": null
}
}
CRUD operations
The following HTTP methods create, read, update and delete InfiniBox objects and collections. For example:
| Operation |
Syntax |
Body structure |
Response structure |
| Create an entity |
POST /collection |
Required |
The created entity |
| Read an entity |
GET /collection/<id> |
- |
The read entity |
| Read all entities |
GET /collection |
- |
A paginated list of entities |
| Update an entity |
PUT /collection/<id> |
Required |
The updated entity |
| Delete an entity |
DELETE /collection/<id> |
- |
The deleted entity |
Storage operations other than CRUD
The following table specifies the details of some storage operations - other than CRUD - that are available in InfiniBox RESTful API.
| Operation |
Syntax |
Body structure |
Response structure |
| Lock a pool |
POST api/rest/pools/{pool_id}/lock Where pools is the name of the collection and pool_id is an object within this collection. |
- |
The entity, with a change to one of its fields: "state": "LOCKED" |
| Get a list of the pool's administrators |
POST api/rest/pools/{pool_id}/all_admins |
- |
A list of the pool's administrators. |
Response to a request
Each response returns a JSON-encoded object in the HTTP body, which contains 3 attributes:
-
result -
the actual data returned by the request. May be null in case of error, or if the data is not available yet.
-
metadata -
additional information about the result, such as the pagination data and so on.
- error - in case of an error, contains the error code and human-readable error message. Otherwise it is null.
Successful request
A response to a request that ended successfully contains the following:
- The result part returns data (in this case: role, email and uid of two users).
- The metadata returns details about the result:
- ready means that the request ended successfully and a new request can be sent.
- The other metadata provides details about the number of objects that were returned, and the way the result is paginated
- The error part returns null, as the request ended successfully.
{
"result": [
{
"role": "ADMIN",
"email": "alice@example.com",
"uid": "alicia"
},
{
"role": "ADMIN",
"email": "bob@example.com",
"uid": "bob"
}
],
"metadata": {
"ready": true,
"number_of_objects": 2,
"page_size": 50
"pages_total": 1,
"page": 1,
},
"error": null
}
A request that ends with an error
Here is a sample response from a request that ended with an error:
- The result part returns null, as the request was not answered.
- The metadata part returns the following details about the result:
- ready means that the request ended successfully and a new request can be sent.
- No information about returned objects, as no objects were returned.
{
"result": null,
"metadata": {
"ready": true
},
"error": {
"message": "You must authenticate",
"code": "AUTHENTICATION_REQUIRED"
},
}
Adding dangerous operations to API code
Dangerous operations are operations that create a risk of downtime or user interference.
These operations require explicit approval to make sure the user does not perform them by accident.
Such operations are deleting an entity from a collection, or removing an association between entities.
For example, deleting a host and removing a host from a cluster are operations that are considered to be dangerous and require an additional user approval.
A dangerous operation is approved by adding the string approved=yes at the end of the request. Examples:
DELETE api/rest/hosts/host_id?approved=yes
POST api/rest/clusters/cluster_id/hosts/host_id?approved=yes
Attempting to run a dangerous operation without explicit approval will return an error:
APPROVAL_REQUIRED
Authentication
All API requests must be accompanied by an Authorization header containing a Base64-encoded username:password pair (HTTP basic authentication).
Otherwise, an HTTP 401 error is returned.
The only exception is the login request, which purpose is to check whether a given username and password pair is valid.
The structure of the collection
When requesting a collection of objects (for example, all volumes for a pool, or all volumes in the system), the result can span over hundreds of objects and thousands of lines. In order to enhance its readability, the following response attributes can be set as part of the GET request:
- Pagination - how many objects are displayed on each page
- Filter - which of the collection object will be displayed in the response
- Sort - how the objects are sorted
- Fields - which of the object fields is included in the response
Pagination
For ease of readability, the objects that the response returns are paginated. The default pagination is 50 objects per page.
You can change the pagination by specifying two parameters:
- page_size - The number of entities on each page.
- page - The number of the page that is displayed on screen.
Example 1: default pagination of GET api/rest/volumes
| GET request |
api/rest/volumes |
| Response |
{
"result": [
{
"id": 1,
"name": "vol-01",
... ... ...
},
{
"id": 2,
"name": "vol-02",
... ... ...
},
... ... ...
}
|
| Metadata |
"metadata": {
"ready": true,
"page": 1,
"number_of_objects": 15,
"page_size": 50,
"pages_total": 1
}
|
| Page |
As there are 15 objects in the response, and the size of a page is 50 objects, there is only one page. |
| Number of objects |
The number of objects in the collections. This number is not affected by the pagination. |
| Page size |
50 objects per page. |
Example 2: 3 volumes per page, displaying the second page
| GET request |
api/rest/volumes?page_size=3&page=2 |
| Response |
As there are 3 volumes per page, the 2nd page displays the 4th, 5th and 6th volumes.
{
"result": [
{
"id": 4,
"name": "vol-04",
... ... ...
},
{
"id": 5,
"name": "vol-05",
... ... ...
},
{
"id": 6,
"name": "vol-06",
... ... ...
},
... ... ...
}
|
| Metadata |
"metadata": {
"ready": true,
"page": 2,
"number_of_objects": 15,
"page_size": 3,
"pages_total": 5
}
|
| Page |
As requested, this response includes page 2. |
| Number of objects |
The number of objects in the collections. This number is not affected by the pagination. |
| Page size |
As requested, there are 3 objects per page. |
Filtering
Some responses can be filtered, so that only specific objects will be returned. For such responses, you can filter the returned objects by stating a valid value to one of their attributes.
You can filter the InfiniBox volumes by many of their attributes, for example their type (a Master, Snap, or Clone).
Simple filtering example
Setting a filter is done by specifying the filter argument (attribute and value). In the following example, only Master volumes are returned.
api/rest/volumes?type=master
If the field and values are set incorrectly, the following error messages are returned:
- ATTRIBUTE_NOT_FOUND - The attributes could not be found.
Resolve this error by making sure that the attribute indeed exists for this entity. For example, that the volume does have a type attribute.
- MALFORMED_PARAMETER - The value of the attribute is illegal.
Resolve this problem by making sure that the attribute you filter the response with, is legal. For example, that type accepts master.
You can use the following operators in order to filter the response:
| Operator |
Acceptable value |
Examples |
| eq |
number/string |
api/rest/volumes?pool_id=eq:134 |
| neq |
number/string |
api/rest/events?visibility=neq:customer |
| is |
null |
To find all volumes that are not members of a consistency group (that is, whose cg_id value is null), use: api/rest/volumes?cg_id=is:null |
| isnot |
null |
To find all volumes that are members of any consistency group (that is, whose cg_id value is not null), use:api/rest/volumes?cg_id=isnot:null |
| lt |
number/string |
api/rest/events?timestamp=lt:2000000000000 |
| leq |
number/string |
api/rest/volumes?pool_id=leq:646 |
| gt |
number/string |
api/rest/volumes?pool_id=gt:646 |
| geq |
number/string |
api/rest/events?timestamp=geq:2000000000000 |
| in |
list |
Input list is val1, val2,.. which can be enclosed with () or [] or not enclosed at all. |
| notin |
list |
Input list is val1, val2,.. which can be enclosed with () or [] or not enclosed at all. |
| between |
list |
A list of exactly two items, e.g. [5,10]; the filter is inclusive, equivalent to x >= 5 AND y <= 10. |
| like |
string |
Searches for a field containing the value (case-insensitive).
"like:ny" on {MEENY, MINY, MOE, nyc} returns {MEENY, MINY, nyc} |
Notes:
- When filtering on more than one field, the conditions are joined.
- Unless otherwise stated, string comparisons are case insensitive.
Sorting
For most of the available collections, the objects can be sorted by one or more fields. The sorting is done according to order of the fields (from left to right). The syntax for sorting is as follows:
api/rest/collection?sort=<field name>[,<field name>]
The default sorting order is ascending. To specify a descending order, add a minus sign (-) before the field name. For example:
/api/rest/events?sort=-level,timestamp
The specific fields that can be used depend on the objects in question. Please refer to the documentation of each request for the list of valid fields.
Choosing Which Fields to Get
By default, requests that return objects will return all the fields of each object. If you are interested in only a few fields from the object, you can use the fields query parameter in order to "pluck" them from the objects and omit all other fields. This parameter should contain a comma-separated list of field names. For example:
GET /api/rest/events?fields=id,uuid
The response:
{
"error": null,
"result": [
{
"id": 1,
"uuid": "a469575e-acd9-435f-bc5f-79ada0bc6add"
},
{
"id": 2,
"uuid": "326be807-6550-472a-9c68-b03f4b5171fa"
},
{
"id": 3,
"uuid": "799355fe-c529-4482-a2cc-ab672dffc6d5"
},
...
],
"metadata": {
...
}
}
The fields query parameter is supported by all API methods that are tagged as "pluckable".
Note that passing a non-existent field name is not an error; it simply won't be returned for any object that doesn't have such a field.
List of Metadata Keys
Below is a list of all keys that can appear in the response metadata object.
List of API Error Codes
Successful GET request
Successful post request
| Created |
201 |
The response contains the created object. |
Request error
| UNKNOWN_PARAMETER |
400 |
The request contains a parameter that is not part of the collection / object. |
| MALFORMED_PARAMETER |
400 |
The value of the parameter is invalid. |
| MALFORMED_CONTENT |
400 |
The request contains wrong content. |
| MALFORMED_REQUEST |
400 |
The request contains wrong headers. |
| WRONG_PARAMETER |
400 |
The request contains a parameter is not part of the collection / object. |
| MISSING_QUERY_PARAMETER |
400 |
A manadatory parameter is missing from the request. |
| MISSING_FIELD |
400 |
A manadatory parameter is missing from the request. |
| MISSING_CONTENT |
400 |
The request contains insufficient information for responding. |
| UNSUPPORTED_FIELD |
400 |
The resource or service cannot accept a specified field or property |
| MAX_PAGE_SIZE_VIOLATION |
400 |
The requested page_size is too large (>1000) |
| NOT_FOUND |
404 |
Object not found. |
| UNKNOWN_PATH |
404 |
Requsted service does not exist. |
| CONFLICT |
409 |
The request conflicts with already existing collections (for example when trying to create an object that already exists). |
Approval required
| APPROVAL_REQUIRED |
403 |
The operation requires a specific user-approval. |
Authentication errors
| AUTHENTICATION_REQUIRED |
401 |
The authentication headers are missing or invalid. |
| UNAUTHORIZED |
403 |
The user is not authorized to perform the requested action. |
Other errors
| RECONFIGURING |
HTTP 307 |
The system is currently reconfiguring, and cannot respond temporarily. Request should be retried in a few seconds. |
| ILLEGAL_NODE_STATE |
HTTP 409 |
The requested node is not the master node. |
| OPERATION_DENIED_CLUSTER_NOT_FULL |
HTTP 409 |
Cluster is not full or node in joining state. |
| NOT_SUPPORTED_IN_SYSTEM_STATE |
HTTP 409 |
The request is not valid for the current system state. |
| INTERNAL_SERVER_ERROR |
HTTP 500 |
Internal server error. |
Refer to the documentation of specific API methods for information about additional error codes that they may return.
Entities states
This section covers the different entities states
General physical states
Below is a list of all possible physical states of all entities
Enclosure drive logical states
Below is a list of all possible logical states of enclosure drives
Nodes logical states
Below is a list of all possible logical states of nodes
API Reference
Active Directory
Join a Domain
| Description |
Join an Active Directory domain
|
| API Endpoint |
POST api/rest/activedirectory/domains |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"username": "domain-admin-name",
"preferred_ips": [
"192.168.1.1"
],
"domain": "ad.local.infinidat.com",
"password": "domain-admin-password",
"org_unit": ""
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"preferred_ips": [
"172.20.59.86"
],
"domain": "ad.local.infinidat.com",
"gid_attribute_name": "",
"max_translated_groups": null,
"tenant_id": 1,
"unix_services_enabled": false,
"org_unit": "CN=Computers,OU=QA,DC=infinidat,DC=com",
"uid_attribute_name": ""
},
"error": null
}
|
| Errors |
| MISSING_FIELD |
HTTP 400 |
A field ('password') is missing in an object passed |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('org_unit') could not be translated to an expected type |
| INVALID_IP_ADDRESS |
HTTP 400 |
IP address '172.168.a.b' is invalid. A preferred IP must be a valid IPv4 address or a valid domain name |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('email') |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| ACTIVE_DIRECTORY_DOMAIN_NAME_TOO_LONG |
HTTP 409 |
The Active Directory domain name is too long |
| ACTIVE_DIRECTORY_PREFERRED_IPS_COUNT_LIMIT |
HTTP 409 |
The number of Active Directory domain controllers exceeds the limit of 10 |
| ACTIVE_DIRECTORY_DOMAIN_NAME_INVALID |
HTTP 409 |
The Active Directory domain name is not valid |
| ACTIVE_DIRECTORY_ADMIN_PASSWORD_TOO_LONG |
HTTP 409 |
The Administrator account password is too long |
| ACTIVE_DIRECTORY_ADMIN_USERNAME_TOO_LONG |
HTTP 409 |
The Administrator account name is too long |
| ACTIVE_DIRECTORY_ADMIN_CREDENTIALS_INVALID |
HTTP 409 |
Join Active Directory domain 'ad.local.infinidat.com' failed: Incorrect administrator credentials |
| NAS_NETWORK_SPACE_NOT_DEFINED |
HTTP 409 |
A NAS network space must be defined to complete this operation |
| ACTIVE_DIRECTORY_ALREADY_JOINED |
HTTP 409 |
This system has already joined Active Directory 'ad.local.infinidat.com' |
| ACTIVE_DIRECTORY_JOIN_DOMAIN_FAILED |
HTTP 409 |
Failed to join Active Directory domain 'ad.local.infinidat.com': Cannot authenticate with the domain, probably because the system's machine account in the domain is faulty. |
|
Leave the Domain
| Description |
Leave the Active Directory domain
|
| Approval required |
This is a dangerous operation
Leaving Active Directory domain 'domain' will deny further access for domain users
|
| API Endpoint |
POST api/rest/activedirectory/domains/leave |
| URL Parameters |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"username": "domain-admin-name",
"password": "domain-admin-password"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "OK",
"error": null
}
|
| Errors |
| MISSING_FIELD |
HTTP 400 |
A field ('password') is missing in an object passed |
| APPROVAL_REQUIRED |
HTTP 403 |
Leaving Active Directory domain 'ad.local.infinidat.com' will deny further access for domain users |
| ACTIVE_DIRECTORY_LEAVE_DOMAIN_FAILED |
HTTP 409 |
Failed to leave Active Directory domain 'ad.local.infinidat.com': Cannot authenticate with the domain, probably because the system's machine account in the domain is faulty. |
| ACTIVE_DIRECTORY_ADMIN_CREDENTIALS_INVALID |
HTTP 409 |
Leave Active Directory domain 'ad.local.infinidat.com' failed: Incorrect administrator credentials |
| ACTIVE_DIRECTORY_NOT_JOINED |
HTTP 409 |
This system has not joined any Active Directory domain |
| ACTIVE_DIRECTORY_ADMIN_USERNAME_TOO_LONG |
HTTP 409 |
The Administrator account name is too long |
| ACTIVE_DIRECTORY_ADMIN_PASSWORD_TOO_LONG |
HTTP 409 |
The Administrator account password is too long |
|
Query Domain User
| Description |
Lookup an Active Directory user
|
| API Endpoint |
GET api/rest/activedirectory/domains/user_query |
| URL Parameters |
| username |
String |
|
| sid |
String |
|
| uid |
Integer |
|
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"username": "jsmith@customer.com",
"uid": 3456,
"tenant_id": 1,
"gsid": "S-1-5-21-11111-22222-33333-5001",
"gid": 5432,
"sid": "S-1-5-21-11111-22222-33333-84563",
"name": "John Smith"
}
],
"error": null
}
|
| Errors |
| WRONG_PARAMETER |
HTTP 400 |
The value (-10) of parameter 'uid' does not meet a condition: 'uid > 0' |
| INVALID_SID_VALUE |
HTTP 409 |
'A-not-valid-1234' is not a valid SID. Change it in the Active Directory user query field 'sid' |
|
Query the Domain
| Description |
Query the Active Directory domain details
|
| API Endpoint |
GET api/rest/activedirectory/domains |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"preferred_ips": [
"172.20.59.86"
],
"domain": "ad.local.infinidat.com",
"gid_attribute_name": "",
"max_translated_groups": null,
"tenant_id": 1,
"unix_services_enabled": false,
"org_unit": "CN=Computers,OU=QA,DC=infinidat,DC=com",
"uid_attribute_name": ""
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Set Max Translated Groups
| Description |
Set the Max Translated Groups of the UNIX Services for the Active Directory domain
|
| API Endpoint |
POST api/rest/activedirectory/domains/set_max_translated_groups |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{}
|
| Returns |
|
| Errors |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
|
Set Preferred Ips
| Description |
Set the Preferred IPs of the Active Directory domain
|
| API Endpoint |
POST api/rest/activedirectory/domains/set_preferred_ips |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
[
"172.168.1.100",
"172.168.2.200"
]
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"preferred_ips": [
"172.20.59.86"
],
"domain": "ad.local.infinidat.com",
"gid_attribute_name": "",
"max_translated_groups": null,
"tenant_id": 1,
"unix_services_enabled": false,
"org_unit": "CN=Computers,OU=QA,DC=infinidat,DC=com",
"uid_attribute_name": ""
},
"error": null
}
|
| Errors |
| INVALID_IP_ADDRESS |
HTTP 400 |
IP address '172.168.x.y' is invalid. A preferred IP must be a valid IPv4 address or a valid domain name |
| ACTIVE_DIRECTORY_PREFERRED_IPS_COUNT_LIMIT |
HTTP 409 |
The number of Active Directory domain controllers exceeds the limit of 10 |
| ACTIVE_DIRECTORY_NOT_JOINED |
HTTP 409 |
This system has not joined any Active Directory domain |
| ACTIVE_DIRECTORY_SET_PREFERRED_IPS_FAILED |
HTTP 409 |
Failed to set the domain controllers for Active Directory domain 'ad.local.infinidat.com': Cannot authenticate with the domain, probably because the system's machine account in the domain is faulty. |
|
Set Unix Services
| Description |
Set the UNIX Services for the Active Directory domain
|
| Approval required |
This is a dangerous operation
Disabling UNIX services may cause some cross-protocol clients to lose access to the filesystem
|
| API Endpoint |
POST api/rest/activedirectory/domains/set_unix_services |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"unix_services_enabled": true
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"preferred_ips": [
"172.20.59.86"
],
"domain": "ad.local.infinidat.com",
"gid_attribute_name": "gidNumber",
"max_translated_groups": 16,
"tenant_id": 0,
"unix_services_enabled": true,
"org_unit": "CN=Computers,OU=QA,DC=infinidat,DC=com",
"uid_attribute_name": "uidNumber"
},
"error": null
}
|
| Errors |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| PARAMETER_CONFLICT |
HTTP 400 |
Parameter 'gid_attribute_name' does not meet a condition: 'must contain only printable US-ASCII characters' |
| WRONG_PARAMETER |
HTTP 400 |
The value (2049) of parameter 'max_translated_groups' does not meet a condition: 'must be between 1 and 2048' |
| APPROVAL_REQUIRED |
HTTP 403 |
Disabling UNIX services may cause some cross-protocol clients to lose access to the filesystem |
| ACTIVE_DIRECTORY_NOT_JOINED |
HTTP 409 |
This system has not joined any Active Directory domain |
|
Certificates
Generate Csr
| Description |
Generate CSR
|
| API Endpoint |
POST api/rest/system/certificates/generate_csr |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
{
"SANDNS": [
"*.url.infinidat.com",
"infinidat.com",
"short.co",
"*.cdn1.com",
"client.infinidat.example.com"
],
"C": "IL",
"SANIP": "",
"L": "Location",
"ST": "State"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "-----BEGIN CERTIFICATE REQUEST-----\nMIIDLjCCAhgCAQAwcTELMAkGA1UEBhMCSUwxDjAMBgNVBAgMBVN0YXRlMREwDwYD\nVQQHDAhMb2NhdGlvbjEYMBYGA1UECgwPSW5maW5pZGF0LCBMdGQuMSUwIwYDVQQD\nDBxpYm94MDEyLmxhYi5pbC5pbmZpbmlkYXQuY29tMIIBIjANBgkqhkiG9w0BAQEF\nAAOCAQ8AMIIBCgKCAQEApoDKbE8NLtF9mYRonjxJQKOUSMNOgulhaBrQ5BVazXnf\n56JqMBO6w5hvJnAAjqLW1yX8GUnO8wQlQiH2ith9g0ZNPb2FIyDSj87Dv11YekAP\ndXXipmgy6u/PO//aLuYEtBjJeGE6xCMrCklmQtOfdOqGa+osnzBEiWXDlpxi302E\nFmg56DiCCwWNltHTRZcaML9pVaQk4DWDoLKH2G0XDkN9sMbBE3Xwwj/iG7M7PACs\nt5HBRveQU7XQRX+A4NSyTiOAQuG8g5SKBGhEMcHqqVRkhpZypL7hmRMlHX1TrHsE\n48RAHAM8HX0hqyvIjrbdlB2A5PdwGXLLgG4CTcJQRQIDAQABoHoweAYJKoZIhvcN\nAQkOMWswaTBnBgNVHREEYDBeghMqLnVybC5pbmZpbmlkYXQuY29tgg1pbmZpbmlk\nYXQuY29tgghzaG9ydC5jb4IKKi5jZG4xLmNvbYIcY2xpZW50LmluZmluaWRhdC5l\neGFtcGxlLmNvbYcErBEAATALBgkqhkiG9w0BAQsDggEBABAwyGTmD2xV88KUr2or\nyaZVVlmfarYmsZjqH68LkCeaNbYIV+ocInNXgXylNdJw5+R1aqctFijXKgSoDU4Y\nXCvC5E9OkkYRg7OnsJJ3WQoAXWA88QE7z+5zv8nIGH2p3W7uUJqYTbjJ4h+raj1b\nhWt9F7il7iLIXwAEcrJz0R12LMa9wH+m4dUpnKBalDD1wOmx81Az+YqV3jUQk9aQ\n+pYmSYLLKZ0P0G1l+RRspqeEN3bV/V7kl2vxLZi+jeKiXDjq3KOdSMHU1pvNWexo\ne/0BRUL9UvCH6Qh+jExP8BVA84wDhLhh0JAM1bdhD5RubyG+IX+Pz8PwUjs/WZva\nvCM=\n-----END CERTIFICATE REQUEST-----\n",
"error": null
}
|
| Errors |
| INVALID_CHARACTERS_IN_DOMAIN_NAME |
HTTP 400 |
Invalid domain name |
| INVALID_IP_ADDRESS |
HTTP 400 |
IP address '1.2.3' is invalid. Invalid IP address found in the list |
| UNKNOWN_PARAMETER |
HTTP 400 |
An unknown parameter was passed: 'UNKNWOWN_' |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
|
Generate Self Signed SSL Certificate
| Description |
Generate self-signed certificate
|
| Approval required |
This is a dangerous operation
Generating a self-signed certificate will reduce the system's security, and may cause scripts / GUI to become inaccessible (depending on your network policy)
|
| API Endpoint |
POST api/rest/system/certificates/generate_self_signed |
| URL Parameters |
| component |
SslCertificateComponentEnum |
Optional target component |
|
| Roles |
ADMIN,
INFINIDAT,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"public_key": {
"raw": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnK7RJK9Wu/tfJk5Y6VYU\nlabayCOx4UJ9081AxS+v/UrDtltvlOWYCm/U6Suz9S9Ly7sQz30g9zEZbDT1+mXi\nrGzUoOeWs+Q74bM8VkKanzTUEdZyTHPktc4ukVq7Cj2AEvhEACJcbHar+vHiExhW\n+dvJ/R9OM7HsozP0Blu6FE6m/TWEBBn+QUU8HafPegVuH3AQpvYeb3uzWctuqNk3\nusZGL7t11ljeQNlmRD6+d08HTVdNzfkgIWEGTxIruH/La93APrnELy3wV8uUYeDx\nmReWgGoP47cNcMH24icXGzNx3PqPADqLMxi6sjalSDgRL8bNZ+xG4fvEA7n3nlNs\nNQIDAQAB\n-----END PUBLIC KEY-----\n",
"modulus": "9CAED124AF56BBFB5F264E58E9561495A6DAC823B1E1427DD3CD40C52FAFFD4AC3B65B6F94E5980A6FD4E92BB3F52F4BCBBB10CF7D20F731196C34F5FA65E2AC6CD4A0E796B3E43BE1B33C56429A9F34D411D6724C73E4B5CE2E915ABB0A3D8012F84400225C6C76ABFAF1E2131856F9DBC9FD1F4E33B1ECA333F4065BBA144EA6FD35840419FE41453C1DA7CF7A056E1F7010A6F61E6F7BB359CB6EA8D937BAC6462FBB75D658DE40D966443EBE774F074D574DCDF9202161064F122BB87FCB6BDDC03EB9C42F2DF057CB9461E0F1991796806A0FE3B70D70C1F6E227171B3371DCFA8F003A8B3318BAB236A54838112FC6CD67EC46E1FBC403B9F79E536C35",
"algorithm": "RSA"
},
"id": "httpd",
"certificate": {
"issued_to": {
"C": "US",
"CN": "ibox012.lab.il.infinidat.com",
"O": "Infinidat, Ltd."
},
"issued_on": 1774519709000,
"issued_by": {
"C": "US",
"CN": "ibox012.lab.il.infinidat.com",
"O": "Infinidat, Ltd."
},
"raw": "-----BEGIN CERTIFICATE-----\nMIIDKzCCAhWgAwIBAgIGAZ0pne+4MAsGCSqGSIb3DQEBCzBOMQswCQYDVQQGEwJV\nUzEYMBYGA1UECgwPSW5maW5pZGF0LCBMdGQuMSUwIwYDVQQDDBxpYm94MDEyLmxh\nYi5pbC5pbmZpbmlkYXQuY29tMB4XDTI2MDMyNjEwMDgyOVoXDTI3MDQyNjA5MDgy\nOVowTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD0luZmluaWRhdCwgTHRkLjElMCMG\nA1UEAwwcaWJveDAxMi5sYWIuaWwuaW5maW5pZGF0LmNvbTCCASIwDQYJKoZIhvcN\nAQEBBQADggEPADCCAQoCggEBAJyu0SSvVrv7XyZOWOlWFJWm2sgjseFCfdPNQMUv\nr/1Kw7Zbb5TlmApv1Okrs/UvS8u7EM99IPcxGWw09fpl4qxs1KDnlrPkO+GzPFZC\nmp801BHWckxz5LXOLpFauwo9gBL4RAAiXGx2q/rx4hMYVvnbyf0fTjOx7KMz9AZb\nuhROpv01hAQZ/kFFPB2nz3oFbh9wEKb2Hm97s1nLbqjZN7rGRi+7ddZY3kDZZkQ+\nvndPB01XTc35ICFhBk8SK7h/y2vdwD65xC8t8FfLlGHg8ZkXloBqD+O3DXDB9uIn\nFxszcdz6jwA6izMYurI2pUg4ES/GzWfsRuH7xAO5955TbDUCAwEAAaMTMBEwDwYD\nVR0RBAgwBocErBEAATALBgkqhkiG9w0BAQsDggEBAJJysPelXreKvN4R7GrS7yZL\nWS+VGAaPZd/KeAzAn+V4fHH5eq1orXiY0Yc9WEK7YLkMfqSDTl0HyHcHK2VlIsxS\nIGWxU4UK+RMCJj8Hcbaq/qcnoLcMaQSt6s0WBP1CpLq4ky67G/doxRb+BzOjl6E/\njUg0ji8NYYtIi1qvUP22YCxGK20PCWUixVXM785fDNrRFz1oWPMvKYZ3Rv+baEmE\nxwCKG8Hj28AStr9yhKsjnwiPVqaxEkADHQem/RBSjp/poupGUiu61tIOoypEOnV2\nB3i2vm48Vj4b7jT4EJP9KC0u2t5qIvapqt58/PGbJT0cWLgKpU/P2P3udps2Lmw=\n-----END CERTIFICATE-----\n",
"version": 3,
"signature_algorithm": "SHA256WITHRSA",
"serial_number": "19D299DEFB8",
"expired": false,
"expires_on": 1808730509000
}
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Generating a self-signed certificate will reduce the system's security, and may cause scripts / GUI to become inaccessible (depending on your network policy) |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| CERTIFICATE_INVALID |
HTTP 409 |
The certificate provided is not valid. Reason: General error occurred |
|
Get SSL Certificate Info
| Description |
Get current certificates info
|
| API Endpoint |
GET api/rest/system/certificates |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"public_key": {
"raw": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0D4sAcBWM61roQP8lC7V\nD9xNkEM5nyFfqIELez5SIFwZ1kAXju451rhhO6cpmA52FmSRrlic0Cw0IRGylLhK\nRDJWJ0FO4jnaZLYaL8mJDIik+pQ0xUlphqDvamUz3zGrF4/fZ8d6PFmNL+OZXFcC\nn6Y6USKfgUhRybShkef/wvpCpTozcvyljCFpCcM2pBnAwP0DVzPaubzoHhRNxN6L\nkLxQG7Y0TFEi2O8o4n6vf/eJlbjCAOVxsllPlRcTIng1AyrSA6rHI+rnfrvmcVM4\nXcw9G7uE+icRoLuJQhRu2+YS5kp+elaK2Ya9u3BYzTDuyo0WmbYeaNCu4o+YWwZf\nNQIDAQAB\n-----END PUBLIC KEY-----\n",
"modulus": "D03E2C01C05633AD6BA103FC942ED50FDC4D9043399F215FA8810B7B3E52205C19D640178EEE39D6B8613BA729980E76166491AE589CD02C342111B294B84A44325627414EE239DA64B61A2FC9890C88A4FA9434C5496986A0EF6A6533DF31AB178FDF67C77A3C598D2FE3995C57029FA63A51229F814851C9B4A191E7FFC2FA42A53A3372FCA58C216909C336A419C0C0FD035733DAB9BCE81E144DC4DE8B90BC501BB6344C5122D8EF28E27EAF7FF78995B8C200E571B2594F951713227835032AD203AAC723EAE77EBBE67153385DCC3D1BBB84FA2711A0BB8942146EDBE612E64A7E7A568AD986BDBB7058CD30EECA8D1699B61E68D0AEE28F985B065F35",
"algorithm": "RSA"
},
"id": "httpd",
"certificate": {
"issued_to": {
"C": "US",
"CN": "30005",
"O": "Infinidat, Ltd."
},
"issued_on": 1747297654000,
"issued_by": {
"C": "US",
"CN": "Infinilab",
"O": "Infinidat, Ltd."
},
"raw": "-----BEGIN CERTIFICATE-----\nMIIDRDCCAiygAwIBAgIUc3b774bh58LfrZ/G75F7pJ3ouGIwDQYJKoZIhvcNAQEL\nBQAwOzELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD0luZmluaWRhdCwgTHRkLjESMBAG\nA1UEAwwJSW5maW5pbGFiMCAXDTI1MDUxNTA4MjczNFoYDzIwNzUwNTAzMDgyNzM0\nWjA3MQswCQYDVQQGEwJVUzEYMBYGA1UECgwPSW5maW5pZGF0LCBMdGQuMQ4wDAYD\nVQQDDAUzMDAwNTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANA+LAHA\nVjOta6ED/JQu1Q/cTZBDOZ8hX6iBC3s+UiBcGdZAF47uOda4YTunKZgOdhZkka5Y\nnNAsNCERspS4SkQyVidBTuI52mS2Gi/JiQyIpPqUNMVJaYag72plM98xqxeP32fH\nejxZjS/jmVxXAp+mOlEin4FIUcm0oZHn/8L6QqU6M3L8pYwhaQnDNqQZwMD9A1cz\n2rm86B4UTcTei5C8UBu2NExRItjvKOJ+r3/3iZW4wgDlcbJZT5UXEyJ4NQMq0gOq\nxyPq53675nFTOF3MPRu7hPonEaC7iUIUbtvmEuZKfnpWitmGvbtwWM0w7sqNFpm2\nHmjQruKPmFsGXzUCAwEAAaNCMEAwHQYDVR0OBBYEFDu8Zxb/g5Ft19YS5ZwFjV5i\n3ZhoMB8GA1UdIwQYMBaAFPxvkOhIjYc5QWGzXfBuGC8ib9R2MA0GCSqGSIb3DQEB\nCwUAA4IBAQBVGWM7VEWAZSXfSATxZrEZgtkZ78KE+jC+q4eLUJew4N+GKpUhikhy\ntiVTwgFvZyxLa0IPqLIXGKcAPNxtRVFYWCuy8eKd2qQbJXHSnrnNk9gjSvtZOMXw\nayfNKwkZG3hdrmsQ7bBJcipbdgYBNTuc78zWkeoaud93gF+FZ2gDNy/wZAOW0Xlx\ntMBur/LbAL1ME1PJ0ysM63HyAhue8oJg7llKs+6NOdhaeY4kLdvxNcn0FmWUyM1R\n5ZeQ5U8J1tPeNnjvI7Ww+Ykp+U4e6VEPBFtXiJnea7eLvStkxUnc4+G/HNYYJ4Jt\nvX8EbUjTqCTjrI7aOyDj7+UlHfzICLub\n-----END CERTIFICATE-----\n",
"version": 3,
"signature_algorithm": "SHA256withRSA",
"serial_number": "7376FBEF86E1E7C2DFAD9FC6EF917BA49DE8B862",
"expired": false,
"expires_on": 3324097654000
}
}
],
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
|
Upload Csr
| Description |
Upload CSR-signed certificate
|
| API Endpoint |
POST api/rest/system/certificates/upload_csr |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
"--Boundary_17_1954790701_1774519729033\r\nContent-Type: application/octet-stream\r\nContent-Disposition: form-data; filename=\"upload\"; name=\"upload\"\r\n\r\n----BEGIN CERTIFICATE----\r\n--Boundary_17_1954790701_1774519729033--\r\n"
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"public_key": {
"raw": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmS18B7ryTf6Idn4OHOnw\nzIUMaCw4f7Y+wWiv2W+VgSNt+HusfJYkx04KeSsWN2pk4mXfXa0g/Fys4zqQeH6C\nnnFC29IZkFuBrnYFuKhThN8L4ohO0V/6bV5Q9/PvgjyZWMRa2t9ZnYhlozadv/ri\ndoBwz+Ml4kbVWDrlE89VeHuCZFGLWRjuwsmrI6dqr0MRECJf5BeqUvpaCdQcuj9d\npui/ZIj50Nn+urIHotb1Ba08gznJ1MTtfo/r6R8kbcslvek5o9cVtp0axnHgtrRH\n5s1ApaWT8Wf5XfJ3DKcs0GBOfDdyNhzI+1zITlmPf5ATHR48lMRR3RsxeBMmXVlm\nVwIDAQAB\n-----END PUBLIC KEY-----\n",
"modulus": "992D7C07BAF24DFE88767E0E1CE9F0CC850C682C387FB63EC168AFD96F9581236DF87BAC7C9624C74E0A792B16376A64E265DF5DAD20FC5CACE33A90787E829E7142DBD219905B81AE7605B8A85384DF0BE2884ED15FFA6D5E50F7F3EF823C9958C45ADADF599D8865A3369DBFFAE2768070CFE325E246D5583AE513CF55787B8264518B5918EEC2C9AB23A76AAF431110225FE417AA52FA5A09D41CBA3F5DA6E8BF6488F9D0D9FEBAB207A2D6F505AD3C8339C9D4C4ED7E8FEBE91F246DCB25BDE939A3D715B69D1AC671E0B6B447E6CD40A5A593F167F95DF2770CA72CD0604E7C3772361CC8FB5CC84E598F7F90131D1E3C94C451DD1B317813265D596657",
"algorithm": "RSA"
},
"id": "httpd",
"certificate": {
"issued_to": {
"C": "IL",
"ST": "State",
"CN": "ibox012.lab.il.infinidat.com",
"O": "Infinidat, Ltd.",
"L": "Location"
},
"issued_on": 1774519741000,
"issued_by": {
"C": "US",
"CN": "ca.com",
"O": "Infinidat, Ltd."
},
"raw": "-----BEGIN CERTIFICATE-----\nMIIEvjCCA6igAwIBAgIGAZ0pnmypMAsGCSqGSIb3DQEBCzA4MQ8wDQYDVQQDDAZj\nYS5jb20xGDAWBgNVBAoMD0luZmluaWRhdCwgTHRkLjELMAkGA1UEBhMCVVMwHhcN\nMjYwMzI2MTAwOTAxWhcNMjcxMTE2MTAwOTAxWjBxMQswCQYDVQQGEwJJTDEOMAwG\nA1UECAwFU3RhdGUxETAPBgNVBAcMCExvY2F0aW9uMRgwFgYDVQQKDA9JbmZpbmlk\nYXQsIEx0ZC4xJTAjBgNVBAMMHGlib3gwMTIubGFiLmlsLmluZmluaWRhdC5jb20w\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCZLXwHuvJN/oh2fg4c6fDM\nhQxoLDh/tj7BaK/Zb5WBI234e6x8liTHTgp5KxY3amTiZd9drSD8XKzjOpB4foKe\ncULb0hmQW4GudgW4qFOE3wviiE7RX/ptXlD38++CPJlYxFra31mdiGWjNp2/+uJ2\ngHDP4yXiRtVYOuUTz1V4e4JkUYtZGO7Cyasjp2qvQxEQIl/kF6pS+loJ1By6P12m\n6L9kiPnQ2f66sgei1vUFrTyDOcnUxO1+j+vpHyRtyyW96Tmj1xW2nRrGceC2tEfm\nzUClpZPxZ/ld8ncMpyzQYE58N3I2HMj7XMhOWY9/kBMdHjyUxFHdGzF4EyZdWWZX\nAgMBAAGjggGXMIIBkzAJBgNVHRMEAjAAMIIBMwYDVR0OBIIBKgSCASYwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCZLXwHuvJN/oh2fg4c6fDMhQxoLDh/\ntj7BaK/Zb5WBI234e6x8liTHTgp5KxY3amTiZd9drSD8XKzjOpB4foKecULb0hmQ\nW4GudgW4qFOE3wviiE7RX/ptXlD38++CPJlYxFra31mdiGWjNp2/+uJ2gHDP4yXi\nRtVYOuUTz1V4e4JkUYtZGO7Cyasjp2qvQxEQIl/kF6pS+loJ1By6P12m6L9kiPnQ\n2f66sgei1vUFrTyDOcnUxO1+j+vpHyRtyyW96Tmj1xW2nRrGceC2tEfmzUClpZPx\nZ/ld8ncMpyzQYE58N3I2HMj7XMhOWY9/kBMdHjyUxFHdGzF4EyZdWWZXAgMBAAEw\nTwYDVR0jBEgwRqE8pDowODEPMA0GA1UEAwwGY2EuY29tMRgwFgYDVQQKDA9JbmZp\nbmlkYXQsIEx0ZC4xCzAJBgNVBAYTAlVTggYBnSmebKYwCwYJKoZIhvcNAQELA4IB\nAQAZQvVyiI56bNX3Rcn0iEOQ1KPf1wQZlhUo1SVSPtHdOBJaM9tOVTFS3aBXKNyR\n8aZ1BO7vIA/3nzGWF21HXvdPMR+pZbz7kBHYDoH0/+gbhq/zzaiY+r+NsN+waQZN\n4abR4W9b9svGicEL0GB/tRRhbepWdF6FISzog8QkwHrJcXapwMGqXJnVn+iyS1cb\n7OaNa7lNytEjsjb9+PoiMBO98DAXj1Gfz6gdhBja3GREuvBTudFKaOu/8nPfVnCI\nHjTW6eym8Sn9ZnBBLhC0o5VJ9/TPmQfdigjeJWwLBUNjVcmeqCSatJUBtjmhNoeA\nOt9UQ4JXiz7S7mIVVTOuqS+J\n-----END CERTIFICATE-----\n",
"version": 3,
"signature_algorithm": "SHA256WITHRSA",
"serial_number": "19D299E6CA9",
"expired": false,
"expires_on": 1826359741000
}
},
"error": null
}
|
| Errors |
| MALFORMED_CERTIFICATE |
HTTP 400 |
The certificate provided is malformed or in unsupported format |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| CSR_MISMATCH |
HTTP 409 |
The certificate provided does not match the certificate request generated previously |
| CERTIFICATE_INVALID |
HTTP 409 |
The certificate provided is not valid. Reason: General error occurred |
|
Upload SSL Certificate and Key
| Description |
Upload certificate + key
|
| API Endpoint |
POST api/rest/system/certificates |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"public_key": {
"raw": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtI32OhVZrkWEddGjxRG4\nV+9wI/SoOv+Rwyo/S1Ns6+S5WGKRaqTnXL1UM6dcFxk48t2FsHSDdrCwvXbQxudv\nzZ/LEL6h0kYWHLdWl3O/CRVt3jpSSLEfnaVFsBwzFXxe7iLjJY9Dp2UxnGcgEbgq\nuXxidpuPies1bWQLEjhst8cWxBr6Pidp7XvJhHVi4A3S70pe/7ic8vXcXLyX3zX1\nZGvGs7TmwlLKE0rFo+ts1jJNhGSUmi3K8EtYOvFHBFqsQDSwh+KegHmUWJNdzoz1\nb1uzR4YUCLxVVUW3saS2rbKRwAC9+6EK5C+Po6ZL3FQ4frwnDkXHUoOxU49uFUjR\nbwIDAQAB\n-----END PUBLIC KEY-----\n",
"modulus": "B48DF63A1559AE458475D1A3C511B857EF7023F4A83AFF91C32A3F4B536CEBE4B95862916AA4E75CBD5433A75C171938F2DD85B0748376B0B0BD76D0C6E76FCD9FCB10BEA1D246161CB7569773BF09156DDE3A5248B11F9DA545B01C33157C5EEE22E3258F43A765319C672011B82AB97C62769B8F89EB356D640B12386CB7C716C41AFA3E2769ED7BC9847562E00DD2EF4A5EFFB89CF2F5DC5CBC97DF35F5646BC6B3B4E6C252CA134AC5A3EB6CD6324D8464949A2DCAF04B583AF147045AAC4034B087E29E80799458935DCE8CF56F5BB347861408BC555545B7B1A4B6ADB291C000BDFBA10AE42F8FA3A64BDC54387EBC270E45C75283B1538F6E1548D16F",
"algorithm": "RSA"
},
"id": "httpd",
"certificate": {
"issued_to": {
"C": "US",
"1.2.840.113549.1.9.1": "FhdzbW9yZGVoYXlAaW5maW5pZGF0LmNvbQ==",
"CN": "ibox.infinidat.com",
"L": "TLV",
"O": "Infinidat LTD",
"ST": "TLV",
"OU": "Infinidat LTD"
},
"issued_on": 1663662577000,
"issued_by": {
"C": "US",
"1.2.840.113549.1.9.1": "FhdzbW9yZGVoYXlAaW5maW5pZGF0LmNvbQ==",
"CN": "ibox.infinidat.com",
"L": "TLV",
"O": "Infinidat LTD",
"ST": "TLV",
"OU": "Infinidat LTD"
},
"raw": "-----BEGIN CERTIFICATE-----\nMIIEBzCCAu+gAwIBAgIUQ8n/eCTq2mE7xuKq67RvDmWPdUYwDQYJKoZIhvcNAQEL\nBQAwgZ4xCzAJBgNVBAYTAlVTMQwwCgYDVQQIDANUTFYxDDAKBgNVBAcMA1RMVjEW\nMBQGA1UECgwNSW5maW5pZGF0IExURDEWMBQGA1UECwwNSW5maW5pZGF0IExURDEb\nMBkGA1UEAwwSaWJveC5pbmZpbmlkYXQuY29tMSYwJAYJKoZIhvcNAQkBFhdzbW9y\nZGVoYXlAaW5maW5pZGF0LmNvbTAgFw0yMjA5MjAwODI5MzdaGA8yMDYyMDkxMDA4\nMjkzN1owgZ4xCzAJBgNVBAYTAlVTMQwwCgYDVQQIDANUTFYxDDAKBgNVBAcMA1RM\nVjEWMBQGA1UECgwNSW5maW5pZGF0IExURDEWMBQGA1UECwwNSW5maW5pZGF0IExU\nRDEbMBkGA1UEAwwSaWJveC5pbmZpbmlkYXQuY29tMSYwJAYJKoZIhvcNAQkBFhdz\nbW9yZGVoYXlAaW5maW5pZGF0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC\nAQoCggEBALSN9joVWa5FhHXRo8URuFfvcCP0qDr/kcMqP0tTbOvkuVhikWqk51y9\nVDOnXBcZOPLdhbB0g3awsL120Mbnb82fyxC+odJGFhy3VpdzvwkVbd46UkixH52l\nRbAcMxV8Xu4i4yWPQ6dlMZxnIBG4Krl8Ynabj4nrNW1kCxI4bLfHFsQa+j4nae17\nyYR1YuAN0u9KXv+4nPL13Fy8l9819WRrxrO05sJSyhNKxaPrbNYyTYRklJotyvBL\nWDrxRwRarEA0sIfinoB5lFiTXc6M9W9bs0eGFAi8VVVFt7Gktq2ykcAAvfuhCuQv\nj6OmS9xUOH68Jw5Fx1KDsVOPbhVI0W8CAwEAAaM5MDcwCQYDVR0TBAIwADALBgNV\nHQ8EBAMCBeAwHQYDVR0OBBYEFI8C1qJ7qQZ2fs+TWVyZoDLvtV48MA0GCSqGSIb3\nDQEBCwUAA4IBAQA4tC/osF87q2/Tl/JzCaguhTkRIwn6kwj22GdvMfkNrj118wdo\nWimSso9mlNGmZXpuiVwDccJF5DLHKOAMMRvkn9m5Rnqmo3VGReQY3RSr6mYBfvhN\nXxT8DV4tzrv5DlgXGl+QRGAC40YWccdZxGl9jK35uZDsSfyr6y4G5v9v7KbGLb1m\nF89d2gfpOmnYyTS9G0gF2PAZTE0IvbnMAf02v7B3lvnXo4a41AQMRPXb2hojFx3N\nROighHxXLDcCGYz/XAe+NtGiIA6+BSSrlqT47UFXPraNwmcwhXIVkEqJy04XKz43\n5TtbulF5swLG1gLbxpFRQwhn4BR5EJloZoWj\n-----END CERTIFICATE-----\n",
"version": 3,
"signature_algorithm": "SHA256WITHRSA",
"serial_number": "43C9FF7824EADA613BC6E2AAEBB46F0E658F7546",
"expired": false,
"expires_on": 2925102577000
}
},
"error": null
}
|
| Errors |
| MALFORMED_KEY |
HTTP 400 |
The key provided is malformed or in unsupported format |
| MALFORMED_CERTIFICATE |
HTTP 400 |
The certificate provided is malformed or in unsupported format |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| INVALID_CERTIFICATE |
HTTP 400 |
Certificate is invalid. Reason: signature validation failed |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| CERTIFICATE_INVALID |
HTTP 409 |
The certificate provided is not valid. Reason: General error occurred |
|
Components
This collection resource holds all physical and software components in the system that cannot be dynamically created or deleted.
The API provides indication of the health status of each component, and a list of alerts on each component that affects its status.
Get the InfiniBox Components
| Description |
Get information about the rack and its components.
|
| API Endpoint |
GET api/rest/components/ |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"enclosures_number": 8,
"patch_panels": [],
"enclosures": [
{
"state_description": "",
"vendor": "NEWISYS",
"last_probe_timestamp": 1390254009000,
"firmware": "0509",
"drives": [
{
"state_description": "",
"drive_index": 1,
"vendor": "SEAGATE ",
"product_id": "",
"hw": {
"pending_reallocations": 10,
"state": "OK",
"reallocations": 10,
"temperature": 10,
"power_on_hours": 10
},
"enclosure_index": 1,
"firmware": "n/a",
"encryption_state": null,
"probe_ttl": 86400000,
"failure_reason": "unknown",
"state": "ACTIVE",
"product_rev": "",
"bytes_capacity": 0,
"serial_number": "Z1Y09L1E",
"model": "ST3000NM0023 ",
"last_probe_timestamp": 1390251656000,
"nodes_access": [
false,
false,
false
],
"id": 1
},
{
"state_description": "",
"drive_index": 2,
"vendor": "SEAGATE ",
"product_id": "",
"hw": {
"pending_reallocations": 0,
... TRUNCATED ...
|
| Errors |
See general list of error codes.
|
Consistency Group
Add Member
| Description |
Add a dataset to a consistency group
|
| Approval required |
This is a dangerous operation
If you add snapshot 'snapshot_name' to snap group 'sg_name', the snapshot's retention time of date will be cleared
|
| API Endpoint |
POST api/rest/cgs/{id}/members |
| URL Parameters |
| id |
long |
The ID of the consistency group |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"replication_pairs_info": null,
"dataset_id": 1001,
"active_active_info": null,
"replication_pair_info": null
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"remote_snapshot_retention": null,
"created_by_snapshot_policy_id": null,
"updated_at": 1774519077045,
"snapshot_retention": null,
"created_by_snapshot_policy_name": null,
"members_count": 1,
"snapshot_policy_name": null,
"remote_snapshot_retention_lock": null,
"id": 1002,
"parent_id": 0,
"lock_state": "UNLOCKED",
"created_by_schedule_id": null,
"type": "MASTER",
"pool_name": "auto-pool--4500bf9a-26f3-4",
"replication_types": [
"NONE"
],
"has_children": false,
"lock_expires_at": null,
"replica_ids": [],
"created_by_schedule_name": null,
"rmr_snapshot_guid": null,
"name": "auto-cg_-ec236eb5-c934-4c2",
"tenant_id": 1,
"created_at": 1774519076921,
"snapshot_expires_at": null,
"pool_id": 1000,
"snapshot_policy_id": null,
"is_replicated": false
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('replication_pair_info') |
| MISSING_FIELD |
HTTP 400 |
A field ('active_active_info') is missing in an object passed |
| APPROVAL_REQUIRED |
HTTP 403 |
If you add snapshot 'auto-volume--bfed16c3-be02' to snap group 'sg', the snapshot's retention time of 1774529846 will be cleared |
| REMOTE_PERMISSION_REQUIRED |
HTTP 403 |
The operation failed as it requires permission on the remote system |
| OPERATION_CANNOT_BE_DONE_ON_MULTI_TARGET_REPLICA |
HTTP 409 |
Adding a replicated member to CG failed because it is not supported for multi target replica |
| CANNOT_ADD_LOCKED_SNAPSHOT_TO_LOCKED_SG |
HTTP 409 |
Cannot add a locked snapshot to a locked snap group due to their different expiration dates |
| DATASET_NOT_IN_CG_POOL |
HTTP 409 |
The dataset is not in the same pool as the consistency group |
| ILLEGAL_CG_DATASET |
HTTP 409 |
Snapshots cannot be added to consistency groups. |
| ILLEGAL_CG_DATASET_TYPE |
HTTP 409 |
A filesystem cannot be added to a consistency group |
| REPLICATED_DATASETS_LIMIT |
HTTP 409 |
The system has reached the maximum number of replicated datasets |
| REPLICATED_MEMBER_CANNOT_BE_ADDED_TO_AA_REPLICA |
HTTP 409 |
Cannot add a replicated member 'auto-volume--065d5f77-a8bf' to an active-active replica. Delete the member's replica before adding to the consistency group |
| CANNOT_ADD_MEMBER_WITH_NON_MATCHING_PAIRS_REPLICA_IDS |
HTTP 409 |
Cannot add a member to a multi-target CG when the member pairs' Replica IDs do not match the CG's Replica IDs |
| ACTIVE_ACTIVE_PEER_CANNOT_BE_ADDED_TO_CG |
HTTP 409 |
Cannot add an active-active peer volume to a consistency group |
| CANNOT_ADD_MEMBER_WITH_NON_MATCHING_REPLICA_PAIR_COUNT |
HTTP 409 |
Cannot add a member to a multi-target CG when the number of member pairs does not match the number of CG replicas |
| REPLICA_PAIR_ALREADY_EXISTING |
HTTP 409 |
When adding a replicated entity to a replicated consistency group, no entity pair may be supplied in the command |
| SOURCE_DATASET_IS_REPLICATED |
HTTP 409 |
Replicated source datasets cannot be added to a non-replicated consistency group: auto-volume--868a20ad-a5dc |
| TARGET_DATASET_IS_REPLICATED |
HTTP 409 |
Replicated target datasets cannot be added to a consistency group: vol_a36090f6-cc14-4bd0-91c4-d0e9189297a2_replica |
| DATASET_ALREADY_IN_A_CG |
HTTP 409 |
The dataset is already a part of a consistency group |
| CANNOT_ADD_UNLOCKED_SNAPSHOT_TO_LOCKED_SG |
HTTP 409 |
Cannot add an unlocked snapshot to a locked snap group |
| CANNOT_ADD_MEMBER_WITH_MISSING_REPLICA_ID |
HTTP 409 |
The 'replica_id' field must be set when adding a CG member pair to a multi-target CG |
| SNAPSHOT_AND_SG_BOTH_HAVE_RETENTION |
HTTP 409 |
Snapshot 'auto-volume--4e3354fa-2205' cannot be added to snap group 'auto-sg_-d1f1b95a-8f77-4aa' because they both have a retention time |
| CG_MEMBER_CANNOT_BE_ADDED_TO_SYNC_REPLICA |
HTTP 409 |
Cannot add a member to a replicated consistency group whose replication type is SYNC. Change the replication type to ASYNC, add the member and then change the replication type back to SYNC |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Adding a member to a CG concurrent replica is not supported |
| GROUP_MEMBERS_LIMIT_EXCEEDED |
HTTP 409 |
A consistency group cannot have more than 10 members |
| CG_MEMBER_TYPE_MISMATCH |
HTTP 409 |
The synchronization types of the member and the consistency group have to be identical. In addition, a member can be added only to a replicated consistency group whose type is ASYNC |
| CANNOT_ADD_MEMBER_DUE_TO_SNAPSHOT_REPLICATION_MISMATCH |
HTTP 409 |
The new member volume 'auto-volume--1369a3a5-2634' replica and the CG 'auto-cg_-395d578f-7c69-49f' replica do not have the same snapshots replication settings |
| CG_MEMBER_CANNOT_BE_ADDED_TO_ACTIVE_AA_REPLICA |
HTTP 409 |
Cannot add a member 'auto-volume--065d5f77-a8bf' to an active active-active replica. Suspend the replica before adding the member |
| CANNOT_ADD_LOCKED_SNAPSHOT_TO_UNLOCKED_SG |
HTTP 409 |
Cannot add a locked snapshot to an unlocked snap group |
| CG_ADD_MEMBER_BASE_SNAPSHOT_NOT_FOUND |
HTTP 409 |
Can't find base snapshot for the new member of the consistency group |
| REPLICA_OPERATION_NOT_ALLOWED_ON_SOURCE_AND_TARGET |
HTTP 409 |
This operation cannot be performed on entity 'auto-cg_-550a8037-41c3-4ef' which is both a replication source and target |
| REPLICA_IS_RESERVED_FOR_INFINISAFE |
HTTP 409 |
Replica is reserved for infinisafe, moving the member is not allowed |
| REPLICA_PARTIAL_FAILURE |
HTTP 409 |
Replica(s) add member failed, replica(s) status is unknown. User intervention is required. FM service: core, command rc: FAIL, error_string: null, error_code: FM_DUMMY_CODE, error_description: |
| SNAPSHOT_CANNOT_BE_ADDED_TO_SG_WITH_RETENTION |
HTTP 409 |
Snap group 'auto-sg_-e7194f03-0465-413' is only retained until 1970-01-21 14:55:29, and snapshots cannot be added to it |
|
Add Member to Snapshot Group
| Description |
Add a snapshot to a snapshot group
|
| API Endpoint |
POST api/rest/cgs/{id}/members |
| URL Parameters |
| id |
long |
The ID of the consistency group |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"dataset_id": 1006
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"remote_snapshot_retention": null,
"created_by_snapshot_policy_id": null,
"updated_at": 1774519977946,
"snapshot_retention": null,
"created_by_snapshot_policy_name": null,
"members_count": 2,
"snapshot_policy_name": null,
"remote_snapshot_retention_lock": null,
"id": 1004,
"parent_id": 1001,
"lock_state": "UNLOCKED",
"created_by_schedule_id": null,
"type": "SNAPSHOT",
"pool_name": "auto-pool--c535a780-2c6d-4",
"replication_types": [
"NONE"
],
"has_children": false,
"lock_expires_at": null,
"replica_ids": [],
"created_by_schedule_name": null,
"rmr_snapshot_guid": null,
"name": "sg",
"tenant_id": 1,
"created_at": 1774519977640,
"snapshot_expires_at": null,
"pool_id": 1000,
"snapshot_policy_id": null,
"is_replicated": false
},
"error": null
}
|
| Errors |
| SNAPSHOT_PARENT_HAS_ALREADY_MEMBER_IN_SG |
HTTP 409 |
The snapshot 'auto-volume--1d00b3d1-6dab' cannot be added to the snapshot group 'sg', since this snapshot group already contains another snapshot - 'auto-volume--b22ce6e6-670f', of the same parent volume |
| ILLEGAL_CG_DATASET_TYPE |
HTTP 409 |
A filesystem cannot be added to a consistency group |
| DATASET_ALREADY_IN_A_CG |
HTTP 409 |
The dataset is already a part of a consistency group |
| SNAPSHOT_PARENT_IS_NOT_IN_CG |
HTTP 409 |
The snapshot 'auto-volume--ae853b88-d4aa' cannot be added to the snapshot group 'sg', since its parent 'vol3' is not a member of the consistency group 'auto-cg_-2688091f-3572-46e' |
| DATASET_NOT_SNAPSHOT |
HTTP 409 |
The volume cannot be a master volume |
|
Create Consistency Group
| Description |
Creates a consistency group or a snapshot group
|
| API Endpoint |
POST api/rest/cgs |
| URL Parameters |
| replicate_to_async_target |
boolean |
Replicate the created snapshot/s to the remote side |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"snapshot_policy_id": 0,
"name": "auto-cg_-ec236eb5-c934-4c2",
"pool_id": 1000
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"remote_snapshot_retention": null,
"created_by_snapshot_policy_id": null,
"updated_at": 1774519076921,
"snapshot_retention": null,
"created_by_snapshot_policy_name": null,
"members_count": 0,
"snapshot_policy_name": null,
"remote_snapshot_retention_lock": null,
"id": 1002,
"parent_id": 0,
"lock_state": "UNLOCKED",
"created_by_schedule_id": null,
"type": "MASTER",
"pool_name": "auto-pool--4500bf9a-26f3-4",
"replication_types": [
"NONE"
],
"has_children": false,
"lock_expires_at": null,
"replica_ids": [],
"created_by_schedule_name": null,
"rmr_snapshot_guid": null,
"name": "auto-cg_-ec236eb5-c934-4c2",
"tenant_id": 1,
"created_at": 1774519076921,
"snapshot_expires_at": null,
"pool_id": 1000,
"snapshot_policy_id": null,
"is_replicated": false
},
"error": null
}
|
| Errors |
| MISSING_FIELD |
HTTP 400 |
A field ('snap_prefix' or 'snap_suffix') is missing in an object passed |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('snapshot_retention') |
| WRONG_PARAMETER |
HTTP 400 |
The value ( ) of parameter 'snap_prefix' does not meet a condition: 'must include valid name characters only' |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
| SG_MEMBER_INVALID_NAME_LENGTH |
HTTP 400 |
Snapshot group member generated name, which is a combination of the member's name with the prefix is too long. Name must be of length between 1 and 65 characters |
| SNAPSHOT_POLICY_NOT_FOUND |
HTTP 404 |
Snapshot policy not found |
| POOL_NOT_FOUND |
HTTP 404 |
Pool not found |
| DATASET_COUNT_LIMIT |
HTTP 409 |
The request exceeds the dataset count limit |
| UNSUPPORTED_REMOTE_SNAPSHOT_RETENTION_LOCK |
HTTP 409 |
The 'remote_snapshot_retention_lock' field can only be set for snapshot groups of replicated consistency groups |
| INVALID_LOCK_DURATION_EXCEEDS_SNAPSHOT_RETENTION |
HTTP 409 |
A replicated snapshot group's lock duration cannot be longer than the snapshot group's retention |
| INVALID_LOCK_ENTITY_TYPE |
HTTP 409 |
Locking MASTER is not allowed |
| REPLICA_INCONSISTENT_DATASETS |
HTTP 409 |
Taking a snapshot cannot be completed because at least one dataset has not reached a consistent state |
| REMOTE_SNAPSHOT_RETENTION_INVALID |
HTTP 409 |
The 'remote_snapshot_retention' field for source snapshot groups to be replicated cannot be set to null |
| CG_COUNT_LIMIT |
HTTP 409 |
Consistency group count limit reached |
| CG_SNAP_WITH_NO_MEMBERS |
HTTP 409 |
Cannot take a snapshot of an empty consistency group |
| VOLUME_NAME_CONFLICT |
HTTP 409 |
An entity with this name already exists |
| ILLEGAL_POOL_TYPE_FOR_CG |
HTTP 409 |
A CG cannot be created within a vVol pool |
| MAX_TREE_DEPTH |
HTTP 409 |
Tree depth limit reached |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Please try to suspend the replica again, creating a snapshot group from an Active Active replica which is not consistent is not supported |
| MAX_FAMILY_SIZE |
HTTP 409 |
The volume family whose root is 'vol_5711479d-d307-4d6c-bd69-24a9f857ad87_replica' now has 1 snapshots, which is the maximum allowed. New snapshots for this family can only be created after other snapshots are deleted |
| ILLEGAL_POOL_TYPE |
HTTP 409 |
Cannot create a consistency group 'newCG' in S3 pool 's3p1' because it is dedicated for S3 buckets |
| INVALID_LOCK_DURATION |
HTTP 409 |
Lock expiry cannot exceed 365 days |
| SG_SNAP_NOT_ALLOWED |
HTTP 409 |
Cannot take a snapshot of a snapshot group |
| REPLICA_ALREADY_RECLAIMED |
HTTP 409 |
The entity requested is a replication staging area and has already been reclaimed with name svol_856e1731-4637-4ca6-92f4-5ad596b43874_replica_ |
| UNSUPPORTED_REMOTE_SNAPSHOT_RETENTION |
HTTP 409 |
The 'remote_snapshot_retention' field can only be set for snapshot groups of replicated consistency groups |
| INVALID_LOCK_EXPIRY |
HTTP 409 |
Lock expiry date has to be in the future |
| SG_CG_COUNT_LIMIT |
HTTP 409 |
A new snapshot group cannot be created. The consistency group has reached the maximum number of snapshot groups |
| CG_NAME_CONFLICT |
HTTP 409 |
An entity with this name already exists |
| REMOTE_SNAPSHOT_RETENTION_LOCK_INVALID |
HTTP 409 |
The 'remote_snapshot_retention_lock' field for source snapshot groups to be replicated cannot be set to null |
|
Delete Consistency Group
| Description |
Disband a single consistency group
|
| Approval required |
This is a dangerous operation
Deleting the type group will break the consistency of its members. In case the delete_members parameters is set to yes, the type group members are deleted.
|
| API Endpoint |
DELETE api/rest/cgs/{id} |
| URL Parameters |
| id |
long |
The id of the consistency group to delete |
| delete_members |
boolean |
Select whether to delete the group's datasets as well |
| force_if_snapshot_locked |
boolean |
force_if_snapshot_locked |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"remote_snapshot_retention": null,
"created_by_snapshot_policy_id": null,
"updated_at": 1774519805637,
"snapshot_retention": null,
"created_by_snapshot_policy_name": null,
"members_count": 2,
"snapshot_policy_name": null,
"remote_snapshot_retention_lock": null,
"id": 1001,
"parent_id": 0,
"lock_state": "UNLOCKED",
"created_by_schedule_id": null,
"type": "MASTER",
"pool_name": "auto-pool--2d42fe2b-91bd-4",
"replication_types": [
"NONE"
],
"has_children": false,
"lock_expires_at": null,
"replica_ids": [],
"created_by_schedule_name": null,
"rmr_snapshot_guid": null,
"name": "auto-cg_-36704735-277f-48b",
"tenant_id": 1,
"created_at": 1774519804850,
"snapshot_expires_at": null,
"pool_id": 1000,
"snapshot_policy_id": null,
"is_replicated": false
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting the consistency group will break the consistency of its members. In case the delete_members parameters is set to yes, the consistency group members are deleted. |
| SG_CG_DELETE_LIMIT |
HTTP 409 |
The consistency group cannot be deleted: it contains more than the maximum number of snapshot groups allowed for a delete operation |
| VOLUME_IS_MAPPED |
HTTP 409 |
The volume cannot be deleted. Volume 'vol1' has active mappings |
| DELETE_LOCKED_SNAPSHOT |
HTTP 409 |
Snapshot group 'snapshot' is locked, and can only be deleted after '2026-03-31 13:10:08' UTC |
| DELETE_SNAPSHOT_WITH_LOCKED_DESCENDANTS |
HTTP 409 |
Snapshot 'auto-snap--4bb13c2c-6ddb-4' has locked descendants, and can only be deleted after they expire, on: '2026-03-31 13:10:34' UTC |
| REPLICATED_CG_CANNOT_BE_DELETED |
HTTP 409 |
A replicated consistency group cannot be deleted. Remove the replication, then delete the consistency group |
|
Get all Consistency Groups
| Description |
Return consistency groups according to filter and sort parameters. Filterable and Sortable fields:created_at,id,lock_expires_at,name,remote_snapshot_retention,remote_snapshot_retention_lock,rmr_snapshot_guid,snapshot_retention,type,updated_at. |
| API Endpoint |
GET api/rest/cgs |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"remote_snapshot_retention": null,
"created_by_snapshot_policy_id": 182,
"updated_at": 1774519234042,
"snapshot_retention": 3600,
"created_by_snapshot_policy_name": "auto-hourly-d95cddc9-ac74-",
"members_count": 1,
"snapshot_policy_name": null,
"remote_snapshot_retention_lock": null,
"id": 1004,
"parent_id": 1001,
"lock_state": "UNLOCKED",
"created_by_schedule_id": 183,
"type": "SNAPSHOT",
"pool_name": "auto-pool--20e3abd6-ec80-4",
"replication_types": [
"NONE"
],
"has_children": false,
"lock_expires_at": null,
"replica_ids": [],
"created_by_schedule_name": "auto-schedule--0ad23581-c7",
"rmr_snapshot_guid": null,
"name": "auto-cg_-1d91a3e2-92aa-484auto--hourly-9b7d6fb2-d4a7de17755c7190b",
"tenant_id": 1,
"created_at": 1774519234042,
"snapshot_expires_at": 1774522834,
"pool_id": 1000,
"snapshot_policy_id": null,
"is_replicated": false
}
],
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('replication_types') could not be translated to an expected type |
| UNSUPPORTED_FILTER_RELATION |
HTTP 400 |
The filtering operator 'EQ' is not supported by this resource |
|
Get Attribute by ID
| Description |
Return a conistency group attribute
|
| API Endpoint |
GET api/rest/cgs/{id}/{attribute} |
| URL Parameters |
| id |
long |
The id of the consistency group |
| attribute |
String |
The name of the attribute |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Get Consistency Group by ID
| Description |
Return a consistency group by ID
|
| API Endpoint |
GET api/rest/cgs/{id} |
| URL Parameters |
| id |
long |
The ID of the consistency group |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"remote_snapshot_retention": null,
"created_by_snapshot_policy_id": null,
"updated_at": 1774519184047,
"snapshot_retention": null,
"created_by_snapshot_policy_name": null,
"members_count": 0,
"snapshot_policy_name": null,
"remote_snapshot_retention_lock": null,
"id": 1002,
"parent_id": 0,
"lock_state": "UNLOCKED",
"created_by_schedule_id": null,
"type": "MASTER",
"pool_name": "auto-pool--df8fa94d-7774-4",
"replication_types": [
"NONE"
],
"has_children": false,
"lock_expires_at": null,
"replica_ids": [],
"created_by_schedule_name": null,
"rmr_snapshot_guid": null,
"name": "auto-cg_-2f5628dc-390c-436",
"tenant_id": 1,
"created_at": 1774519183962,
"snapshot_expires_at": null,
"pool_id": 1000,
"snapshot_policy_id": null,
"is_replicated": false
},
"error": null
}
|
| Errors |
| CG_NOT_FOUND |
HTTP 404 |
Consistency group not found |
|
Get Members by ID
| Description |
Return the datasets that are members of a consistency group
|
| API Endpoint |
GET api/rest/cgs/{cg_id}/members |
| URL Parameters |
| cg_id |
long |
The ID of the consistency group |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--4500bf9a-26f3-4",
"cg_name": "sg",
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774519077133,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1003,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 1001,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "SNAPSHOT",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": null,
"has_internal_children": null,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": 1004,
"snapshot_policy_name": null,
"is_internal": false,
"reducible_host_written_data": null,
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": "p_auto-volume--a79db565-1e1d_s",
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 1774519077133,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"compression_enabled": true,
"family_id": 1001,
"depth": 1,
"dataset_type": "VOLUME",
"write_protected": true,
"mapped": false,
"replica_ids": [],
"allocated": 0,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": 1953125
}
],
"error": null
}
|
| Errors |
| CG_NOT_FOUND |
HTTP 404 |
Consistency group not found |
|
Move to Pool
| Description |
Move a consistency group to other pool, along with its related datasets
|
| API Endpoint |
POST api/rest/cgs/{id}/move |
| URL Parameters |
| id |
long |
The ID of the consistency group to move |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"pool_id": 1001,
"with_capacity": false
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"remote_snapshot_retention": null,
"created_by_snapshot_policy_id": null,
"updated_at": 1774519816547,
"snapshot_retention": null,
"created_by_snapshot_policy_name": null,
"members_count": 2,
"snapshot_policy_name": null,
"remote_snapshot_retention_lock": null,
"id": 1004,
"parent_id": 0,
"lock_state": "UNLOCKED",
"created_by_schedule_id": null,
"type": "MASTER",
"pool_name": "auto-pool--9f604bde-a694-4",
"replication_types": [
"NONE"
],
"has_children": false,
"lock_expires_at": null,
"replica_ids": [],
"created_by_schedule_name": null,
"rmr_snapshot_guid": null,
"name": "auto-cg_-dd9e640f-a8cd-495",
"tenant_id": 1,
"created_at": 1774519816392,
"snapshot_expires_at": null,
"pool_id": 1005,
"snapshot_policy_id": null,
"is_replicated": false
},
"error": null
}
|
| Errors |
| SG_CANNOT_BE_MOVED |
HTTP 409 |
a snapshot group can be moved only as part of a consistency group move |
| INSUFFICIENT_POOL_CAPACITY |
HTTP 409 |
The pool has insufficient capacity. Reason: The capacity of the target pool is insufficient for this action. Pool free capacity is approximately: 1TB, required capacity is approximately: 10TB. The capacity is accurate up to 1GB due to internal conversions |
| ILLEGAL_MOVE_TO_VVOL_POOL |
HTTP 409 |
Cannot move Consistency Group 'auto-cg_-88393d40-1a21-422' into vVol pool 'test-vvol-move-pool', because 'test-vvol-move-pool' is dedicated for VMware vVols |
|
Promote Snap Group
| Description |
Promote a snap group to a consistency group, along with its members which will be promoted to volumes
|
| Approval required |
This is a dangerous operation
Promoting this snap group will prevent the option to create a new replica with this snap group as base entity
|
| API Endpoint |
POST api/rest/cgs/{id}/promote |
| URL Parameters |
| id |
long |
The ID of the snap group to promote |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"remote_snapshot_retention": null,
"created_by_snapshot_policy_id": null,
"updated_at": 1774519848608,
"snapshot_retention": null,
"created_by_snapshot_policy_name": null,
"members_count": 2,
"snapshot_policy_name": null,
"remote_snapshot_retention_lock": null,
"id": 1007,
"parent_id": 0,
"lock_state": "UNLOCKED",
"created_by_schedule_id": null,
"type": "MASTER",
"pool_name": "auto-pool--c2e6619c-9b7c-4",
"replication_types": [
"NONE"
],
"has_children": false,
"lock_expires_at": null,
"replica_ids": [],
"created_by_schedule_name": null,
"rmr_snapshot_guid": null,
"name": "auto-cg_-7d7673f9-d93b-4e0-auto-snapshotPolicy-8421c442fdf9e6a6e5",
"tenant_id": 1,
"created_at": 1774519848414,
"snapshot_expires_at": null,
"pool_id": 1001,
"snapshot_policy_id": null,
"is_replicated": false
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Promoting this snap group will prevent the option to create a new replica with this snap group as base entity |
| ENTITY_NOT_FOUND |
HTTP 404 |
Entity not found |
| PROMOTE_CHAIN_TOO_DEEP |
HTTP 409 |
Promotion is not supported because the snapshot or a member of the snap group has a promote chain above the limit of 10 |
| PROMOTE_LOCKED_SG |
HTTP 409 |
This snap group is locked and cannot be promoted |
| MAXIMUM_PROMOTES_IN_FAMILY_REACHED |
HTTP 409 |
Promotion is not supported because the system reached the maximum number of promotes in family: 1023 |
| PROMOTE_SNAPSHOT_TO_LOCKED_POOL |
HTTP 409 |
Cannot promote this snapshot because the pool is locked |
| POOL_VIRTUAL_CAPACITY |
HTTP 409 |
Cannot perform the operation because the pool does not have enough virtual capacity |
| PROMOTE_SG_WITH_CHILDREN |
HTTP 409 |
Some members of this snap group have sub-snapshots. The snap group cannot be promoted |
| PROMOTE_SNAPSHOT_WITH_CHILDREN |
HTTP 409 |
This snapshot has sub-snapshots and cannot be promoted |
| SYSTEM_READ_ONLY |
HTTP 409 |
The system is now Read-Only. No data can be written while the system is in this state |
| PROMOTE_BACKGROUND_PROCESS_NOT_FINISHED |
HTTP 409 |
Cannot promote this snapshot because a process is running in the background. Please retry later |
| PROMOTE_MASTER_ENTITY |
HTTP 409 |
Only snapshots and snap groups can be promoted |
| PROMOTE_CORE_INTERNAL_ERROR |
HTTP 409 |
Promotion failed due to a core internal error |
| PROMOTE_RMR_OWNED_SNAPSHOT |
HTTP 409 |
Cannot promote this snapshot because it is used for the replication process |
|
Refreshing a Snapshot Group
| Description |
Refreshes a snapshot group from a parent
|
| Approval required |
This is a dangerous operation
Refreshing entity 'dataset_name' will overwrite its cg_membersdata
|
| API Endpoint |
POST api/rest/cgs/{id}/refresh |
| URL Parameters |
| id |
long |
ID of the target snapshot group |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"source_id": 1001
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"remote_snapshot_retention": null,
"created_by_snapshot_policy_id": null,
"updated_at": 1774519827607,
"snapshot_retention": null,
"created_by_snapshot_policy_name": null,
"members_count": 1,
"snapshot_policy_name": null,
"remote_snapshot_retention_lock": null,
"id": 1006,
"parent_id": 1001,
"lock_state": "UNLOCKED",
"created_by_schedule_id": null,
"type": "SNAPSHOT",
"pool_name": "auto-pool--c638e02b-c31a-4",
"replication_types": [
"NONE"
],
"has_children": false,
"lock_expires_at": null,
"replica_ids": [],
"created_by_schedule_name": null,
"rmr_snapshot_guid": null,
"name": "snapshot1",
"tenant_id": 1,
"created_at": 1774519826542,
"snapshot_expires_at": null,
"pool_id": 1000,
"snapshot_policy_id": null,
"is_replicated": false
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Refreshing snapshot group 'auto-sg_-9e20ea0d-d037-4a2' will overwrite its members data |
| SG_REFRESH_NOT_DIRECT_SNAPSHOT |
HTTP 409 |
The specified snapshot group is not a child of the specified consistency group |
| SG_REFRESH_NOT_SG |
HTTP 409 |
The specified entity is not a snapshot group |
| SG_REFRESH_INCONSISTENT_MEMBERS_NUMBER |
HTTP 409 |
The number of snapshots in the snapshot group is inconsistent with the number of members in the consistency group |
| INVALID_OPERATION_ON_LOCKED_SNAPSHOT |
HTTP 409 |
This operation is not allowed on a locked snapshot group until its lock expires |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Please try to suspend the replica again, refreshing a snapshot from an Active Active replica which is not consistent is not supported |
|
Remove Member
| Description |
Remove a dataset from a consistency group, along with its snapshots
|
| Approval required |
This is a dangerous operation
Removing a member from a consistency group will also remove its snapshots from the snapgroups. Future snapshots (as well as replications) will not include this member
|
| API Endpoint |
DELETE api/rest/cgs/{id}/members/{dataset_id} |
| URL Parameters |
| id |
long |
The ID of the consistency group |
| dataset_id |
long |
The ID of the dataset to remove |
| retain_staging_area |
Boolean |
Retention of staging areas |
| create_replica |
Boolean |
Create a replica |
| replica_name |
String |
Name for the new replica |
| force_if_no_remote_credentials |
Boolean |
Allow this operation even if a login error is returned by the remote system |
| force_if_remote_error |
Boolean |
Allow this operation even if an error is returned by the remote system |
| force_on_target |
Boolean |
Allow one-sided operation on the target |
| force_on_local |
Boolean |
Allow one-sided operation |
| keep_serial_on_local |
Boolean |
Allows keeping or resetting the external identification data of the local replica volume/s |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"remote_snapshot_retention": null,
"created_by_snapshot_policy_id": null,
"updated_at": 1774519849771,
"snapshot_retention": null,
"created_by_snapshot_policy_name": null,
"members_count": 0,
"snapshot_policy_name": null,
"remote_snapshot_retention_lock": null,
"id": 1003,
"parent_id": 0,
"lock_state": "UNLOCKED",
"created_by_schedule_id": null,
"type": "MASTER",
"pool_name": "auto-pool--e56768a5-a292-4",
"replication_types": [
"NONE"
],
"has_children": true,
"lock_expires_at": null,
"replica_ids": [],
"created_by_schedule_name": null,
"rmr_snapshot_guid": null,
"name": "auto-cg_-8a1d3ad5-0eb3-4e8",
"tenant_id": 1,
"created_at": 1774519849686,
"snapshot_expires_at": null,
"pool_id": 1000,
"snapshot_policy_id": null,
"is_replicated": false
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('create_replica') |
| REMOTE_PERMISSION_REQUIRED |
HTTP 403 |
The operation failed as it requires permission on the remote system |
| APPROVAL_REQUIRED |
HTTP 403 |
Removing a member from a consistency group will also remove its snapshots from the snapgroups. Future snapshots (as well as replications) will not include this member |
| CG_DATASET_NOT_FOUND |
HTTP 404 |
Dataset is not a member of the consistency group |
| LINK_IO_ERROR |
HTTP 409 |
I/O error when trying to communicate with remote system '{host}' |
| REPLICA_INCONSISTENT_PAIR_COUNT |
HTTP 409 |
The number of entities in the consistency groups was different on source and target |
| REPLICA_OPERATION_NOT_ALLOWED_ON_SOURCE_AND_TARGET |
HTTP 409 |
This operation cannot be performed on entity 'auto-cg_-28e2c533-58b4-4b1' which is both a replication source and target |
| DATASET_COUNT_LIMIT |
HTTP 409 |
The request exceeds the dataset count limit |
| MEMBER_CANNOT_BE_REMOVED_FROM_SG |
HTTP 409 |
A snapshot group member cannot be removed |
| CG_MEMBER_CANNOT_BE_REMOVED_FROM_SYNC_REPLICA |
HTTP 409 |
Cannot remove a member from a replicated consistency group whose replication type is SYNC. Change the replication type to ASYNC, remove the member and then change the replication type back to SYNC |
| REMOVE_MEMBER_AA_REPLICA_FROM_LAGGING_SIDE |
HTTP 409 |
Cannot remove a member auto-volume--10b3bd2f-aa8b of consistency group in an active-active replica from the lagging side |
| REPLICA_PARTIAL_FAILURE |
HTTP 409 |
Replica(s) Removing a CG member failed, replica(s) status is unknown. User intervention is required. |
| CG_MEMBER_CANNOT_BE_REMOVED_FROM_ACTIVE_AA_REPLICA |
HTTP 409 |
Cannot remove a member 'auto-volume--e2c5c162-7d9a' from an active active-active replica. Suspend the replica before removing the member |
| REPLICA_CANNOT_CREATE_IF_FORCE |
HTTP 409 |
Replica creation cannot be specified with force on target or force on remote error |
| REPLICA_REMOVE_MEMBER_NOT_ALLOWED_ON_TARGET |
HTTP 409 |
Removing a member on the target system is not allowed unless the link to the source is down and the operation is acknowledged by the user |
| AA_REMOVE_MEMBER_NOT_POSSIBLE |
HTTP 409 |
Cannot remove a member of an active-active replica when it is mapped because the serial ID will be changed. Please remove all member mappings |
| REPLICA_IS_RESERVED_FOR_INFINISAFE |
HTTP 409 |
Replica is reserved for infinisafe, removing member is not allowed |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Removing the last member in a consistency group of an active-active replica is not supported |
| REPLICA_INVALID_CONFIGURATION |
HTTP 409 |
The local configuration does not match the remote one. Please resume replica first |
| OPERATION_CANNOT_BE_DONE_ON_MULTI_TARGET_REPLICA |
HTTP 409 |
Removing the last member failed because it is not supported for multi target replica |
|
Restoring a Consistency Group
| Description |
Restore a consistency group from a snapshot group
|
| Approval required |
This is a dangerous operation
Restoring a consistency group 'cg_name' that has datasets added after taking a snapshot group will restore only the snapshotted datasets. The datasets that were added to the consistency group after the snapshot group was taken, will not be restored
|
| API Endpoint |
POST api/rest/cgs/{id}/restore |
| URL Parameters |
| id |
long |
ID of the target consistency group |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"source_id": 1008,
"target_id": 0
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": true,
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Restoring a consistency group 'auto-cg_-9f75b4bb-7c85-442' that has datasets added after taking a snapshot group will restore only the snapshotted datasets. The datasets that were added to the consistency group after the snapshot group was taken, will not be restored |
| PROTECTED_DATASET_CANNOT_BE_RESTORED |
HTTP 409 |
A dataset (vol_wp) that is write-protected cannot be restored |
| ILLEGAL_CG_RESTORE_REQUEST |
HTTP 409 |
Consistency group can only be restored from one of its snapshot groups |
| REPLICATED_CG_RESTORE_NOT_ALLOWED |
HTTP 409 |
A replicated consistency group cannot be restored |
|
Update Consistency Group
| Description |
Update consistency group attributes with input map data
|
| Approval required |
This is a dangerous operation
snapshotType 'name' will have unlimited retention and will not be deleted automatically
|
| API Endpoint |
PUT api/rest/cgs/{id} |
| URL Parameters |
| id |
long |
The ID of the CG to update |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"snapshot_retention": 100
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"remote_snapshot_retention": null,
"created_by_snapshot_policy_id": 182,
"updated_at": 1774519234536,
"snapshot_retention": 10000,
"created_by_snapshot_policy_name": "auto-hourly-d95cddc9-ac74-",
"members_count": 1,
"snapshot_policy_name": null,
"remote_snapshot_retention_lock": null,
"id": 1004,
"parent_id": 1001,
"lock_state": "UNLOCKED",
"created_by_schedule_id": 183,
"type": "SNAPSHOT",
"pool_name": "auto-pool--20e3abd6-ec80-4",
"replication_types": [
"NONE"
],
"has_children": false,
"lock_expires_at": null,
"replica_ids": [],
"created_by_schedule_name": "auto-schedule--0ad23581-c7",
"rmr_snapshot_guid": null,
"name": "auto-cg_-1d91a3e2-92aa-484auto--hourly-9b7d6fb2-d4a7de17755c7190b",
"tenant_id": 1,
"created_at": 1774519234042,
"snapshot_expires_at": 1774529234,
"pool_id": 1000,
"snapshot_policy_id": null,
"is_replicated": false
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('tenant_id') |
| APPROVAL_REQUIRED |
HTTP 403 |
Snapshot group 'auto-cg_-1d91a3e2-92aa-484auto--hourly-9b7d6fb2-d4a7de17755c7190b' will have unlimited retention and will not be deleted automatically |
| SNAPSHOT_RETENTION_FIELD_NOT_SUPPORTED |
HTTP 409 |
The retention cannot be changed because snapshot group 'sg3' is not a replicated snapshot group, and it was not created by a snapshot policy |
| INVALID_LOCK_EXPIRY |
HTTP 409 |
Lock expiry date has to be in the future |
| LOCK_EXPIRY_TOO_SHORT |
HTTP 409 |
The lock expiry of snapshot group 'snapshot' cannot be lowered. Current expiry time is '2026-03-31 13:15:29' UTC |
| SNAPSHOT_RETENTION_INVALID |
HTTP 409 |
The new snapshot retention must be longer than the current one |
| INVALID_LOCK_ENTITY_TYPE |
HTTP 409 |
Locking consistency group is not allowed |
| NON_SNAPSHOT_RETENTION_CANNOT_BE_MODIFIED |
HTTP 409 |
Only snapshots and snap groups can have a retention time |
| INVALID_OPERATION_ON_LOCKED_SNAPSHOT |
HTTP 409 |
This operation is not allowed on a locked snapshot group until its lock expires |
| UNLOCK_FORBIDDEN |
HTTP 409 |
Snapshot group 'snapshot' is locked until '2026-03-31 13:12:53' UTC, the lock cannot be removed |
| SNAPSHOT_LOCK_FORBIDDEN |
HTTP 409 |
Snapshot 'vols' cannot be further locked as it is write-enabled |
|
Core
Get Core Api Spec
| Description |
Get Core API Spec
|
| API Endpoint |
GET api/internal/core/core_api |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"UNMAP_CREDITS_QUERY": {
"url": "http://172.17.0.1:80/api/internal/core/core_api/UNMAP_CREDITS_QUERY",
"fields": [],
"http_method": "GET",
"result": [
{
"required": false,
"type": "LONG",
"name": "vu_credits"
}
],
"name": "UNMAP_CREDITS_QUERY"
},
"CLEAR_MESSAGE_FAILURES": {
"url": "http://172.17.0.1:80/api/internal/core/core_api/CLEAR_MESSAGE_FAILURES",
"fields": [
{
"required": false,
"type": "LONG",
"name": "node_id"
}
],
"http_method": "POST",
"result": [],
"name": "CLEAR_MESSAGE_FAILURES"
},
"DEFRAG_DISABLE_AU": {
"url": "http://172.17.0.1:80/api/internal/core/core_api/DEFRAG_DISABLE_AU",
"fields": [
{
"type": "BOOLEAN",
"required": true,
"values": [
"false",
"true"
],
"name": "is_defrag_disabled"
},
{
"required": false,
"type": "OBJECT []",
"name": "vd_addr"
}
],
"http_method": "POST",
"result": [],
"name": "DEFRAG_DISABLE_AU"
},
"CONFIG_DB_REPAIR_TASK_INITIATE": {
"url": "http://172.17.0.1:80/api/internal/core/core_api/CONFIG_DB_REPAIR_TASK_INITIATE",
"fields": [
{
"required": true,
"type": "LONG",
"name": "vu"
},
{
... TRUNCATED ...
|
| Errors |
See general list of error codes.
|
Perform Core Operation
| Description |
Perform core operation
|
| API Endpoint |
POST api/internal/core/core_api/{api_name} |
| URL Parameters |
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"command": "SUSPEND_DESTAGER"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"family_list": [],
"is_incepted_system": null,
"obj_name": "com.xn.proto_gen.CoreDefs$InceptionCommandResponse"
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Crash Recovery
Fix Diff With Filesystems
| Description |
Fix diff with filesystems
|
| API Endpoint |
GET api/internal/totalcrashrecovery/fixDiffWithFilesystems |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "OK",
"error": null
}
|
| Errors |
See general list of error codes.
|
Fix Mgmt Core Diffs
| Description |
Fix mgmt core diff
|
| API Endpoint |
GET api/internal/totalcrashrecovery/fixDiff |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "OK",
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Mgmt Core Diffs
| Description |
Get mgmt core diffs
|
| API Endpoint |
GET api/internal/totalcrashrecovery/diff |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {},
"error": null
}
|
| Errors |
See general list of error codes.
|
Dataset
Expose Replicated Snapshots
| Description |
Exposes all available replicated snapshots
|
| API Endpoint |
POST api/rest/datasets/expose_replicated_snapshots |
| URL Parameters |
| force_if_remote_error |
boolean |
Allow this operation even if an error is returned by the remote system |
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": null,
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
|
Get all Datasets
| Description |
Return volumes and filesystems according to filter and sort params Filterable and Sortable fields:_cg_guid,_cg_snapshot_guid,compression_enabled,created_at,data_snapshot_guid,dataset_type,depth,family_id,id,lock_expires_at,mapped,mgmt_snapshot_guid,mobility_source,name,provtype,_reclaimed_snapshot_remote_system_serial,remote_snapshot_retention,remote_snapshot_retention_lock,rmr_active_active_peer,rmr_snapshot_guid,rmr_source,rmr_target,serial,size,snapshot_retention,ssa_express_enabled,ssd_enabled,type,updated_at,write_protected. Filterable only fields:reducible_data_percents,reducible_data_reduction_ratio. |
| API Endpoint |
GET api/rest/datasets |
| URL Parameters |
| include_data_reduction_hist |
boolean |
Show the effective capacity histogram and reserve fields |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--ba956f1f-d311-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774519566380,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1001,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 0,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "MASTER",
"has_children": true,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": 1.0,
"has_internal_children": null,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": null,
"snapshot_policy_name": null,
"is_internal": false,
"reducible_host_written_data": null,
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": "auto-volume--af55fe9f-ecea",
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 1774519566380,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"compression_enabled": true,
"family_id": 1001,
"depth": 0,
"dataset_type": "VOLUME",
"write_protected": false,
"mapped": false,
"replica_ids": [],
"allocated": 0,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": 1953125
}
],
"error": null
}
|
| Errors |
| NOT_FILTERABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be filtered: ('qos_shared_policy_name') |
| NOT_SORTABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be sortable: ('qos_shared_policy_name') |
|
Get all Internal Datasets
| Description |
Return all internal volumes and filesystems according to type; master or snapshot Filterable and Sortable fields:_cg_guid,_cg_snapshot_guid,compression_enabled,created_at,data_snapshot_guid,dataset_type,depth,family_id,id,lock_expires_at,mapped,mgmt_snapshot_guid,mobility_source,name,provtype,_reclaimed_snapshot_remote_system_serial,remote_snapshot_retention,remote_snapshot_retention_lock,rmr_active_active_peer,rmr_snapshot_guid,rmr_source,rmr_target,serial,size,snapshot_retention,ssa_express_enabled,ssd_enabled,type,updated_at,write_protected. Filterable only fields:reducible_data_percents,reducible_data_reduction_ratio. |
| API Endpoint |
GET api/rest/datasets/internal_datasets/{internal_type} |
| URL Parameters |
| internal_type |
VolumeType |
The type of the internal dataset; master or snapshot |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--eb5b67a2-dc41-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 0,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": null,
"non_reducible_data_reduction_ratio": null,
"id": 1003,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": null,
"parent_id": 1001,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": null,
"type": "SNAPSHOT",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": 1.0,
"has_internal_children": null,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": null,
"snapshot_policy_name": null,
"is_internal": true,
"reducible_host_written_data": null,
"nguid": null,
"provtype": "THIN",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": "internal-auto-volume--a0fc9d10-a0cb",
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 0,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"compression_enabled": null,
"family_id": null,
"depth": 0,
"dataset_type": "VOLUME",
"write_protected": true,
"mapped": false,
"replica_ids": [],
"allocated": 0,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": null
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Dataset by ID
| Description |
Return a dataset by its id
|
| API Endpoint |
GET api/rest/datasets/{id} |
| URL Parameters |
| id |
long |
The id of the volume |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--6525af99-5ad5-4",
"cg_name": "sg",
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774519969512,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1005,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 1003,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "SNAPSHOT",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": null,
"has_internal_children": null,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": 1007,
"snapshot_policy_name": null,
"is_internal": false,
"reducible_host_written_data": null,
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": "p_vol1_s",
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 1774519969512,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"compression_enabled": true,
"family_id": 1003,
"depth": 1,
"dataset_type": "VOLUME",
"write_protected": true,
"mapped": false,
"replica_ids": [],
"allocated": 0,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": 1953125
},
"error": null
}
|
| Errors |
| DATASET_NOT_FOUND |
HTTP 404 |
Dataset not found |
|
Get Dataset Internal Children by ID
| Description |
Return all internal datasets of a dataset by its id
|
| API Endpoint |
GET api/rest/datasets/{parent_id}/internal_datasets |
| URL Parameters |
| parent_id |
long |
The id of the parent dataset |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--7d94d77f-eb10-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 0,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": null,
"non_reducible_data_reduction_ratio": null,
"id": 1003,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": null,
"parent_id": 1001,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": null,
"type": "SNAPSHOT",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": 1.0,
"has_internal_children": null,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": null,
"snapshot_policy_name": null,
"is_internal": true,
"reducible_host_written_data": null,
"nguid": null,
"provtype": "THIN",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": "internal-auto-volume--c476f284-138e",
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 0,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"compression_enabled": null,
"family_id": null,
"depth": 0,
"dataset_type": "VOLUME",
"write_protected": true,
"mapped": false,
"replica_ids": [],
"allocated": 0,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": null
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Update Multiple Datasets
| Description |
Update multiple datasets
|
| Approval required |
This is a dangerous operation
This action will add the selected datasets to the SSA Express queue
|
| API Endpoint |
PUT api/rest/datasets/bulk |
| URL Parameters |
none
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"data": {
"write_protected": true
},
"ids": [
1001
]
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": [
{
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--83249ac5-9d52-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774520445560,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1001,
"qos_shared_policy_name": null,
"ssa_express_enabled": true,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 0,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": "STATUS_LOADING",
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "MASTER",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": 1.0,
"has_internal_children": null,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
... TRUNCATED ...
|
| Errors |
| NOT_SUPPORTED_MULTIPLE_UPDATE |
HTTP 400 |
The action could not be performed for the selected entities and was canceled: This resource does not support updating multiple fields in one request |
| MALFORMED_PARAMETER |
HTTP 400 |
The action could not be performed for the selected entities and was canceled: A parameter ('ssa_express_enabled') could not be translated to an expected type |
| SET_MISSING_ATTRIBUTE |
HTTP 400 |
The action could not be performed for the selected entities and was canceled: Attribute not found: 'illegal_attribute' |
| MALFORMED_CONTENT |
HTTP 400 |
The action could not be performed for the selected entities and was canceled: The request content is malformed |
| APPROVAL_REQUIRED |
HTTP 403 |
This action will add the selected datasets to the SSA Express queue |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
The action could not be performed for the selected entities and was canceled: Multiple updates of attribute 'write_protected' is not supported |
| DATASET_SSA_EXPRESS_ALREADY_DISABLED |
HTTP 409 |
The action could not be performed for the selected entities and was canceled: Dataset 'auto-volume--497c5978-c2e2' was not in SSA Express cache |
|
Update Replicated Snapshot
| Description |
Update replicated snapshot according to corresponding source snapshot
|
| API Endpoint |
POST api/rest/datasets/{id}/update_replicated_snapshot_from_source |
| URL Parameters |
| id |
long |
ID of the replicated snapshot |
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"suspend_state": "NONE",
"atime_granularity": 0,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"posix_file_ownership": null,
"mgmt_snapshot_guid": "1234",
"ssa_express_status": null,
"is_consistent": true,
"qos_shared_policy_id": null,
"promote_source_id": null,
"data_reduction_ratio": null,
"is_internal": false,
"reducible_data_disk_usage_capacity": null,
"has_children": false,
"replica_ids": [],
"nguid": null,
"provtype": "THIN",
"name": "1234-name-target",
"family_id": 1005,
"mapped": false,
"rmr_active_active_peer": false,
"_is_established": true,
"has_internal_children": false,
"security_style": "UNIX",
"reducible_data_percents": null,
"used_capacity_critical": null,
"snapshot_policy_id": null,
"non_reducible_data_percents": null,
"snapdir_name": ".snapshot",
"lock_state": "UNLOCKED",
"visible_in_snapdir": true,
"created_by_snapshot_policy_id": null,
"worm_legal_hold": null,
"cg_id": null,
"created_by_schedule_name": null,
"qos_policy_id": null,
"snapshot_expires_at": 1774621664,
"pool_id": 1003,
"non_reducible_host_written_data": null,
"rmr_target": false,
"used_capacity_warning": null,
"cg_name": null,
"qos_policy_name": null,
"allocated": null,
"snapshot_retention": 100000,
"size": 1048576,
"parent_id": 1005,
"remote_snapshot_retention_lock": null,
"worm_level": "NONE",
"_reclaimed_snapshot_remote_system_serial": 1600,
"type": "SNAPSHOT",
"_cg_guid": null,
"compression_suppressed": null,
"replication_types": [
"NONE"
],
"zeros_capacity": null,
"atime_mode": "NOATIME",
"rmr_snapshot_guid": null,
"reducible_host_written_data": null,
"capacity_savings_per_entity": null,
"qos_shared_policy_name": null,
"modified": false,
"compression_enabled": true,
"nfs_filesystem_id": 273,
"write_protected": true,
"rmr_source": false,
"remote_snapshot_retention": null,
"host_written_data": null,
"created_by_snapshot_policy_name": null,
"_cg_snapshot_guid": null,
"updated_at": 1774521664000,
"worm_default_retention": null,
"serial": null,
"non_reducible_data_reduction_ratio": null,
"id": 3862138659591810003,
"ssd_enabled": true,
"snapshot_policy_name": null,
"snapdir_accessible": true,
"created_by_schedule_id": null,
"reducible_data_reduction_ratio": null,
"pool_name": "auto-pool--cbe1bac1-b06d-4",
"used": null,
"mobility_source": null,
"tree_allocated": null,
"data": 3862138659591810003,
"lock_expires_at": null,
"capacity_savings": null,
"data_snapshot_guid": "1234",
"tenant_id": 1,
"created_at": 1774521664000,
"worm_max_retention": null,
"depth": 1,
"dataset_type": "FILESYSTEM",
"num_blocks": 2048
},
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| OPERATION_CANNOT_BE_DONE_ON_NON_REPLICATED_SNAPSHOT |
HTTP 409 |
Updating replicated snapshot failed because it is not supported for a non replicated snapshot |
|
Db Backup
Trigger Db Backup
| Description |
Trigger backup to DB
|
| API Endpoint |
GET api/internal/dbbackups/trigger |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": false,
"error": null
}
|
| Errors |
See general list of error codes.
|
Delta
Get Delta
| Description |
Delta entries
|
| API Endpoint |
GET api/rest/delta |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"action": "CREATE",
"entity": {
"non_reducible_host_written_data": null,
"host_written_data": null,
"standard_entities_count": 0,
"updated_at": 1774520433167,
"standard_filesystem_snapshots_count": 0,
"standard_snapshots_count": 0,
"max_extend": -1,
"free_virtual_space": 1000000192512,
"volumes_count": 0,
"allocated_physical_space": 0,
"fs_used_default_critical": 100,
"non_reducible_data_reduction_ratio": null,
"id": 1000,
"reserved_capacity": 100000000000,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"s3_buckets_count": 0,
"standard_filesystems_count": 0,
"non_reducible_data_percents": null,
"reducible_data_reduction_ratio": null,
"vvol_entities_count": 0,
"snapshots_count": 0,
"state": "NORMAL",
"tenant_id": 1,
"fs_used_default_warning": 100,
"type": "STANDARD",
"free_physical_space": 1000000192512,
"data_reduction_ratio": 1.0,
"total_disk_usage": null,
"filesystems_count": 0,
"reducible_data_disk_usage_capacity": null,
"vvol_snapshots_count": 0,
"s3_bound": false,
"thin_capacity_savings": null,
"zeros_capacity": null,
"entities_count": 0,
"physical_capacity_critical": 90,
"standard_volumes_count": 0,
"internal_entities_count": null,
"reducible_host_written_data": null,
"owners": [],
"vvol_volumes_count": 0,
"capacity_savings": null,
"name": "auto-pool--d42db0a9-fa34-4",
"virtual_capacity": 1000000192512,
"allocated_internal_physical_space": 0,
"created_at": 1774520433167,
"filesystem_snapshots_count": 0,
"compression_enabled": true,
"qos_policies": [],
"physical_capacity_warning": 80,
"physical_capacity": 1000000192512,
"thick_capacity_savings": null
},
"type": "pool",
"modified": 3364002480328247,
"id": 1000
}
],
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('id') |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('3364002607879295') could not be translated to an expected type |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
|
Get Delta Metadata
| Description |
Delta entries metadata
|
| API Endpoint |
GET api/rest/delta/metadata |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"vlan_interface": {
"persistents": [
"internal_name",
"rate_limit",
"vlan",
"network_space_ids",
"name",
"id",
"state",
"type",
"node_id"
],
"transients": [
"underlying_interface_id"
]
},
"entity_id": {
"persistents": [
"id"
],
"transients": []
},
"smb_group": {
"persistents": [
"tenant_id",
"uid",
"privileges",
"gid",
"name",
"id",
"domain_members",
"sid"
],
"transients": []
},
"consistency_group": {
"persistents": [
"tenant_id",
"created_at",
"type",
"snapshot_policy_name",
"remote_snapshot_retention",
"created_by_schedule_id",
"replica_ids",
"updated_at",
"created_by_schedule_name",
"snapshot_policy_id",
"rmr_snapshot_guid",
"id",
"is_replicated",
"lock_expires_at",
"lock_state",
"has_children",
"snapshot_retention",
"pool_id",
"pool_name",
"created_by_snapshot_policy_id",
"snapshot_expires_at",
"remote_snapshot_retention_lock",
"parent_id",
"name",
"members_count",
"created_by_snapshot_policy_name",
"replication_types"
],
... TRUNCATED ...
|
| Errors |
See general list of error codes.
|
Enclosure
Get all of the Drives Per Enclosure
| Description |
Get information about all of the drives of an enclosure.
|
| API Endpoint |
GET api/rest/components/enclosures/{enclosure_index}/drives |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 0,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get all of the Enclosures
| Description |
Get information about all of the enclosures.
|
| API Endpoint |
GET api/rest/components/enclosures |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 8,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"state_description": "",
"vendor": null,
"last_probe_timestamp": 0,
"firmware": null,
"drives": [],
"probe_ttl": 60000,
"drives_number": 0,
"state": "UNKNOWN",
"power_supplies": [],
"model": null,
"id": 1
},
{
"state_description": "",
"vendor": null,
"last_probe_timestamp": 0,
"firmware": null,
"drives": [],
"probe_ttl": 60000,
"drives_number": 0,
"state": "UNKNOWN",
"power_supplies": [],
"model": null,
"id": 2
},
{
"state_description": "",
"vendor": null,
"last_probe_timestamp": 0,
"firmware": null,
"drives": [],
"probe_ttl": 60000,
"drives_number": 0,
"state": "UNKNOWN",
"power_supplies": [],
"model": null,
"id": 3
},
{
"state_description": "",
"vendor": null,
"last_probe_timestamp": 0,
"firmware": null,
"drives": [],
"probe_ttl": 60000,
"drives_number": 0,
"state": "UNKNOWN",
"power_supplies": [],
"model": null,
"id": 4
},
{
"state_description": "",
"vendor": null,
"last_probe_timestamp": 0,
"firmware": null,
"drives": [],
"probe_ttl": 60000,
"drives_number": 0,
"state": "UNKNOWN",
"power_supplies": [],
"model": null,
"id": 5
},
{
"state_description": "",
"vendor": null,
"last_probe_timestamp": 0,
"firmware": null,
"drives": [],
"probe_ttl": 60000,
"drives_number": 0,
"state": "UNKNOWN",
"power_supplies": [],
"model": null,
"id": 6
},
{
"state_description": "",
"vendor": null,
"last_probe_timestamp": 0,
"firmware": null,
"drives": [],
"probe_ttl": 60000,
"drives_number": 0,
"state": "UNKNOWN",
"power_supplies": [],
"model": null,
"id": 7
},
{
"state_description": "",
"vendor": null,
"last_probe_timestamp": 0,
"firmware": null,
"drives": [],
"probe_ttl": 60000,
"drives_number": 0,
"state": "UNKNOWN",
"power_supplies": [],
"model": null,
"id": 8
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get an Enclosure
| Description |
Get information about a specific enclosure by its ID.
|
| API Endpoint |
GET api/rest/components/enclosures/{encIdx} |
| URL Parameters |
| encIdx |
int |
ID of the enclosure |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Get Drive HW Details
| Description |
Return Hardware information for specific drive
|
| API Endpoint |
GET api/rest/components/enclosures/{enclosure_index}/drives/{drive_index}/hw |
| URL Parameters |
| drive_index |
int |
The drive id |
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"pending_reallocations": 0,
"state": "UNKNOWN",
"reallocations": 0,
"temperature": 0,
"power_on_hours": 0
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Enclosure by ID
| Description |
Return enclosure
|
| API Endpoint |
GET api/rest/components/enclosures/{enclosure_index}/ |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"state_description": "",
"vendor": null,
"last_probe_timestamp": 0,
"firmware": null,
"drives": [],
"probe_ttl": 60000,
"drives_number": 0,
"state": "UNKNOWN",
"power_supplies": [],
"model": null,
"id": 1
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Enclosure Drive by ID
| Description |
Get information about a specific drive by the enclosure ID and drive ID.
|
| API Endpoint |
GET api/rest/components/enclosures/{enclosure_index}/drives/{drive_index} |
| URL Parameters |
| drive_index |
int |
ID of the drive |
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"state_description": "",
"drive_index": 1,
"vendor": null,
"product_id": "",
"encryption_state": null,
"enclosure_index": 1,
"firmware": "n/a",
"hw": {
"pending_reallocations": 0,
"state": "UNKNOWN",
"reallocations": 0,
"temperature": 0,
"power_on_hours": 0
},
"probe_ttl": 86400000,
"failure_reason": "",
"state": "UNKNOWN",
"product_rev": "",
"bytes_capacity": 0,
"serial_number": null,
"model": null,
"last_probe_timestamp": 0,
"nodes_access": [
false,
false,
false
],
"id": 1
},
"error": null
}
|
| Errors |
| DRIVE_NOT_FOUND |
HTTP 404 |
Drive not found |
| MALFORMED_ID_TYPE |
HTTP 404 |
Object Not Found. Invalid drive_index type (expect to get Number) |
|
Phase In Drive
| Description |
Phase in drive by id
|
| API Endpoint |
POST api/rest/components/enclosures/{enclosure_index}/drives/{drive_index}/phase_in |
| URL Parameters |
| drive_index |
int |
The drive id |
|
| Roles |
INFINIDAT,
TECHNICIAN
|
| System States |
ACTIVE,
STANDBY
|
| JSON Data |
none
|
| Returns |
|
| Errors |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Enclosure drive phase in is not supported |
|
Phase Out Drive
| Description |
Phase out drive by id
|
| API Endpoint |
POST api/rest/components/enclosures/{enclosure_index}/drives/{drive_index}/phase_out |
| URL Parameters |
| drive_index |
int |
The drive id |
|
| Roles |
INFINIDAT,
TECHNICIAN
|
| System States |
ACTIVE,
STANDBY
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"drive_index": 1,
"serial_no": "",
"product_id": "",
"drive_health": null,
"vendor_id": "",
"path_on": [],
"encryption_state": null,
"state": "ACTIVE",
"product_rev": "",
"bytes_capacity": 0,
"enclosure_index": 1
},
"error": null
}
|
| Errors |
| RETRY_DRIVE_IN_METADATA_SAVE |
HTTP 409 |
The drive cannot be activated or deactivated at this time because it is saving metadata |
| RETRY_RAIDGROUP_IN_RECOVERY |
HTTP 409 |
The drive cannot be deactivated at this time because it has a temporary error |
| MULTIPLE_DRIVE_MISSING |
HTTP 409 |
Drive deactivation failed due to multiple drive loss |
| RETRY_RAIDGROUP_IN_REBUILD |
HTTP 409 |
The drive cannot be deactivated at this time because it is needed for a rebuild |
| NOT_SUPPORTED_IN_SYSTEM_STATE |
HTTP 409 |
Operation is not supported in system state N/A |
| RETRY_DATA_REDISTRIBUTION |
HTTP 409 |
The drive cannot be deactivated at this time because the system is undergoing redistribution |
|
Test Drive
| Description |
test drive by id
|
| API Endpoint |
POST api/rest/components/enclosures/{enclosure_index}/drives/{drive_index}/test |
| URL Parameters |
| drive_index |
int |
The drive id |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Eth Switch
Get all Ethernet Switches
| Description |
Return Racks' ethernet switches
|
| API Endpoint |
GET api/rest/components/eth_switches |
| URL Parameters |
none
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Get Switch by ID
| Description |
Return ethernet switch by index
|
| API Endpoint |
GET api/rest/components/eth_switches/{swIdx} |
| URL Parameters |
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"state_description": "",
"vendor": "NETGEAR",
"last_probe_timestamp": 1412508793000,
"firmware": "n/a",
"probe_ttl": 60000,
"state": "ERROR",
"model": "GS116E",
"id": 1
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Event Internal
Create Event
| Description |
|
| API Endpoint |
POST api/internal/events |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
Invalid Operation States |
| System States | Methods |
|
LOCAL
SHUTDOWN
EMERGENCY_SHUTDOWN
|
ALL
|
|
| JSON Data |
{
"retry": false,
"events": [
{
"index": 0,
"code": "ISCSI_CONNECTIVITY_ACTIVE",
"level": "INFO",
"data": [
{
"type": "String",
"name": "paramname",
"value": "paramval"
}
],
"reporter": "RMR",
"visibility": "CUSTOMER",
"description_template": "Some description",
"system_version": "1"
},
{
"index": 1,
"code": "ISCSI_CONNECTIVITY_ACTIVE",
"level": "INFO",
"data": [
{
"type": "String",
"name": "paramname",
"value": "paramval"
}
],
"reporter": "RMR",
"visibility": "CUSTOMER",
"description_template": "Some description",
"system_version": "1"
},
{
"index": 2,
"code": "ISCSI_CONNECTIVITY_ACTIVE",
"level": "INFO",
"data": [
{
"type": "String",
"name": "paramname",
"value": "paramval"
}
],
"reporter": "RMR",
"visibility": "CUSTOMER",
"description_template": "Some description",
"system_version": "1"
}
]
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": [
{
"affected_entity_id": null,
"username": "infinidat",
"code": "ISCSI_CONNECTIVITY_ACTIVE",
"description": "iSCSI obtained direct connectivity between nodes N/A and N/A",
"timestamp": 1774519393640,
"level": "INFO",
"seq_num": 5,
"tenant_id": 1,
"reporter": "RMR",
"visibility": "INFINIDAT",
"system_version": "1",
"source_node_id": 0,
"description_template": "iSCSI obtained direct connectivity between nodes {First_Node_ID} and {Second_Node_ID}",
"data": [
{
"type": "String",
"name": "paramname",
"value": "paramval"
}
],
"id": 5
},
{
"affected_entity_id": null,
"username": "infinidat",
"code": "ISCSI_CONNECTIVITY_ACTIVE",
"description": "iSCSI obtained direct connectivity between nodes N/A and N/A",
"timestamp": 1774519393642,
"level": "INFO",
"seq_num": 6,
"tenant_id": 1,
"reporter": "RMR",
"visibility": "INFINIDAT",
"system_version": "1",
"source_node_id": 0,
"description_template": "iSCSI obtained direct connectivity between nodes {First_Node_ID} and {Second_Node_ID}",
"data": [
{
"type": "String",
"name": "paramname",
"value": "paramval"
}
],
"id": 6
},
{
"affected_entity_id": null,
"username": "infinidat",
"code": "ISCSI_CONNECTIVITY_ACTIVE",
"description": "iSCSI obtained direct connectivity between nodes N/A and N/A",
"timestamp": 1774519393643,
"level": "INFO",
"seq_num": 7,
"tenant_id": 1,
"reporter": "RMR",
"visibility": "INFINIDAT",
"system_version": "1",
"source_node_id": 0,
"description_template": "iSCSI obtained direct connectivity between nodes {First_Node_ID} and {Second_Node_ID}",
"data": [
{
"type": "String",
"name": "paramname",
"value": "paramval"
}
],
"id": 7
}
],
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('affected_entity_id') could not be translated to an expected type |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('something') |
| MISSING_FIELD |
HTTP 400 |
A field ('system_version') is missing in an object passed |
| ILLEGAL_EVENT_DATA |
HTTP 400 |
Illegal event data: Specified data contains more than one entry with the same name |
| AUTHENTICATION_REQUIRED |
HTTP 401 |
The operation requires authentication |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
|
Create Heartbeat Event
| Description |
Create an heartbeat event
|
| API Endpoint |
POST api/internal/events/heartbeat |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": true,
"error": null
}
|
| Errors |
See general list of error codes.
|
Get all Events
| Description |
Get all events
|
| API Endpoint |
GET api/internal/events |
| URL Parameters |
| filter |
RestFilter |
|
| sort |
Sorter |
|
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"affected_entity_id": null,
"index": 35,
"code": "TREEQ_MODIFIED",
"description": "TreeQ 'tq1' in filesystem 'fs1' modified: ACCOUNTING_ONLY inodes (soft threshold 3) and 1GB (soft threshold ACCOUNTING_ONLY)",
"timestamp": 1774519945211,
"level": "INFO",
"seq_num": 272,
"tenant_id": 1,
"reporter": "MGMT",
"visibility": "CUSTOMER",
"username": "infinidat",
"system_version": "dummy",
"source_node_id": 1,
"description_template": "TreeQ '{treeq_name}' in filesystem '{fs_name}' modified: {inode_quota} inodes (soft threshold {inode_soft}) and {capacity_quota} (soft threshold {capacity_soft})",
"data": [
{
"type": "SizeInBytes",
"name": "capacity_soft",
"value": "ACCOUNTING_ONLY"
},
{
"type": "String",
"name": "fs_name",
"value": "fs1"
},
{
"type": "SizeInBytes",
"name": "capacity_quota",
"value": "1GB"
},
{
"type": "SizeWithoutUnit",
"name": "inode_quota",
"value": "ACCOUNTING_ONLY"
},
{
"type": "SizeWithoutUnit",
"name": "inode_soft",
"value": "3"
},
{
"type": "String",
"name": "treeq_name",
"value": "tq1"
}
],
"id": 272,
"node_init_timestamp": 1774519662481
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Elastic Stats
| Description |
Get Elastic stats
|
| API Endpoint |
GET api/internal/events/es/stats |
| URL Parameters |
none
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Event
The Events API provides access to the events generated in the system, and defines rules that control which events are sent by mail.
An Event object looks like this:
{
"timestamp": 1351623383906,
"uuid": "97eb9c8c-bae0-4a82-96cb-6f9e9799eb29",
"reporter": "MGMT",
"id": 2517,
"level": "INFO",
"visibility": "CUSTOMER",
"source_node_id": 1,
"description": "Created snapshot 'volume_1a' id '590' from parent 'volume_1',
"data": [
{
"name": "parent_id",
"type": "VolumeID",
"value": "102"
},
{
"name": "parent_name",
"type": "VolumeName",
"value": "volume_1"
},
{
"name": "vol_name",
"type": "VolumeName",
"value": "volume_1a"
},
{
"name": "vol_id",
"type": "VolumeID",
"value": "590"
}
],
"code": "SNAP_CREATE",
"description_template": "Created snapshot '{vol_name}' id '{vol_id}' from parent '{parent_name}' id '{parent_id}'",
"system_version": "(TBD-unknown)"
}
Create a Custom Event
| Description |
Create a custom event
|
| API Endpoint |
POST api/rest/events/custom |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
Invalid Operation States |
| System States | Methods |
|
LOCAL
SHUTDOWN
EMERGENCY_SHUTDOWN
|
ALL
|
|
| JSON Data |
{
"description_template": "Some description with bad placeholder {specialCharacters)",
"data": null,
"visibility": "CUSTOMER",
"level": "INFO"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"affected_entity_id": 0,
"username": "infinidat",
"code": "CUSTOM_INFO_EVENT",
"description": "Some description",
"timestamp": 1774519819162,
"level": "INFO",
"seq_num": 223,
"tenant_id": 1,
"reporter": "CUSTOM",
"visibility": "CUSTOMER",
"system_version": "8.4.6.20-dev",
"source_node_id": 1,
"description_template": "Some description",
"data": [
{
"type": "int",
"name": "one",
"value": "1"
},
{
"type": "string",
"name": "two",
"value": "abc"
}
],
"id": 223
},
"error": null
}
|
| Errors |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| MISSING_FIELD |
HTTP 400 |
A field ('level') is missing in an object passed |
| ILLEGAL_EVENT_DATA |
HTTP 400 |
Illegal event data: (type) is missing or specified as 'null' |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('something') |
| WRONG_PARAMETER |
HTTP 400 |
The value (Some description with bad placeholder {specialCharacters)) of parameter 'description_template' does not meet a condition: 'field contains illegal placeholder '{dataParam}' format' |
| ILLEGAL_EVENT_LEVEL |
HTTP 409 |
Illegal event level: DUMMY_FIRST. Allowed values: INFO, WARNING, ERROR, CRITICAL |
|
Create External Event
| Description |
Create external event
|
| API Endpoint |
POST api/rest/events |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
Invalid Operation States |
| System States | Methods |
|
LOCAL
SHUTDOWN
EMERGENCY_SHUTDOWN
|
ALL
|
|
| JSON Data |
{
"code": "ECOSYSTEM_TOOLS_HEARTBEAT",
"data": [
{
"type": "String",
"name": "event_desc",
"value": "Test external event with parameter"
}
]
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"affected_entity_id": 0,
"username": "infinidat",
"code": "ECOSYSTEM_TOOLS_HEARTBEAT",
"description": "Test external event with parameter",
"timestamp": 1774519834894,
"level": "INFO",
"seq_num": 240,
"tenant_id": 1,
"reporter": "EXTERNAL",
"visibility": "INFINIDAT",
"system_version": "8.4.6.20-dev",
"source_node_id": 1,
"description_template": "{event_desc}",
"data": [
{
"type": "String",
"name": "event_desc",
"value": "Test external event with parameter"
}
],
"id": 240
},
"error": null
}
|
| Errors |
| UNSUPPORTED_VALUE |
HTTP 400 |
The request contains an unsupported value (null) for field ('data') |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('description') |
| EVENT_NOT_FOUND |
HTTP 404 |
Event not found |
|
Delete Events
| Description |
Deletes events older than a given timestamp
|
| API Endpoint |
DELETE api/rest/events |
| URL Parameters |
| filter |
RestFilter |
Timestamp of the event |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": null,
"error": null
}
|
| Errors |
| RELATION_NOT_SUPPORTED_FOR_FIELD |
HTTP 400 |
Relation 'EQ' is not supported for field 'timestamp' |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('[(id LE 1742984181277)]') could not be translated to an expected type |
| CANNOT_SET_EVENTS_RETENTION_TIME |
HTTP 409 |
Cannot delete events that occurred after 2025-03-26 12:16:22 |
|
Get a Filtered List of Events
| Description |
Get a sorted and filtered list of events.
|
| API Endpoint |
GET api/rest/events |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"id": 643
}
],
"error": null
}
|
| Errors |
| WRONG_PARAMETER |
HTTP 400 |
The value (-10) of parameter 'page_size' does not meet a condition: 'int >= 1' |
| MAX_PAGE_SIZE_VIOLATION |
HTTP 400 |
Requested page size 1001 exceeds range 1..1000 for command 'GetAllEventsFiltered' |
| ACTION_NOT_ALLOWED_FOR_ROLE |
HTTP 403 |
User with role [ADMIN] is not allowed to perform this action |
|
Get all Event Types
| Description |
Return a list of the available events in the system.
|
| API Endpoint |
GET api/rest/events/types |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"codes": [
{
"code": "REPLICATION_GROUP_CREATED",
"description": "Created replication group '{rg_name}'",
"parameters": [
"rg_name",
"rg_id"
],
"level": "INFO",
"reporter": "MGMT",
"visibility": "CUSTOMER"
},
{
"code": "IP_ADDRESS_ENABLED",
"description": "IP Address {IP_Address_ID} on Network Space '{Network_Space_Name}' was enabled",
"parameters": [
"network_space_name",
"ip_address_id"
],
"level": "INFO",
"reporter": "MGMT",
"visibility": "CUSTOMER"
},
{
"code": "SCSI_CONNECTION_OVERLOAD",
"description": "Node {node_id} has detected danger of SCSI starvation; slowing down initiator(s) {initiator_ports} by sending SCSI BUSY",
"parameters": [
"initiator_ports",
"node_id"
],
"level": "WARNING",
"reporter": "BLOCK",
"visibility": "INFINIDAT"
},
{
"code": "UNCOMMITTED_DATA_SESSION_INFO",
"description": "An uncommitted data read session (data set:{dataset_id}, session:{session_id}) has ended:'{details}",
"parameters": [
"dataset_id",
"session_id",
"details"
],
"level": "INFO",
"reporter": "BLOCK",
"visibility": "INFINIDAT"
},
{
"code": "WITNESS_ADDRESS_ADDED",
... TRUNCATED ...
|
| Errors |
See general list of error codes.
|
Get an Event by ID
| Description |
Get an event by its ID.
|
| API Endpoint |
GET api/rest/events/{id} |
| URL Parameters |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Export
Create an Export
| Description |
Create a new export.
|
| API Endpoint |
POST api/rest/exports |
| URL Parameters |
none
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"inner_path": "/",
"pref_write": 16384,
"pref_read": 16384,
"max_read": 32768,
"pref_readdir": 16384,
"transport_protocols": "TCP",
"filesystem_id": 1001,
"max_write": 32768,
"privileged_port": true,
"nfs_version": "NFSv3",
"export_path": "/"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"pref_readdir": 16384,
"updated_at": 1774519187639,
"id": 820,
"pref_write": 16384,
"anonymous_uid": 65534,
"max_write": 32768,
"export_path": "/",
"32bit_file_id": false,
"snapdir_visible": true,
"make_all_users_anonymous": false,
"nfsv4_auth": null,
"filesystem_id": 1001,
"nfs_version": "NFSv3",
"permissions": [
{
"access": "RW",
"no_root_squash": true,
"client": "*"
}
],
"inner_path": "/",
"pref_read": 16384,
"max_read": 32768,
"tenant_id": 1,
"created_at": 1774519187639,
"enabled": true,
"character_encoding": "UTF-8",
"transport_protocols": "TCP",
"anonymous_gid": 65534,
"privileged_port": true
},
"error": null
}
|
| Errors |
| ILLEGAL_PATH_VALUE |
HTTP 400 |
The value '"illegal"' of 'inner_path' is illegal |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('tenant_id') |
| EXPORT_PERMISSION_CLIENTS_COUNT_LIMIT |
HTTP 400 |
The number of export rules exceeds the system limit of 1000 |
| MISSING_FIELD |
HTTP 400 |
A field ('filesystem_id') is missing in an object passed |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('TCCP') could not be translated to an expected type |
| EXPORT_ILLEGAL_VALUE |
HTTP 400 |
The value 'null' of 'filesystem_id' is illegal |
| WRONG_PARAMETER |
HTTP 400 |
The value (-1) of parameter 'anonymous_gid' does not meet a condition: 'must be greater than or equal to 0' |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-b1761c87-d' is forbidden to modify filesystem 'auto-filesystem--45387905-' |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
| INVALID_NFSV4_EXPORT_PATH |
HTTP 409 |
The export path '/' is invalid for NFSv4 exports |
| EXPORT_FILESYSTEM_COUNT_LIMIT |
HTTP 409 |
A new export cannot be created. The filesystem has reached the maximum number of exports |
| NFSV4_AUTH_SCHEME_NOT_SUPPORTED |
HTTP 409 |
The NFSv4 authentication scheme 'nfsv4_auth' is not supported |
| SUSPICIOUS_FILESYSTEM_EXPORT |
HTTP 409 |
A Windows security-style filesystem can only have NFS exports if it already has SMB shares. Either create an SMB share on this filesystem, or create the NFS exports on a UNIX security-style filesystem |
| EXPORTING_SNAPSHOT_DIRECTORY_NOT_ALLOWED |
HTTP 409 |
Exporting an export through its parent filesystem is not allowed. Please export the snapshot directly |
| NFS_PROTOCOL_VERSION_MISMATCH |
HTTP 409 |
The protocol version NFSv4 specified does not match the system settings |
| INTERNAL_PATH_NOT_DIR |
HTTP 409 |
Internal path '/test' is not a directory within filesystem 'auto-filesystem--d633c1d9-' |
| NFSV4_EXPORT_AND_SMB_SHARE_CONFLICT |
HTTP 409 |
A filesystem cannot have both SMB shares and NFSv4 exports |
| EXPORT_PATH_CONFLICT |
HTTP 409 |
An export with this path already exists |
| NFSV4_EXPORT_AND_WINDOWS_FILESYSTEM_CONFLICT |
HTTP 409 |
A WINDOWS security-style filesystem cannot have NFSv4 exports |
| FILESYSTEM_IS_SUSPENDED |
HTTP 409 |
The operation cannot be performed as the filesystem is suspended ('auto-filesystem--ce53aa61-') |
| EXPORT_COUNT_LIMIT |
HTTP 409 |
A new export cannot be created. The system has reached the maximum number of exports |
| EXPORT_ROOT_ACCESS_CONFLICT |
HTTP 409 |
Root permissions cannot be granted on an export with 'squash all users and groups'. Remove one of the two and try again |
| CANNOT_CREATE_EXPORT_FOR_UNESTABLISHED_SNAPSHOT |
HTTP 409 |
Cannot create an export for an unestablished snapshot 'auto-reclaim-rc-15180.0001-15181-1774521501479' |
| INTERNAL_PATH_DOES_NOT_EXIST |
HTTP 409 |
Internal path '/test' does not exist within filesystem 'auto-filesystem--89de4fce-'. FS_ID 1001, export ID 1 |
|
Delete an Export
| Description |
Delete an export.
|
| Approval required |
This is a dangerous operation
Deleting export 'export_path' will cause all the clients mounted on this export to disconnect
|
| API Endpoint |
DELETE api/rest/exports/{id} |
| URL Parameters |
| id |
long |
ID of the export |
| force_if_fs_suspended |
boolean |
force_if_fs_suspended |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"pref_readdir": 16384,
"updated_at": 1774519357030,
"id": 471,
"pref_write": 16384,
"anonymous_uid": 65534,
"max_write": 32768,
"export_path": "/vol//vol1/",
"32bit_file_id": false,
"snapdir_visible": false,
"make_all_users_anonymous": false,
"nfsv4_auth": null,
"filesystem_id": 1001,
"nfs_version": "NFSv3",
"permissions": [
{
"access": "RW",
"no_root_squash": true,
"client": "*"
}
],
"inner_path": "/",
"pref_read": 16384,
"max_read": 32768,
"tenant_id": 1,
"created_at": 1774519355065,
"enabled": true,
"character_encoding": "UTF-8",
"transport_protocols": "TCP",
"anonymous_gid": 65534,
"privileged_port": true
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting export '/vol//vol1/' will cause all the clients mounted on this export to disconnect |
| ACTION_NOT_ALLOWED_FOR_ROLE |
HTTP 403 |
User with role [ADMIN] is not allowed to perform this action |
| FILESYSTEM_IS_SUSPENDED |
HTTP 409 |
The operation cannot be performed as the filesystem is suspended ('auto-filesystem--9be2d893-') |
|
Get all Exports
| Description |
Get all of the exports. Filterable and Sortable fields:anonymous_gid,anonymous_uid,make_all_users_anonymous,character_encoding,created_at,enabled,export_path,32bit_file_id,id,inner_path,snapdir_visible,max_read,max_write,nfs_version,nfsv4_auth,pref_read,pref_readdir,pref_write,privileged_port,transport_protocols,updated_at. |
| API Endpoint |
GET api/rest/exports |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"pref_readdir": 16384,
"updated_at": 1774519355065,
"id": 471,
"pref_write": 16384,
"anonymous_uid": 65534,
"max_write": 32768,
"export_path": "/vol//vol1/",
"32bit_file_id": false,
"snapdir_visible": false,
"make_all_users_anonymous": false,
"nfsv4_auth": null,
"filesystem_id": 1001,
"nfs_version": "NFSv3",
"permissions": [
{
"access": "RW",
"no_root_squash": true,
"client": "*"
}
],
"inner_path": "/",
"pref_read": 16384,
"max_read": 32768,
"tenant_id": 1,
"created_at": 1774519355065,
"enabled": true,
"character_encoding": "UTF-8",
"transport_protocols": "TCP",
"anonymous_gid": 65534,
"privileged_port": true
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get an Export
| Description |
Get an export.
|
| API Endpoint |
GET api/rest/exports/{id} |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"pref_readdir": 16384,
"updated_at": 1774519355065,
"id": 471,
"pref_write": 16384,
"anonymous_uid": 65534,
"max_write": 32768,
"export_path": "/vol//vol1/",
"32bit_file_id": false,
"snapdir_visible": false,
"make_all_users_anonymous": false,
"nfsv4_auth": null,
"filesystem_id": 1001,
"nfs_version": "NFSv3",
"permissions": [
{
"access": "RW",
"no_root_squash": true,
"client": "*"
}
],
"inner_path": "/",
"pref_read": 16384,
"max_read": 32768,
"tenant_id": 1,
"created_at": 1774519355065,
"enabled": true,
"character_encoding": "UTF-8",
"transport_protocols": "TCP",
"anonymous_gid": 65534,
"privileged_port": true
},
"error": null
}
|
| Errors |
| EXPORT_NOT_FOUND |
HTTP 404 |
Export not found |
|
Update an Export
| Description |
Update export attributes.
|
| Approval required |
This is a dangerous operation
Disabling export 'export_path' will cause all clients mounted on this export to disconnect
|
| API Endpoint |
PUT api/rest/exports/{id} |
| URL Parameters |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"enabled": false
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"pref_readdir": 16384,
"updated_at": 1774519356027,
"id": 471,
"pref_write": 16384,
"anonymous_uid": 65534,
"max_write": 32768,
"export_path": "/vol//vol1/",
"32bit_file_id": false,
"snapdir_visible": false,
"make_all_users_anonymous": false,
"nfsv4_auth": null,
"filesystem_id": 1001,
"nfs_version": "NFSv3",
"permissions": [
{
"access": "RW",
"no_root_squash": true,
"client": "*"
}
],
"inner_path": "/",
"pref_read": 16384,
"max_read": 32768,
"tenant_id": 1,
"created_at": 1774519355065,
"enabled": true,
"character_encoding": "UTF-8",
"transport_protocols": "TCP",
"anonymous_gid": 65534,
"privileged_port": true
},
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('a') could not be translated to an expected type |
| EXPORT_ILLEGAL_VALUE |
HTTP 400 |
The value '100000000' of 'max_write' is illegal. The value must be between 16384 and 16777216 |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| NOT_SUPPORTED_MULTIPLE_UPDATE |
HTTP 400 |
This resource does not support updating multiple fields in one request |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('export_path') |
| WRONG_PARAMETER |
HTTP 400 |
The value (127.0.0.1,192.168.0.3) of parameter 'permissions' does not meet a condition: '*, valid IP or IP range' |
| APPROVAL_REQUIRED |
HTTP 403 |
Disabling export '/vol//vol1/' will cause all clients mounted on this export to disconnect |
| INVALID_NFSV4_EXPORT_PATH |
HTTP 409 |
The export path '/' is invalid for NFSv4 exports |
| NFSV4_AUTH_SCHEME_NOT_SUPPORTED |
HTTP 409 |
The NFSv4 authentication scheme 'nfsv4_auth' is not supported |
| FILESYSTEM_IS_SUSPENDED |
HTTP 409 |
The operation cannot be performed as the filesystem is suspended ('auto-filesystem--27e923f2-') |
| EXPORT_ROOT_ACCESS_CONFLICT |
HTTP 409 |
Root permissions cannot be granted on an export with 'squash all users and groups'. Remove one of the two and try again |
| TARGET_REPLICA_EXPORT_NOT_ALLOWED |
HTTP 409 |
A replica target cannot be exported |
| INTERNAL_PATH_NOT_DIR |
HTTP 409 |
Internal path '/' is not a directory within filesystem 'auto-filesystem--d633c1d9-' |
| NFS_PROTOCOL_VERSION_MISMATCH |
HTTP 409 |
The protocol version NFSv4 specified does not match the system settings |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Updating an export of an S3 filesystem is not supported |
| EXPORT_IS_ENABLED |
HTTP 409 |
The operation is prohibited on an enabled export |
| NFSV4_EXPORT_AND_WINDOWS_FILESYSTEM_CONFLICT |
HTTP 409 |
A WINDOWS security-style filesystem cannot have NFSv4 exports |
|
External Services
Get Service State
| Description |
Return a specific external service status
|
| API Endpoint |
GET api/rest/external_services/{service} |
| URL Parameters |
| service |
String |
Service name |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
|
| Errors |
| NO_SUCH_SERVICE |
HTTP 404 |
No such service ('non-existing') |
|
List External Services
| Description |
List the external services
|
| API Endpoint |
GET api/rest/external_services |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 2,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"node_states": null,
"health": null,
"name": "elastic",
"cluster_state": "RED"
},
{
"node_states": [
{
"part_of_cluster": false,
"state": "failed",
"node_id": 1,
"role": "UNAVAILABLE"
},
{
"part_of_cluster": false,
"state": "failed",
"node_id": 2,
"role": "UNAVAILABLE"
},
{
"part_of_cluster": false,
"state": "failed",
"node_id": 3,
"role": "UNAVAILABLE"
}
],
"name": "postgresql",
"cluster_state": "RED"
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Start Service
| Description |
Start en external service
|
| API Endpoint |
POST api/rest/external_services/{service}/start |
| URL Parameters |
| service |
String |
Service name |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Stop Service
| Description |
Stop en external service
|
| API Endpoint |
POST api/rest/external_services/{service}/stop |
| URL Parameters |
| service |
String |
Service name |
|
| Roles |
INFINIDAT,
TECHNICIAN
|
| System States |
ACTIVE
|
| JSON Data |
{
"kind": null,
"node_id": 5
}
|
| Returns |
|
| Errors |
| ILLEGAL_NODE_ID |
HTTP 404 |
Illegal node ID 5. Legal values 1 |
|
FC Port
Disable FC Port
| Description |
disable fc port
|
| Approval required |
This is a dangerous operation
Disabling this FC port may lead to a degraded host connectivity or a complete host disconnection
|
| API Endpoint |
POST api/rest/components/nodes/{id}/fc_ports/{fc}/disable |
| URL Parameters |
| id |
String |
The node id |
| fc |
int |
The port id |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"connection_speed": null,
"state_description": "",
"hba_port_number": 1,
"sfp_type": null,
"SFP_Laser_Bias_Current_mA": null,
"link_state": null,
"TX_power_low_Warning_THLD_mW": null,
"soft_target_addresses": [],
"id": 1,
"sfp_model": null,
"SFP_Voltage_Volt": null,
"wwnn": "57:42:b0:f0:00:00:13:00",
"qla_errs": 0,
"hardware_revision": null,
"firmware": null,
"state": "OK",
"role": "HARD_PORT",
"TX_power_high_Warning_THLD_mW": null,
"switch_vendor": "",
"laser_power_level_state": null,
"vendor": "QLogic",
"last_probe_timestamp": 1390254043000,
"RX_power_low_Warning_THLD_mW": null,
"laser_RX_power_mW": null,
"max_speed": null,
"laser_TX_power_mW": null,
"laser_power_level_state_description": null,
"probe_ttl": 10000,
"enabled": false,
"node_index": 1,
"SFP_Temperature_Deg_C": null,
"system_interface_port_number": 1,
"wwpn": "57:42:b0:f0:00:00:13:11",
"RX_power_high_Warning_THLD_mW": null,
"model": "unknown",
"switch_wwnn": ""
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Disabling this FC port may lead to a degraded host connectivity or a complete host disconnection |
| PORT_ALREADY_DISABLED |
HTTP 409 |
Cannot disable a disabled port |
|
Enable FC Port With Role
| Description |
enable fc port and set role
|
| API Endpoint |
POST api/rest/components/nodes/{id}/fc_ports/{fc}/enable |
| URL Parameters |
| id |
String |
The node id |
| fc |
int |
The port id |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
{
"role": "SOFT_PORT"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"connection_speed": 8000000000,
"state_description": "",
"hba_port_number": 1,
"sfp_type": null,
"SFP_Laser_Bias_Current_mA": null,
"link_state": "UP",
"TX_power_low_Warning_THLD_mW": null,
"soft_target_addresses": [],
"id": 1,
"sfp_model": null,
"SFP_Voltage_Volt": null,
"wwnn": "57:42:b0:f0:00:00:13:00",
"qla_errs": 0,
"hardware_revision": null,
"firmware": "5.3.13",
"state": "OK",
"role": "HARD_PORT",
"TX_power_high_Warning_THLD_mW": null,
"switch_vendor": "skynet",
"laser_power_level_state": null,
"vendor": "QLogic",
"last_probe_timestamp": 1390254043000,
"RX_power_low_Warning_THLD_mW": null,
"laser_RX_power_mW": null,
"max_speed": 8000000000,
"laser_TX_power_mW": null,
"laser_power_level_state_description": null,
"probe_ttl": 10000,
"enabled": true,
"node_index": 1,
"SFP_Temperature_Deg_C": null,
"system_interface_port_number": 1,
"wwpn": "57:42:b0:f0:00:00:13:11",
"RX_power_high_Warning_THLD_mW": null,
"model": "ISP2532",
"switch_wwnn": "ca:11:f0:49:1a:ac:e3:ff"
},
"error": null
}
|
| Errors |
| PORT_ALREADY_ENABLED |
HTTP 409 |
Cannot enable an enabled port |
| PORT_OPERATION_FAILED |
HTTP 409 |
Operation 'enable and set port role' on port system.racks[1].nodes[1].fc_ports[1] failed. Requested role is illegal |
|
Get FC Port
| Description |
Return fc port by id
|
| API Endpoint |
GET api/rest/components/nodes/{id}/fc_ports/{fc} |
| URL Parameters |
| id |
String |
The node id |
| fc |
int |
The port id |
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"connection_speed": null,
"state_description": "",
"hba_port_number": 1,
"sfp_type": null,
"SFP_Laser_Bias_Current_mA": null,
"link_state": "DOWN",
"TX_power_low_Warning_THLD_mW": null,
"soft_target_addresses": [],
"id": 1,
"sfp_model": null,
"SFP_Voltage_Volt": null,
"wwnn": null,
"qla_errs": 0,
"hardware_revision": null,
"firmware": null,
"state": "MISSING",
"role": "HARD_PORT",
"TX_power_high_Warning_THLD_mW": null,
"switch_vendor": "",
"laser_power_level_state": null,
"vendor": "",
"last_probe_timestamp": 0,
"RX_power_low_Warning_THLD_mW": null,
"laser_RX_power_mW": null,
"max_speed": null,
"laser_TX_power_mW": null,
"laser_power_level_state_description": null,
"probe_ttl": 10000,
"enabled": true,
"node_index": 1,
"SFP_Temperature_Deg_C": null,
"system_interface_port_number": 1,
"wwpn": null,
"RX_power_high_Warning_THLD_mW": null,
"model": "",
"switch_wwnn": ""
},
"error": null
}
|
| Errors |
| PORT_NOT_FOUND |
HTTP 404 |
Port not found |
|
Get FC Ports
| Description |
Return fc ports for specific node
|
| API Endpoint |
GET api/rest/components/nodes/{id}/fc_ports/ |
| URL Parameters |
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 8,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"connection_speed": null,
"state_description": "",
"hba_port_number": 1,
"sfp_type": null,
"SFP_Laser_Bias_Current_mA": null,
"link_state": "DOWN",
"TX_power_low_Warning_THLD_mW": null,
"soft_target_addresses": [],
"id": 1,
"sfp_model": null,
"SFP_Voltage_Volt": null,
"wwnn": null,
"qla_errs": 0,
"hardware_revision": null,
"firmware": null,
"state": "MISSING",
"role": "HARD_PORT",
"TX_power_high_Warning_THLD_mW": null,
"switch_vendor": "",
"laser_power_level_state": null,
"vendor": "",
"last_probe_timestamp": 0,
"RX_power_low_Warning_THLD_mW": null,
"laser_RX_power_mW": null,
"max_speed": null,
"laser_TX_power_mW": null,
"laser_power_level_state_description": null,
"probe_ttl": 10000,
"enabled": true,
"node_index": 1,
"SFP_Temperature_Deg_C": null,
"system_interface_port_number": 1,
"wwpn": null,
"RX_power_high_Warning_THLD_mW": null,
"model": "",
"switch_wwnn": ""
},
{
"connection_speed": null,
"state_description": "",
"hba_port_number": 2,
"sfp_type": null,
"SFP_Laser_Bias_Current_mA": null,
"link_state": "DOWN",
"TX_power_low_Warning_THLD_mW": null,
"soft_target_addresses": [],
"id": 2,
"sfp_model": null,
"SFP_Voltage_Volt": null,
"wwnn": null,
... TRUNCATED ...
|
| Errors |
See general list of error codes.
|
FC Switch
Delete FC Switch
| Description |
Delete fc switch from the system
|
| API Endpoint |
DELETE api/rest/fc/switches/{id} |
| URL Parameters |
| id |
long |
The id of the fc switch to delete |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"wwnn": "wwnn",
"vendor": "skynet2",
"resiliency_state": "N/A",
"resiliency_bitmap": null,
"id": 1278,
"name": "2"
},
"error": null
}
|
| Errors |
| FC_SWITCH_NOT_FOUND |
HTTP 404 |
FC switch not found |
| FC_SWITCH_NOT_DISCONNECTED |
HTTP 409 |
FC switch '2' is not disconnected - Please disconnect it first |
|
Get all FC Switches
| Description |
Return fc switches according to filter and sort params Filterable and Sortable fields:id,name,vendor,wwnn. |
| API Endpoint |
GET api/rest/fc/switches |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 2,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"wwnn": "auto-wwnn--4fddc6b2-a385-4",
"vendor": "auto-vendor--b388194c-f560",
"resiliency_state": "DISCONNECTED",
"resiliency_bitmap": [
false
],
"id": 1297,
"name": "auto-fcSwitch--867ba9a5-ee"
},
{
"wwnn": "wwnn",
"vendor": "skynet",
"resiliency_state": "OK",
"resiliency_bitmap": [
true
],
"id": 1299,
"name": "2"
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get FC Switch by ID
| Description |
Get information for single fc switch
|
| API Endpoint |
GET api/rest/fc/switches/{id} |
| URL Parameters |
| id |
long |
The id of the fc switch to get data for |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"wwnn": "wwnn",
"vendor": "skynet",
"resiliency_state": "N/A",
"resiliency_bitmap": null,
"id": 1234,
"name": "1"
},
"error": null
}
|
| Errors |
| FC_SWITCH_NOT_FOUND |
HTTP 404 |
FC switch not found |
|
Rename FC Switch by ID
| Description |
Rename a single fc switch by id
|
| API Endpoint |
PUT api/rest/fc/switches/{id} |
| URL Parameters |
| id |
long |
The id of the fc switch to rename |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"name": "1"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"wwnn": "wwnn",
"vendor": "skynet",
"resiliency_state": "OK",
"resiliency_bitmap": [
true
],
"id": 1234,
"name": "5"
},
"error": null
}
|
| Errors |
| FC_SWITCH_NAME_CONFLICT |
HTTP 409 |
A FC switch with this name already exists |
|
Filesystem
Create Filesystem
| Description |
Create a filesystem
|
| Approval required |
This is a dangerous operation
Dataset 'datasetName' will be added to SSA Express cache
|
| API Endpoint |
POST api/rest/filesystems |
| URL Parameters |
| replicate_to_async_target |
boolean |
Replicate the created snapshot/s to the remote side |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"used_capacity_critical": 100,
"name": "auto-filesystem--c5bc6fd4-",
"pool_id": 1000,
"used_capacity_warning": 100,
"atime_mode": "NOATIME",
"security_style": "WINDOWS",
"provtype": "THIN",
"size": 1000000000
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"suspend_state": "NONE",
"atime_granularity": 0,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"posix_file_ownership": false,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"is_consistent": true,
"qos_shared_policy_id": null,
"promote_source_id": null,
"data_reduction_ratio": 1.0,
"is_internal": false,
"reducible_data_disk_usage_capacity": null,
"has_children": false,
"replica_ids": [],
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"name": "auto-filesystem--c5bc6fd4-",
"family_id": 1001,
"mapped": false,
"rmr_active_active_peer": false,
"_is_established": true,
"has_internal_children": null,
"security_style": "WINDOWS",
"reducible_data_percents": null,
"used_capacity_critical": 100,
"snapshot_policy_id": 382,
"non_reducible_data_percents": null,
"snapdir_name": ".snapshot",
"lock_state": "UNLOCKED",
"visible_in_snapdir": false,
"created_by_snapshot_policy_id": null,
"worm_legal_hold": null,
"cg_id": null,
"created_by_schedule_name": null,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"non_reducible_host_written_data": null,
"rmr_target": false,
"used_capacity_warning": 100,
"cg_name": null,
"qos_policy_name": null,
"allocated": 0,
"snapshot_retention": null,
"size": 1000013824,
"parent_id": 0,
"remote_snapshot_retention_lock": null,
"worm_level": "NONE",
"_reclaimed_snapshot_remote_system_serial": null,
"type": "MASTER",
"_cg_guid": null,
"compression_suppressed": null,
"replication_types": [
"NONE"
],
"zeros_capacity": null,
"atime_mode": "NOATIME",
"rmr_snapshot_guid": null,
"reducible_host_written_data": null,
"capacity_savings_per_entity": null,
"qos_shared_policy_name": null,
"modified": true,
"compression_enabled": true,
"nfs_filesystem_id": 4,
"write_protected": false,
"rmr_source": false,
"remote_snapshot_retention": null,
"host_written_data": null,
"created_by_snapshot_policy_name": null,
"_cg_snapshot_guid": null,
"updated_at": 1774519084484,
"worm_default_retention": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1001,
"ssd_enabled": true,
"snapshot_policy_name": "Default Policy",
"snapdir_accessible": true,
"created_by_schedule_id": null,
"reducible_data_reduction_ratio": null,
"pool_name": "auto-pool--bd89dbd2-ab5f-4",
"used": 0,
"mobility_source": null,
"tree_allocated": 0,
"data": 1001,
"lock_expires_at": null,
"capacity_savings": null,
"data_snapshot_guid": null,
"tenant_id": 1,
"created_at": 1774519084484,
"worm_max_retention": null,
"depth": 0,
"dataset_type": "FILESYSTEM",
"num_blocks": 1953152
},
"error": null
}
|
| Errors |
| MISSING_FIELD |
HTTP 400 |
A field ('size') is missing in an object passed |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('tenant_id') |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('security_style') could not be translated to an expected type |
| ILLEGAL_THRESHOLD_VALUE |
HTTP 400 |
Illegal threshold value: 0 |
| WRONG_PARAMETER |
HTTP 400 |
The value (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) of parameter 'snapdir_name' does not meet a condition: 'size must be between 1 and 255' |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name '..' |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for [POOL_ADMIN] |
| INVALID_SSA_EXPRESS_DATASET_TYPE |
HTTP 403 |
SSA Express does not support snapshots, consistency groups, snapshot groups and vVols |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-b1761c87-d' is forbidden to modify pool 'auto-pool--10442010-bd21-4' |
| APPROVAL_REQUIRED |
HTTP 403 |
Dataset 'auto-filesystem--73a76baa-' will be added to SSA Express cache |
| SSA_EXPRESS_BUSY |
HTTP 403 |
You cannot add or remove a dataset from SSA Express that is in the process of being removed or added to SSA Express |
| SNAPSHOT_POLICY_NOT_FOUND |
HTTP 404 |
Snapshot policy not found |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
| SSA_EXPRESS_DATASET_MUST_BE_SSD_ENABLED |
HTTP 409 |
Datasets in SSA Express cache must be SSD enabled |
| DATASET_MIN_CAPACITY |
HTTP 409 |
The requested filesystem size is less than the minimum filesystem size: 1GB |
| FILESYSTEM_FAMILY_COUNT_LIMIT |
HTTP 409 |
A new filesystem family cannot be created. The system has reached the maximum number of filesystem families |
| ATIME_GRANULARITY_BELOW_MIN_LIMIT |
HTTP 409 |
Cannot set the atime_granularity to less than 3600 seconds |
| CANNOT_TAKE_SNAPSHOT |
HTTP 409 |
Cannot take a snapshot due to a background process. Please retry later |
| INSUFFICIENT_SSA_EXPRESS_CAPACITY |
HTTP 409 |
Not enough free capacity in SSA Express cache for this action |
| INVALID_FILESYSTEM_ROOT_MODE |
HTTP 409 |
Invalid filesystem root mode 'bad value' |
| FILESYSTEM_COUNT_LIMIT |
HTTP 409 |
A new filesystem cannot be created. The system has reached the maximum number of filesystems |
| REPLICA_ALREADY_RECLAIMED |
HTTP 409 |
The entity requested is a replication staging area and has already been reclaimed with name auto-filesystem--bc03cc3a- |
| ILLEGAL_POOL_TYPE |
HTTP 409 |
Cannot create a FILESYSTEM 'fs1' in vVol pool 'storage container' because it is dedicated for VMware vVols |
| UNSUPPORTED_WORM_DEFAULT_RETENTION |
HTTP 409 |
worm_default_retention field cannot be set for non-WORM filesystems |
| UNSUPPORTED_SNAPSHOT_WORM_FILESYSTEM |
HTTP 409 |
Cannot create A WORM filesystem snapshot |
| WORM_FS_NOT_SUPPORTED |
HTTP 409 |
WORM filesystems are not supported |
| MAX_TREE_DEPTH |
HTTP 409 |
Tree depth limit reached |
| NAS_DISABLED |
HTTP 409 |
The NAS service is currently disabled. The requested filesystem operation cannot be performed |
| INVALID_LOCK_DURATION |
HTTP 409 |
Lock expiry cannot exceed 365 days |
| WRITABLE_LOCKED_SNAPSHOT |
HTTP 409 |
A snapshot cannot be both writable and locked |
| UNSUPPORTED_FILESYSTEM_SECURITY_STYLE |
HTTP 409 |
Setting Posix File Ownership is not supported on a unix filesystem |
| INVALID_LOCK_EXPIRY |
HTTP 409 |
Lock expiry date has to be in the future |
| FILESYSTEM_IS_SUSPENDED |
HTTP 409 |
The operation cannot be performed as the filesystem is suspended ('auto-filesystem--c1ec82c8-') |
| FILESYSTEM_NAME_EQUALS_TO_SNAPDIR |
HTTP 409 |
Filesystem name '.MySnapDir' cannot be identical to the name of the filesystem's snapshot directory or to the default snapshot directory name |
| INTERNAL_PATH_NOT_DIR |
HTTP 409 |
Internal path '/i/am/internal/path' is not a directory within filesystem 'auto-filesystem--553161f1-' |
| MAX_FAMILY_SIZE |
HTTP 409 |
The filesystem family whose root is 'auto-filesystem--6748a856-' now has 10 snapshots, which is the maximum allowed. New snapshots for this family can only be created after other snapshots are deleted |
| DATASET_COUNT_LIMIT |
HTTP 409 |
The request exceeds the dataset count limit |
| REPLICA_INCONSISTENT_DATASETS |
HTTP 409 |
Taking a snapshot cannot be completed because at least one dataset has not reached a consistent state |
| ILLEGAL_WARNING_OR_CRITICAL_VALUE |
HTTP 409 |
Illegal value 90. Critical value (75) must be greater than warning value (90) |
| CANNOT_CREATE_WRITABLE_SNAPSHOT |
HTTP 409 |
A snapshot of a replica target cannot be write-enabled when created |
| FILESYSTEM_NAME_CONFLICT |
HTTP 409 |
An entity with this name already exists |
| INVALID_LOCK_ENTITY_TYPE |
HTTP 409 |
Locking filesystem is not allowed |
| ILLEGAL_WORM_DEFAULT_RETENTION |
HTTP 409 |
The filesystem's 'WORM default retention' value must be at least 86400 seconds and no more than 157680000 seconds |
|
Create Filesystem Snapshot
| Description |
Create a filesystem
|
| API Endpoint |
POST api/rest/filesystems |
| URL Parameters |
| replicate_to_async_target |
boolean |
Replicate the created snapshot/s to the remote side |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"parent_id": 1003,
"name": "auto-rmr-test-snap-2a2d923"
}
|
| Returns |
|
| Errors |
| REPLICA_INCONSISTENT_DATASETS |
HTTP 409 |
Taking a snapshot cannot be completed because at least one dataset has not reached a consistent state |
|
Delete Filesystem
| Description |
Delete a filesystem
|
| Approval required |
This is a dangerous operation
The entity 'volume_name' will be deleted. The data that is stored on the entity will be lost with no way to recover it
|
| API Endpoint |
DELETE api/rest/filesystems/{id} |
| URL Parameters |
| id |
long |
ID of the filesystem to delete |
| force_if_snapshot_locked |
boolean |
force_if_snapshot_locked |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"suspend_state": "NONE",
"atime_granularity": 0,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"posix_file_ownership": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"is_consistent": true,
"qos_shared_policy_id": null,
"promote_source_id": null,
"data_reduction_ratio": 1.0,
"is_internal": false,
"reducible_data_disk_usage_capacity": null,
"has_children": false,
"replica_ids": [],
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"name": "auto-fs--eed6a722-3581-4ac",
"family_id": 1001,
"mapped": false,
"rmr_active_active_peer": false,
"_is_established": true,
"has_internal_children": null,
"security_style": "UNIX",
"reducible_data_percents": null,
"used_capacity_critical": 100,
"snapshot_policy_id": null,
"non_reducible_data_percents": null,
"snapdir_name": ".snapshot",
"lock_state": "UNLOCKED",
"visible_in_snapdir": false,
"created_by_snapshot_policy_id": null,
"worm_legal_hold": null,
"cg_id": null,
"created_by_schedule_name": null,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"non_reducible_host_written_data": null,
"rmr_target": false,
"used_capacity_warning": 100,
"cg_name": null,
"qos_policy_name": null,
"allocated": 0,
"snapshot_retention": null,
"size": 1000013824,
"parent_id": 0,
"remote_snapshot_retention_lock": null,
"worm_level": "NONE",
"_reclaimed_snapshot_remote_system_serial": null,
"type": "MASTER",
"_cg_guid": null,
"compression_suppressed": null,
"replication_types": [
"NONE"
],
"zeros_capacity": null,
"atime_mode": "NOATIME",
"rmr_snapshot_guid": null,
"reducible_host_written_data": null,
"capacity_savings_per_entity": null,
"qos_shared_policy_name": null,
"modified": true,
"compression_enabled": true,
"nfs_filesystem_id": 32,
"write_protected": false,
"rmr_source": false,
"remote_snapshot_retention": null,
"host_written_data": null,
"created_by_snapshot_policy_name": null,
"_cg_snapshot_guid": null,
"updated_at": 1774520015991,
"worm_default_retention": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1001,
"ssd_enabled": true,
"snapshot_policy_name": null,
"snapdir_accessible": true,
"created_by_schedule_id": null,
"reducible_data_reduction_ratio": null,
"pool_name": "auto-pool--5139e76c-5119-4",
"used": 0,
"mobility_source": null,
"tree_allocated": 0,
"data": 1001,
"lock_expires_at": null,
"capacity_savings": null,
"data_snapshot_guid": null,
"tenant_id": 1,
"created_at": 1774520015991,
"worm_max_retention": null,
"depth": 0,
"dataset_type": "FILESYSTEM",
"num_blocks": 1953152
},
"error": null
}
|
| Errors |
| SSA_EXPRESS_BUSY |
HTTP 403 |
You cannot add or remove a dataset from SSA Express that is in the process of being removed or added to SSA Express |
| APPROVAL_REQUIRED |
HTTP 403 |
The snapshot 'auto-filesystem--71273fa8-' will be deleted. The data that is stored on the snapshot will be lost with no way to recover it |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
| FILESYSTEM_HAS_EXPORT |
HTTP 409 |
The filesystem cannot be deleted. Filesystem 'auto-filesystem--fc99088b-' has active export(s) |
| FILESYSTEM_HAS_SHARES |
HTTP 409 |
The filesystem 'auto-filesystem--202ab516-' cannot be deleted because it has active shares |
| FILESYSTEM_WORM_SUSPENDED |
HTTP 409 |
Cannot delete a suspended WORM filesystem |
| FILESYSTEM_WORM_LEGAL_HOLD_ENABLED |
HTTP 409 |
Cannot delete a WORM filesystem under legal hold |
| FILESYSTEM_WORM_LOCKED_FILES |
HTTP 409 |
Cannot delete a WORM filesystem that has locked files |
| REPLICATED_DATASET_DELETE_NOT_ALLOWED |
HTTP 409 |
A replicated filesystem cannot be deleted. Remove the replication, then delete the filesystem |
| CHILD_FILESYSTEMS_HAVE_EXPORTS |
HTTP 409 |
The filesystem 'auto-filesystem--11e967c5-' cannot be deleted. One or more of its children have active export(s) |
| DELETE_LOCKED_SNAPSHOT |
HTTP 409 |
Snapshot 'snap' is locked, and can only be deleted after '2026-03-31 13:29:41' UTC |
| CHILD_FILESYSTEMS_HAVE_SHARES |
HTTP 409 |
The filesystem 'auto-filesystem--aa8005f1-' cannot be deleted because one or more of its children have active shares |
| DELETE_SNAPSHOT_WITH_LOCKED_DESCENDANTS |
HTTP 409 |
Snapshot 'auto-filesystem--2295a88a-' has locked descendants, and can only be deleted after they expire, on: '2026-03-31 13:29:49' UTC |
|
Delete Simulation
| Description |
Return an estimate of the reclaimed space in case of filesystem deletion
|
| API Endpoint |
POST api/rest/filesystems/delete_simulation |
| URL Parameters |
none
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"entities": [
1001,
1002
]
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"valid": true,
"space_reclaimable": 0
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get all Filesystems
| Description |
Return a filtered and sorted list of filesystems. Filterable and Sortable fields:atime_granularity,atime_mode,_cg_guid,_cg_snapshot_guid,compression_enabled,is_consistent,created_at,data_snapshot_guid,dataset_type,depth,_is_established,family_id,nfs_filesystem_id,id,lock_expires_at,mapped,mgmt_snapshot_guid,mobility_source,name,posix_file_ownership,provtype,_reclaimed_snapshot_remote_system_serial,remote_snapshot_retention,remote_snapshot_retention_lock,rmr_active_active_peer,rmr_snapshot_guid,rmr_source,rmr_target,security_style,serial,size,snapdir_accessible,snapdir_name,snapshot_retention,ssa_express_enabled,ssd_enabled,suspend_state,type,updated_at,used_capacity_critical,used_capacity_warning,worm_default_retention,worm_legal_hold,worm_level,write_protected. Filterable only fields:reducible_data_percents,reducible_data_reduction_ratio. |
| API Endpoint |
GET api/rest/filesystems |
| URL Parameters |
| show_worm_max_retention |
boolean |
Determines if the worm_max_retention property (used by WORM filesystems) is shown |
| include_data_reduction_hist |
boolean |
Show the effective capacity histogram and reserve fields |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"disk_usage": null,
"suspend_state": "NONE",
"atime_granularity": 0,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"posix_file_ownership": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"is_consistent": true,
"qos_shared_policy_id": null,
"promote_source_id": null,
"data_reduction_ratio": 1.0,
"is_internal": false,
"reducible_data_disk_usage_capacity": null,
"has_children": false,
"replica_ids": [],
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"name": "auto-filesystem--40a66814-",
"family_id": 1001,
"mapped": false,
"rmr_active_active_peer": false,
"_is_established": true,
"has_internal_children": null,
"security_style": "UNIX",
"reducible_data_percents": null,
"used_capacity_critical": 100,
"snapshot_policy_id": 1903,
"non_reducible_data_percents": null,
"snapdir_name": ".snapshot",
"lock_state": "UNLOCKED",
"visible_in_snapdir": false,
"created_by_snapshot_policy_id": null,
"worm_legal_hold": null,
"cg_id": null,
"created_by_schedule_name": null,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"non_reducible_host_written_data": null,
"rmr_target": false,
"used_capacity_warning": 100,
"cg_name": null,
"qos_policy_name": null,
"allocated": 0,
"snapshot_retention": null,
"size": 1000013824,
"parent_id": 0,
"remote_snapshot_retention_lock": null,
"worm_level": "NONE",
"_reclaimed_snapshot_remote_system_serial": null,
"type": "MASTER",
"_cg_guid": null,
"compression_suppressed": null,
"replication_types": [
"NONE"
],
"zeros_capacity": null,
"atime_mode": "NOATIME",
"rmr_snapshot_guid": null,
"reducible_host_written_data": null,
"capacity_savings_per_entity": null,
"qos_shared_policy_name": null,
"modified": true,
"compression_enabled": true,
"nfs_filesystem_id": 73,
"write_protected": false,
"rmr_source": false,
"remote_snapshot_retention": null,
"host_written_data": null,
"created_by_snapshot_policy_name": null,
"_cg_snapshot_guid": null,
"updated_at": 1774519585094,
"worm_default_retention": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1001,
"ssd_enabled": true,
"snapshot_policy_name": "Default Policy",
"snapdir_accessible": true,
"created_by_schedule_id": null,
"reducible_data_reduction_ratio": null,
"pool_name": "auto-pool--7c24f751-cc9d-4",
"used": 0,
"mobility_source": null,
"tree_allocated": 0,
"data": 1001,
"lock_expires_at": null,
"capacity_savings": null,
"data_snapshot_guid": null,
"tenant_id": 1,
"created_at": 1774519585094,
"worm_max_retention": null,
"depth": 0,
"dataset_type": "FILESYSTEM",
"num_blocks": 1953152
}
],
"error": null
}
|
| Errors |
| NOT_SORTABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be sortable: ('root_mode') |
| NOT_FILTERABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be filtered: ('root_mode') |
|
Get Filesystem by ID
| Description |
Return a filesystem by ID
|
| API Endpoint |
GET api/rest/filesystems/{id} |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"suspend_state": "NONE",
"atime_granularity": 0,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"posix_file_ownership": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"is_consistent": true,
"qos_shared_policy_id": null,
"promote_source_id": null,
"data_reduction_ratio": 1.0,
"is_internal": false,
"reducible_data_disk_usage_capacity": null,
"has_children": false,
"replica_ids": [],
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"name": "auto-filesystem--fe5995a8-",
"family_id": 1001,
"mapped": false,
"rmr_active_active_peer": false,
"_is_established": true,
"has_internal_children": null,
"security_style": "UNIX",
"reducible_data_percents": null,
"used_capacity_critical": 100,
"snapshot_policy_id": 468,
"non_reducible_data_percents": null,
"snapdir_name": ".snapshot",
"lock_state": "UNLOCKED",
"visible_in_snapdir": false,
"created_by_snapshot_policy_id": null,
"worm_legal_hold": null,
"cg_id": null,
"created_by_schedule_name": null,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"non_reducible_host_written_data": null,
"rmr_target": false,
"used_capacity_warning": 100,
"cg_name": null,
"qos_policy_name": null,
"allocated": 0,
"snapshot_retention": null,
"size": 1000013824,
"parent_id": 0,
"remote_snapshot_retention_lock": null,
"worm_level": "NONE",
"_reclaimed_snapshot_remote_system_serial": null,
"type": "MASTER",
"_cg_guid": null,
"compression_suppressed": null,
"replication_types": [
"NONE"
],
"zeros_capacity": null,
"atime_mode": "NOATIME",
"rmr_snapshot_guid": null,
"reducible_host_written_data": null,
"capacity_savings_per_entity": null,
"qos_shared_policy_name": null,
"modified": true,
"compression_enabled": true,
"nfs_filesystem_id": 1,
"write_protected": false,
"rmr_source": false,
"remote_snapshot_retention": null,
"host_written_data": null,
"created_by_snapshot_policy_name": null,
"_cg_snapshot_guid": null,
"updated_at": 1774519353694,
"worm_default_retention": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1001,
"ssd_enabled": true,
"snapshot_policy_name": "Default Policy",
"snapdir_accessible": true,
"created_by_schedule_id": null,
"reducible_data_reduction_ratio": null,
"pool_name": "auto-pool--55654847-6d02-4",
"used": 0,
"mobility_source": null,
"tree_allocated": 0,
"data": 1001,
"lock_expires_at": null,
"capacity_savings": null,
"data_snapshot_guid": null,
"tenant_id": 1,
"created_at": 1774519353694,
"worm_max_retention": null,
"depth": 0,
"dataset_type": "FILESYSTEM",
"num_blocks": 1953152
},
"error": null
}
|
| Errors |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
|
Get Replication Pairs by Filesystem ID
| Description |
Returns filesystem replication pairs
|
| API Endpoint |
GET api/rest/filesystems/{id}/replication_pairs |
| URL Parameters |
| id |
long |
ID of the filesystem |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"local_base_action": "CREATE",
"local_entity": {
"disk_usage": null,
"suspend_state": "NONE",
"atime_granularity": 0,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"posix_file_ownership": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"is_consistent": true,
"qos_shared_policy_id": null,
"promote_source_id": null,
"data_reduction_ratio": 1.0,
"is_internal": false,
"reducible_data_disk_usage_capacity": null,
"has_children": false,
"replica_ids": [
15180
],
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"name": "auto-replica-fs--8829339d-",
"family_id": 1003,
"mapped": false,
"rmr_active_active_peer": false,
"_is_established": false,
"has_internal_children": null,
"security_style": "UNIX",
"reducible_data_percents": null,
"used_capacity_critical": 100,
"snapshot_policy_id": null,
"non_reducible_data_percents": null,
"snapdir_name": ".snapshot",
"lock_state": "UNLOCKED",
"visible_in_snapdir": false,
"created_by_snapshot_policy_id": null,
"worm_legal_hold": null,
"cg_id": null,
"created_by_schedule_name": null,
"qos_policy_id": null,
... TRUNCATED ...
|
| Errors |
See general list of error codes.
|
Move a Filesystem Between Pools
| Description |
Move a filesystem from one pool to another
|
| API Endpoint |
POST api/rest/filesystems/{id}/move |
| URL Parameters |
| id |
long |
The ID of the filesystem to move |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"pool_id": 1000,
"with_capacity": false
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"suspend_state": "NONE",
"atime_granularity": 0,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"posix_file_ownership": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"is_consistent": true,
"qos_shared_policy_id": null,
"promote_source_id": null,
"data_reduction_ratio": 1.0,
"is_internal": false,
"reducible_data_disk_usage_capacity": null,
"has_children": false,
"replica_ids": [],
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"name": "auto-filesystem--656c7034-",
"family_id": 1002,
"mapped": false,
"rmr_active_active_peer": false,
"_is_established": true,
"has_internal_children": false,
"security_style": "UNIX",
"reducible_data_percents": null,
"used_capacity_critical": 100,
"snapshot_policy_id": 5195,
"non_reducible_data_percents": null,
"snapdir_name": ".snapshot",
"lock_state": "UNLOCKED",
"visible_in_snapdir": false,
"created_by_snapshot_policy_id": null,
"worm_legal_hold": null,
"cg_id": null,
"created_by_schedule_name": null,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1001,
"non_reducible_host_written_data": null,
"rmr_target": false,
"used_capacity_warning": 100,
"cg_name": null,
"qos_policy_name": null,
"allocated": null,
"snapshot_retention": null,
"size": 1000013824,
"parent_id": 0,
"remote_snapshot_retention_lock": null,
"worm_level": "NONE",
"_reclaimed_snapshot_remote_system_serial": null,
"type": "MASTER",
"_cg_guid": null,
"compression_suppressed": null,
"replication_types": [
"NONE"
],
"zeros_capacity": null,
"atime_mode": "NOATIME",
"rmr_snapshot_guid": null,
"reducible_host_written_data": null,
"capacity_savings_per_entity": null,
"qos_shared_policy_name": null,
"modified": true,
"compression_enabled": true,
"nfs_filesystem_id": 187,
"write_protected": false,
"rmr_source": false,
"remote_snapshot_retention": null,
"host_written_data": null,
"created_by_snapshot_policy_name": null,
"_cg_snapshot_guid": null,
"updated_at": 1774520199644,
"worm_default_retention": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1002,
"ssd_enabled": true,
"snapshot_policy_name": "Default Policy",
"snapdir_accessible": true,
"created_by_schedule_id": null,
"reducible_data_reduction_ratio": null,
"pool_name": "auto-pool--acca634d-62b1-4",
"used": null,
"mobility_source": null,
"tree_allocated": null,
"data": 1002,
"lock_expires_at": null,
"capacity_savings": null,
"data_snapshot_guid": null,
"tenant_id": 1,
"created_at": 1774520199438,
"worm_max_retention": null,
"depth": 0,
"dataset_type": "FILESYSTEM",
"num_blocks": 1953152
},
"error": null
}
|
| Errors |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
| POOL_PHYSICAL_CAPACITY |
HTTP 409 |
Cannot perform the operation because the pool does not have enough physical capacity |
| S3_POOL_MOVE_ENTITIES_NOT_ALLOWED |
HTTP 409 |
Entities cannot be moved to or from an S3 pool |
|
Refresh a Filesystem Snapshot
| Description |
Refresh a filesystem snapshot
|
| Approval required |
This is a dangerous operation
The filesystem 'filesystemName' has active export(s), refreshing or restoring it may cause data corruption for clients currently mounted
|
| API Endpoint |
POST api/rest/filesystems/{id}/refresh |
| URL Parameters |
| id |
long |
ID of the target snapshot |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"source_id": 1001
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"suspend_state": "NONE",
"atime_granularity": 0,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"posix_file_ownership": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"is_consistent": true,
"qos_shared_policy_id": null,
"promote_source_id": null,
"data_reduction_ratio": null,
"is_internal": false,
"reducible_data_disk_usage_capacity": null,
"has_children": false,
"replica_ids": [],
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"name": "auto-filesystem--396f7664-",
"family_id": 1001,
"mapped": true,
"rmr_active_active_peer": false,
"_is_established": true,
"has_internal_children": null,
"security_style": "UNIX",
"reducible_data_percents": null,
"used_capacity_critical": 100,
"snapshot_policy_id": null,
"non_reducible_data_percents": null,
"snapdir_name": ".snapshot",
"lock_state": "UNLOCKED",
"visible_in_snapdir": true,
"created_by_snapshot_policy_id": null,
"worm_legal_hold": null,
"cg_id": null,
"created_by_schedule_name": null,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"non_reducible_host_written_data": null,
"rmr_target": false,
"used_capacity_warning": 100,
"cg_name": null,
"qos_policy_name": null,
"allocated": 0,
"snapshot_retention": null,
"size": 1000013824,
"parent_id": 1001,
"remote_snapshot_retention_lock": null,
"worm_level": "NONE",
"_reclaimed_snapshot_remote_system_serial": null,
"type": "SNAPSHOT",
"_cg_guid": null,
"compression_suppressed": null,
"replication_types": [
"NONE"
],
"zeros_capacity": null,
"atime_mode": "NOATIME",
"rmr_snapshot_guid": null,
"reducible_host_written_data": null,
"capacity_savings_per_entity": null,
"qos_shared_policy_name": null,
"modified": false,
"compression_enabled": true,
"nfs_filesystem_id": 189,
"write_protected": true,
"rmr_source": false,
"remote_snapshot_retention": null,
"host_written_data": null,
"created_by_snapshot_policy_name": null,
"_cg_snapshot_guid": null,
"updated_at": 1774520202617,
"worm_default_retention": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1002,
"ssd_enabled": true,
"snapshot_policy_name": null,
"snapdir_accessible": true,
"created_by_schedule_id": null,
"reducible_data_reduction_ratio": null,
"pool_name": "auto-pool--82a5d547-6f45-4",
"used": 0,
"mobility_source": null,
"tree_allocated": 0,
"data": 1002,
"lock_expires_at": null,
"capacity_savings": null,
"data_snapshot_guid": null,
"tenant_id": 1,
"created_at": 1774520202308,
"worm_max_retention": null,
"depth": 1,
"dataset_type": "FILESYSTEM",
"num_blocks": 1953152
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
The filesystem 'auto-filesystem--396f7664-' has active export(s), refreshing or restoring it may cause data corruption for clients currently mounted |
| OPERATION_PARTIAL_FAILURE |
HTTP 409 |
Operation Refreshing a target snaphot failed, status is unknown. User intervention is required. Please try again latter |
| ILLEGAL_POOL_STATE |
HTTP 409 |
Illegal pool state |
| TARGET_REPLICATED_SNAPSHOT_REFRESH_NOT_ALLOWED |
HTTP 409 |
A target replicated snapshot cannot be refreshed |
| REPLICATED_FILESYSTEM_SNAPSHOT_REFRESH_NOT_ALLOWED |
HTTP 409 |
A filesystem replication target snapshot cannot be refreshed |
| CANNOT_REFRESH_UNESTABLISHED_SNAPSHOT |
HTTP 409 |
Cannot refresh an unestablished snapshot, please write enable the snapshot first |
| REFRESH_TARGET_IS_RMR_SNAPSHOT |
HTTP 409 |
The target is a replication snapshot |
| REFRESH_TARGET_HAS_CHILDREN |
HTTP 409 |
The target that is provided for this operation has children |
| REFRESH_TARGET_NOT_SNAPSHOT |
HTTP 409 |
The target that is provided for this operation is not a snapshot |
| FILESYSTEM_IS_SUSPENDED |
HTTP 409 |
The operation cannot be performed as the filesystem is suspended ('auto-filesystem--4c7d2135-') |
| INVALID_OPERATION_ON_LOCKED_SNAPSHOT |
HTTP 409 |
This operation is not allowed on a locked snapshot until its lock expires |
| REFRESH_TARGET_NOT_DIRECT_SNAPSHOT |
HTTP 409 |
The target that is provided for this operation is not a direct snapshot of the source |
|
Restore a Filesystem
| Description |
Restore a filesystem from one of its snapshots
|
| Approval required |
This is a dangerous operation
Restoring datasets will overwrite their data
|
| API Endpoint |
POST api/rest/filesystems/{id}/restore |
| URL Parameters |
| id |
long |
ID of the target filesystem |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"source_id": 1002
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": true,
"error": null
}
|
| Errors |
| SSA_EXPRESS_BUSY |
HTTP 403 |
You cannot add or remove a dataset from SSA Express that is in the process of being removed or added to SSA Express |
| APPROVAL_REQUIRED |
HTTP 403 |
Restoring datasets will overwrite their data |
| ILLEGAL_FS_RESTORE_REQUEST |
HTTP 409 |
Filesystem cannot be restored. auto-filesystem--0314656a- is not a direct snapshot of auto-filesystem--ac0c934e- |
| CANNOT_RESTORE_WORM_FILESYSTEM |
HTTP 409 |
WORM filesystems cannot be restored from snapshots |
| PROTECTED_DATASET_CANNOT_BE_RESTORED |
HTTP 409 |
A dataset (auto-filesystem--d63ec230-) that is write-protected cannot be restored |
| ILLEGAL_RESTORE_REQUEST |
HTTP 409 |
Dataset cannot be restored. auto-filesystem--ac0c934e- is not a descendant of auto-filesystem--fad15ddc- |
| REPLICATED_DATASET_RESTORE_NOT_ALLOWED |
HTTP 409 |
Replicated filesystem cannot be restored |
| FILESYSTEM_IS_SUSPENDED |
HTTP 409 |
The operation cannot be performed as the filesystem is suspended ('auto-filesystem--5909f674-') |
| INVALID_OPERATION_ON_LOCKED_SNAPSHOT |
HTTP 409 |
This operation is not allowed on a locked snapshot until its lock expires |
|
Update a Filesystem Attribute
| Description |
Update an attribute of a filesystem. For example: set the filesystem capacity to be compressed by setting the value of compression_enabled to yes
|
| Approval required |
This is a dangerous operation
Dataset 'datasetName' is now in the SSA Express queue and will load to SSA Express cache after all previously queued datasets have been loaded. You may remove it from the SSA Express queue at any time before it begins loading
|
| API Endpoint |
PUT api/rest/filesystems/{id} |
| URL Parameters |
| id |
long |
ID of filesystem to update |
| force_resize |
boolean |
Allow force resize |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"suspend_state": "DROP"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"suspend_state": "DROP",
"atime_granularity": 0,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"posix_file_ownership": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"is_consistent": true,
"qos_shared_policy_id": null,
"promote_source_id": null,
"data_reduction_ratio": 1.0,
"is_internal": false,
"reducible_data_disk_usage_capacity": null,
"has_children": false,
"replica_ids": [],
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"name": "auto-filesystem--9be2d893-",
"family_id": 1001,
"mapped": true,
"rmr_active_active_peer": false,
"_is_established": true,
"has_internal_children": false,
"security_style": "UNIX",
"reducible_data_percents": null,
"used_capacity_critical": 100,
"snapshot_policy_id": 961,
"non_reducible_data_percents": null,
"snapdir_name": ".snapshot",
"lock_state": "UNLOCKED",
"visible_in_snapdir": false,
"created_by_snapshot_policy_id": null,
"worm_legal_hold": null,
"cg_id": null,
"created_by_schedule_name": null,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"non_reducible_host_written_data": null,
"rmr_target": false,
"used_capacity_warning": 100,
"cg_name": null,
"qos_policy_name": null,
"allocated": null,
"snapshot_retention": null,
"size": 1000013824,
"parent_id": 0,
"remote_snapshot_retention_lock": null,
"worm_level": "NONE",
"_reclaimed_snapshot_remote_system_serial": null,
"type": "MASTER",
"_cg_guid": null,
"compression_suppressed": null,
"replication_types": [
"NONE"
],
"zeros_capacity": null,
"atime_mode": "NOATIME",
"rmr_snapshot_guid": null,
"reducible_host_written_data": null,
"capacity_savings_per_entity": null,
"qos_shared_policy_name": null,
"modified": true,
"compression_enabled": true,
"nfs_filesystem_id": 27,
"write_protected": false,
"rmr_source": false,
"remote_snapshot_retention": null,
"host_written_data": null,
"created_by_snapshot_policy_name": null,
"_cg_snapshot_guid": null,
"updated_at": 1774519438382,
"worm_default_retention": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1001,
"ssd_enabled": true,
"snapshot_policy_name": "Default Policy",
"snapdir_accessible": true,
"created_by_schedule_id": null,
"reducible_data_reduction_ratio": null,
"pool_name": "auto-pool--e4735f04-f35d-4",
"used": null,
"mobility_source": null,
"tree_allocated": null,
"data": 1001,
"lock_expires_at": null,
"capacity_savings": null,
"data_snapshot_guid": null,
"tenant_id": 1,
"created_at": 1774519437587,
"worm_max_retention": null,
"depth": 0,
"dataset_type": "FILESYSTEM",
"num_blocks": 1953152
},
"error": null
}
|
| Errors |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('tenant_id') |
| UNSUPPORTED_VALUE |
HTTP 400 |
The request contains an unsupported value (null) for field ('write_protected') |
| ILLEGAL_THRESHOLD_VALUE |
HTTP 400 |
Illegal threshold value: 110 |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('suspend_state') could not be translated to an expected type |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name '..' |
| SSA_EXPRESS_QUEUE_FULL |
HTTP 403 |
The SSA Express queue has reached its limit of 100 datasets. You cannot add more datasets at this time |
| INVALID_SSA_EXPRESS_DATASET_TYPE |
HTTP 403 |
SSA Express does not support snapshots, consistency groups, snapshot groups and vVols |
| APPROVAL_REQUIRED |
HTTP 403 |
Dataset 'auto-filesystem--da4dfc1c-' is now in the SSA Express queue and will load to SSA Express cache after all previously queued datasets have been loaded. You may remove it from the SSA Express queue at any time before it begins loading |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for [POOL_ADMIN] |
| SSA_EXPRESS_BUSY |
HTTP 403 |
You cannot add or remove a dataset from SSA Express that is in the process of being removed or added to SSA Express |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
| SNAPSHOT_LOCK_FORBIDDEN |
HTTP 409 |
Snapshot 'snap' cannot be further locked as it is write-enabled |
| INVALID_LOCK_EXPIRY |
HTTP 409 |
Lock expiry date has to be in the future |
| SNAPSHOT_RETENTION_INVALID |
HTTP 409 |
The new snapshot retention must be longer than the current one |
| DATASET_SHRINKING_NOT_ALLOWED |
HTTP 409 |
filesystem size cannot be reduced |
| REPLICATED_DATASET_WP_REMOVAL_NOT_ALLOWED |
HTTP 409 |
Replicated filesystem write-protect attribute cannot be changed |
| REPLICA_NOT_ALLOWED_ON_TARGET |
HTTP 409 |
This operation can only be performed on the source side of the replica |
| DATASET_SSA_EXPRESS_ALREADY_DISABLED |
HTTP 409 |
Dataset 'auto-filesystem--da4dfc1c-' was not in SSA Express cache |
| UNLOCK_FORBIDDEN |
HTTP 409 |
Snapshot 'snap' is locked until '2026-03-31 13:29:10' UTC, the lock cannot be removed |
| INSUFFICIENT_SSA_EXPRESS_CAPACITY |
HTTP 409 |
Not enough free capacity in SSA Express cache for this action |
| ILLEGAL_WORM_LEGAL_HOLD |
HTTP 409 |
The filesystem's 'WORM legal hold' value cannot be null |
| DATASET_SSA_EXPRESS_ALREADY_ENABLED |
HTTP 409 |
Dataset 'auto-filesystem--da4dfc1c-' is already in SSA Express cache |
| ILLEGAL_WORM_DEFAULT_RETENTION |
HTTP 409 |
The filesystem's 'WORM default retention' value must be at least 86400 seconds and no more than 157680000 seconds |
| FILESYSTEM_SUSPEND_NOT_ALLOWED |
HTTP 409 |
Filesystem 'auto-filesystem--da700845-' cannot be suspended. The filesystem has active SMB shares and/or NFSv4 exports. Disable them and try again. |
| FILESYSTEM_RESIZE_NOT_ALLOWED |
HTTP 409 |
A write-protected filesystem cannot be resized |
| NON_SNAPSHOT_RETENTION_CANNOT_BE_MODIFIED |
HTTP 409 |
Only snapshots and snap groups can have a retention time |
| UNSUPPORTED_WORM_DEFAULT_RETENTION |
HTTP 409 |
worm_default_retention field cannot be set for non-WORM filesystems |
| INVALID_OPERATION_ON_LOCKED_SNAPSHOT |
HTTP 409 |
This operation is not allowed on a locked snapshot until its lock expires |
| FILESYSTEM_IS_SUSPENDED |
HTTP 409 |
The operation cannot be performed as the filesystem is suspended ('auto-filesystem--51a4fc77-') |
| ATIME_GRANULARITY_BELOW_MIN_LIMIT |
HTTP 409 |
Cannot set the atime_granularity to less than 3600 seconds |
| ILLEGAL_WARNING_OR_CRITICAL_VALUE |
HTTP 409 |
Illegal value 80. Critical value (80) must be greater than warning value (90) |
| UNSUPPORTED_WORM_LEGAL_HOLD |
HTTP 409 |
worm_legal_hold field cannot be set for non-WORM filesystems |
| SNAPSHOT_RETENTION_FIELD_NOT_SUPPORTED |
HTTP 409 |
The retention cannot be changed because snapshot 'auto-snap--862baa86-9921-4' is not a replicated snapshot, and it was not created by a snapshot policy |
| FILESYSTEM_NAME_CONFLICT |
HTTP 409 |
An entity with this name already exists |
| INVALID_LOCK_ENTITY_TYPE |
HTTP 409 |
Locking filesystem is not allowed |
| SNAP_RESIZE_NOT_ALLOWED |
HTTP 409 |
A write-protected snapshot cannot be resized |
| LOCK_EXPIRY_TOO_SHORT |
HTTP 409 |
The lock expiry of snapshot 'snap' cannot be lowered. Current expiry time is '2026-03-31 13:28:59' UTC |
| WRITE_ENABLE_LOCKED_SNAPSHOT |
HTTP 409 |
Snapshot 'snap' is locked, and can only be write-enabled after '2026-04-02 13:29:00' UTC |
| FILESYSTEM_NAME_EQUALS_TO_SNAPDIR |
HTTP 409 |
Filesystem name '.MySnapDir' cannot be identical to the name of the filesystem's snapshot directory or to the default snapshot directory name |
| SSA_EXPRESS_DATASET_MUST_BE_SSD_ENABLED |
HTTP 409 |
Datasets in SSA Express cache must be SSD enabled |
|
Generic Bridge
Get Functional Module
| Description |
Get details of a functional module with its state
|
| API Endpoint |
GET api/internal/bridge/{module} |
| URL Parameters |
| module |
String |
Name of module |
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"magic_number": "0xab565ba",
"is_connected": false,
"names": [
"NetworkConfig",
"NfsExports",
"FileSystems",
"Tenants",
"LiveCounters",
"QoS",
"ByteRangeLock",
"SmbShares",
"ActiveDirectory",
"Smb",
"S3Manager"
],
"module": "NAS_SERVICE",
"default_ports": [
6000
]
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Functional Modules
| Description |
Get list of functional modules with their state
|
| API Endpoint |
GET api/internal/bridge |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": [
{
"magic_number": "0xab565ba",
"is_connected": false,
"names": [
"NetworkConfig",
"NfsExports",
"FileSystems",
"Tenants",
"LiveCounters",
"QoS",
"ByteRangeLock",
"SmbShares",
"ActiveDirectory",
"Smb",
"S3Manager"
],
"module": "NAS_SERVICE",
"default_ports": [
6000
]
},
{
"magic_number": "0xab565ba",
"is_connected": true,
"names": [],
"module": "DUMMY_SERVICE",
"default_ports": [
2222
]
},
{
"magic_number": "0xab565ba",
"is_connected": false,
"names": [
"NetworkConfig",
"RmrManager",
"FmInfra",
"LiveCounters"
],
"module": "RMR_SERVICE",
"default_ports": [
6030
]
},
{
"magic_number": "0xab565ba",
"is_connected": false,
"names": [
"NetworkConfig",
"LiveCounters",
"QoS",
"SyncRmr",
"PowerMonitor",
"ScsiPort",
"KeyGen",
"Corefm"
],
"module": "CORE_SERVICE",
"default_ports": [
6080
]
},
{
"magic_number": "0xab565ba",
"is_connected": false,
"names": [
"NetworkConfig",
"InitiatorsConf"
],
"module": "ISCSI_SERVICE",
"default_ports": [
6070
]
},
{
"magic_number": "0xab565ba",
"is_connected": false,
"names": [
"CLM"
],
"module": "CLM_SERVICE",
"default_ports": [
6040
]
},
{
"magic_number": "0xab565ba",
"is_connected": false,
"names": [
"Ism",
"Kmip"
],
"module": "ISM_SERVICE",
"default_ports": [
6090
]
},
{
"magic_number": "0xab565ba",
"is_connected": false,
"names": [
"HardwareMonitor",
"ExecutionEngine"
],
"module": "PLATFORM_SERVICE",
"default_ports": [
6100
]
},
{
"magic_number": "0xab565ba",
"is_connected": false,
"names": [
"NetworkConfig",
"NvmeServer"
],
"module": "SAN_SERVICE",
"default_ports": [
6110
]
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Json to Bridge
| Description |
Send JSON to a functional module over the generic bridge
|
| API Endpoint |
POST api/internal/bridge/{module} |
| URL Parameters |
| module |
String |
Name of module |
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"meta_data": {
"module": "dummy",
"element": "VolumesFamilies.vol_family_1",
"action": "insert",
"command_type": "prepare_delta",
"current_id": 0,
"id": 1
},
"configuration": {
"pool_entity_id": "10",
"entity_id": "5",
"Volumes": {
"vol_5": {
"entity_id": "5",
"master": false,
"mode": "rw",
"fs_id": "1"
}
}
}
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"output": "Dummy output",
"meta_data": {
"status": {
"error_description": "",
"error_type": "EXTERNAL",
"error_code": "FM_DUMMY_CODE"
},
"magic": null,
"error_string": null,
"rc": "SUCCESS",
"command_type": "prepare_delta",
"command_id": "gb3362973111965390"
}
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Host Cluster
Add a Host to a Cluster
| Description |
Add a host to a cluster.
|
| Approval required |
This is a dangerous operation
This operation will provide access to the same volume via SCSI and NVMe-oF hosts and/or clusters at the same time. Some capabilities such as reservations are not supported across protocols, and will silently fail
|
| API Endpoint |
POST api/rest/clusters/{id}/hosts |
| URL Parameters |
| id |
long |
ID of the cluster |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"id": 1000
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"luns": [],
"path_health": "NOT_OK",
"hosts_count": 1,
"name": "auto-Cluster4Test-923f4c81",
"resiliency": "DISCONNECTED",
"tenant_id": 1,
"created_at": 1774519028640,
"host_type": "DEFAULT",
"updated_at": 1774519028640,
"san_client_type": "CLUSTER",
"hosts": [
{
"luns": [],
"resiliency": "DISCONNECTED",
"ports_count": 1,
"host_type": "DEFAULT",
"updated_at": 1774519028138,
"port_type": [
"FC"
],
"id": 1000,
"paths": 0,
"security_chap_inbound_username": null,
"min_expected_paths": 0,
"subsystem_nqn": null,
"path_health": "NONE",
"security_chap_outbound_username": null,
"security_method": "NONE",
"is_min_expected_paths_user_set": false,
"san_client_type": "HOST",
"optimized": true,
"host_cluster_id": 1001,
"name": "auto-Host4Test-66caefb9-19",
"tenant_id": 1,
"created_at": 1774519028138,
"ports_disconnected": 0,
"security_chap_has_inbound_secret": false,
"luns_count": 0,
"ports": [
{
"host_id": 1000,
"type": "FC",
"address": "aaaaaaaaaaaa0001"
}
],
"security_chap_has_outbound_secret": false
}
],
"port_type": [
"FC"
],
"ports_disconnected": 0,
"luns_count": 0,
"id": 1001
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('foo') |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| APPROVAL_REQUIRED |
HTTP 403 |
This operation will provide access to the same volume via SCSI and NVMe-oF hosts and/or clusters at the same time. Some capabilities such as reservations are not supported across protocols, and will silently fail |
| HOST_CLUSTER_NOT_FOUND |
HTTP 404 |
Cluster not found |
| NVME_OF_HOST_CANNOT_JOIN_ACTIVE_ACTIVE_CLUSTER |
HTTP 409 |
Adding host 'auto-nvmeHost-afad04d3-210' to cluster 'auto-Cluster4Test-b6a11070' failed because hosts containing NVMe-oF ports cannot be added to clusters to which active-active replication volumes are mapped |
| HOST_EXISTS |
HTTP 409 |
Host already exists |
| PORT_COUNT_CLUSTER_LIMIT |
HTTP 409 |
Port count limit reached for cluster |
| CANT_MIX_NVME_OF_SCSI_ADD_SCSI_HOST_TO_NVME_CLUSTER |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the host 'auto-scsiHost-e7b3b6b8-e7c' has FC/iSCSI ports while hosts in cluster 'scsciCluster' have NVMe-oF ports |
| CANT_MIX_NVME_OF_SCSI_ADD_SCSI_PORT_MAPPED_NVME_VOLUME |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the cluster 'hostCluster' is mapped to a volume which is already mapped to host 'auto-nvmeHost-b97de21d-97e' which has NVMe-oF ports |
| CANT_ADD_NVME_OF_HOST_TO_CLUSTER_WITH_VOLUMES_MAPPED_USING_NSID_0 |
HTTP 409 |
Adding NVME-oF host 'auto-NvmeHost-a8d8566b-4b1' to cluster 'auto-Cluster4Test-d5d22322' failed because the cluster or its hosts has volumes mapped using NSID 0, which is not a legal NSID value |
| OPENVMS_CLUSTER_UDID_EXISTS |
HTTP 409 |
UDID is not unique among cluster 'auto-Cluster4Test-a11f1564' mapped volumes |
| CANT_MIX_NVME_OF_SCSI_ADD_NVME_HOST_TO_SCSI_CLUSTER |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the host 'auto-nvmeHost-e5a3db9f-3c5' has NVMe-oF ports while hosts in cluster 'scsciCluster' have FC/iSCSI ports |
| CANT_ADD_HOST_WITH_VOLUMES_MAPPED_USING_NSID_0_TO_NVME_OF_CLUSTER |
HTTP 409 |
Adding host 'auto-NeutralHost-498c102f-' to NVMe-oF cluster 'auto-Cluster4Test-6fcf7833' failed because the host has volumes mapped using NSID 0, which is not a legal NSID value |
| HOST_COUNT_CLUSTER_LIMIT |
HTTP 409 |
Host count limit reached for cluster |
| CLUSTER_PROHIBITED_HOST_TYPE |
HTTP 409 |
The cluster cannot contain hosts of type DEFAULT |
| HOST_ASSIGNED_TO_CLUSTER |
HTTP 409 |
Host is already assigned to a cluster |
| CANT_MIX_NVME_OF_SCSI_ADD_NVME_PORT_MAPPED_SCSI_VOLUME |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the cluster 'hostCluster' is mapped to a volume which is already mapped to host 'auto-Host4Test-d30421c6-61' which has FC/iSCSI ports |
| PRIVATE_LUNS_CONFLICT |
HTTP 409 |
Both cluster and host are mapped to the same volume |
| MAPPINGS_COUNT_LIMIT |
HTTP 409 |
Total mappings count limit reached: 4 |
|
Add a LUN to a Cluster
| Description |
Add a LUN to a cluster.
|
| Approval required |
This is a dangerous operation
Mapping a volume to more than one host or cluster may result in a host corrupting the other host's data. If the hosts belong to the same cluster, it is recommended to define them as a cluster in the system
|
| API Endpoint |
POST api/rest/clusters/{id}/luns |
| URL Parameters |
| id |
long |
ID of the cluster |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"volume_id": 1003
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"udid": null,
"host_cluster_id": 1001,
"volume_id": 1003,
"clustered": true,
"host_id": 0,
"id": 98,
"lun": 11
},
"error": null
}
|
| Errors |
| USER_IS_FORBIDDEN |
HTTP 403 |
'auto-volume--0bcc6ca3-6d59' is located in a pool on which the current user has read-only permissions |
| APPROVAL_REQUIRED |
HTTP 403 |
Mapping a volume to more than one host or cluster may result in a host corrupting the other host's data. If the hosts belong to the same cluster, it is recommended to define them as a cluster in the system |
| MAPPING_NOT_ALLOWED |
HTTP 409 |
Volume 'auto-volume--32eec3ac-5f91' is already mapped to a specific host 'auto-Host4Test-2a5546f8-6b' that is a member of cluster 'auto-Cluster4Test-20f583f7' |
| VVOL_ALREADY_ENABLED_ON_CLUSTER |
HTTP 409 |
vVols is already enabled on cluster 'auto-Cluster4Test-d5c2b97e' |
| OPENVMS_CLUSTER_UDID_EXISTS |
HTTP 409 |
UDID is not unique among cluster 'auto-Cluster4Test-7a96da98' mapped volumes |
| OPENVMS_LUN_CONTROLLER |
HTTP 409 |
Mapping to LUN=0 is prohibited |
| MAPPING_ALREADY_EXISTS |
HTTP 409 |
Volume 'auto-volume--42f1677c-1a7d' is already mapped to 'auto-Cluster4Test-44f89945' |
| VOLUME_CANNOT_BE_MAPPED_TO_NVME_OF_CLUSTER_WITH_NSID_0 |
HTTP 409 |
Mapping of volume 'auto-volume--16fa0f70-af57' to NVMe-oF cluster 'auto-Cluster4Test-00ccd54a' failed because 0 is not a valid NSID value |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Mapping a protocol endpoint to LUN=0 is not supported |
| ACTIVE_ACTIVE_VOLUME_CANNOT_BE_MAPPED_TO_NVME_OF_HOST |
HTTP 409 |
Mapping of volume 'auto-volume--eba5d479-cbea' failed because active-active replication volumes cannot be mapped to hosts or clusters that contain NVMe-oF ports |
| CANT_MIX_NVME_OF_SCSI_ADD_NVME_PORT_MAPPED_SCSI_VOLUME |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the host 'auto-host2-7507ff9e-3c34-4' is mapped to a volume which is already mapped to host 'auto-scsciHost-8a30b42d-eb' which has FC/iSCSI ports |
| ILLEGAL_LUN |
HTTP 409 |
The LUN number passed is not in range |
| ENABLE_VVOL_NOT_ALLOWED |
HTTP 409 |
vVols is already enabled on host 'auto-Host4Test-2222a5aa-a5' which is a member of the cluster 'auto-Cluster4Test-b71951e5' |
| OPENVMS_MISSING_UDID |
HTTP 409 |
Mapping a volume without an assigned UDID is prohibited |
| LUN_AUTO_ASSIGNMENT_FAILURE |
HTTP 409 |
Failed auto-assigning LUN |
| CANT_MIX_NVME_OF_SCSI_ADD_SCSI_PORT_MAPPED_NVME_VOLUME |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the host 'auto-host2-f89e0205-9ea8-4' is mapped to a volume which is already mapped to host 'auto-nvmeHost-e0cc0966-d5a' which has NVMe-oF ports |
| OPENVMS_HOST_UDID_EXISTS |
HTTP 409 |
UDID is not unique among host 'auto-Host4Test-f533215a-22' mapped volumes |
| CANT_MIX_NVME_OF_SCSI_VOLUME_MAPPED_ACCESSED_NVME |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the volume 'auto-Volume4Test-c33bd725-' is already mapped to host 'auto-nvmeHost-5ece1b1e-744' which has NVMe-oF ports while cluster 'hostCluster' has FC/iSCSI ports |
| CANT_MIX_NVME_OF_SCSI_VOLUME_MAPPED_ACCESSED_SCSI |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the volume 'auto-Volume4Test-9ab3a083-' is already mapped to host 'auto-Host4Test-557cecea-70' which has FC/iSCSI ports while cluster 'hostCluster' has NVMe-oF ports |
|
Create a Cluster
| Description |
Create a cluster in the system.
|
| API Endpoint |
POST api/rest/clusters |
| URL Parameters |
none
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"name": "auto-Cluster4Test-923f4c81"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"luns": [],
"path_health": "NONE",
"hosts_count": 0,
"name": "auto-Cluster4Test-923f4c81",
"resiliency": "DISCONNECTED",
"tenant_id": 1,
"created_at": 1774519028640,
"host_type": "DEFAULT",
"updated_at": 1774519028640,
"san_client_type": "CLUSTER",
"hosts": [],
"port_type": [],
"ports_disconnected": 0,
"luns_count": 0,
"id": 1001
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('tenant_id') |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('host_type') could not be translated to an expected type |
| TENANT_NOT_FOUND |
HTTP 404 |
Tenant not found |
| HOST_CLUSTER_NAME_CONFLICT |
HTTP 409 |
An entity with this name already exists |
| CLUSTER_COUNT_LIMIT |
HTTP 409 |
Cluster count limit reached |
|
Delete a Cluster
| Description |
Remove a cluster from the system.
|
| API Endpoint |
DELETE api/rest/clusters/{id} |
| URL Parameters |
| id |
long |
ID of the cluster |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"luns": [],
"path_health": "NOT_OK",
"hosts_count": 1,
"name": "auto-Cluster4Test-634cbc45",
"resiliency": "DISCONNECTED",
"tenant_id": 1,
"created_at": 1774519423399,
"host_type": "DEFAULT",
"updated_at": 1774519423399,
"san_client_type": "CLUSTER",
"hosts": [
{
"luns": [],
"resiliency": "DISCONNECTED",
"ports_count": 1,
"host_type": "DEFAULT",
"updated_at": 1774519422482,
"security_chap_has_outbound_secret": false,
"id": 1000,
"paths": 0,
"security_chap_inbound_username": null,
"min_expected_paths": 0,
"subsystem_nqn": null,
"path_health": "NONE",
"security_chap_outbound_username": null,
"security_method": "NONE",
"is_min_expected_paths_user_set": false,
"san_client_type": "HOST",
"optimized": true,
"host_cluster_id": 0,
"name": "auto-Host4Test-c71f0e62-d3",
"tenant_id": 1,
"created_at": 1774519422482,
"ports_disconnected": 0,
"security_chap_has_inbound_secret": false,
"luns_count": 0,
"ports": [
{
"host_id": 1000,
"type": "FC",
"address": "aaaaaaaaaaaa0003"
}
],
"port_type": [
"FC"
]
}
],
"port_type": [
"FC"
],
"ports_disconnected": 0,
"luns_count": 0,
"id": 1001
},
"error": null
}
|
| Errors |
| HOST_CLUSTER_NOT_FOUND |
HTTP 404 |
Cluster not found |
| CLUSTER_HAS_LUNS |
HTTP 409 |
Cluster has LUN mappings |
|
Get a Cluster
| Description |
Get a cluster by its ID.
|
| API Endpoint |
GET api/rest/clusters/{id} |
| URL Parameters |
| id |
long |
ID of the cluster |
| prevent_update_fields_from_initiators |
boolean |
|
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"luns": [
{
"udid": null,
"host_cluster_id": 1001,
"volume_id": 1003,
"clustered": true,
"host_id": 0,
"id": 98,
"lun": 11
}
],
"path_health": "NOT_OK",
"hosts_count": 1,
"name": "auto-Cluster4Test-923f4c81",
"resiliency": "DISCONNECTED",
"tenant_id": 1,
"created_at": 1774519028640,
"host_type": "DEFAULT",
"updated_at": 1774519028640,
"san_client_type": "CLUSTER",
"hosts": [
{
"luns": [
{
"udid": null,
"host_cluster_id": 1001,
"volume_id": 1003,
"clustered": true,
"host_id": 1000,
"id": 99,
"lun": 11
}
],
"resiliency": "DISCONNECTED",
"ports_count": 1,
"host_type": "DEFAULT",
"updated_at": 1774519028138,
"port_type": [
"FC"
],
"id": 1000,
"paths": 0,
"security_chap_inbound_username": null,
"min_expected_paths": 0,
"subsystem_nqn": null,
"path_health": "NONE",
"security_chap_outbound_username": null,
"security_method": "NONE",
"is_min_expected_paths_user_set": false,
"san_client_type": "HOST",
"optimized": true,
"host_cluster_id": 1001,
"name": "auto-Host4Test-66caefb9-19",
"tenant_id": 1,
"created_at": 1774519028138,
"ports_disconnected": 0,
"security_chap_has_inbound_secret": false,
"luns_count": 1,
"ports": [
{
"host_id": 1000,
"type": "FC",
"address": "aaaaaaaaaaaa0001"
}
],
"security_chap_has_outbound_secret": false
}
],
"port_type": [
"FC"
],
"ports_disconnected": 0,
"luns_count": 1,
"id": 1001
},
"error": null
}
|
| Errors |
| HOST_CLUSTER_NOT_FOUND |
HTTP 404 |
Cluster not found |
|
Get all Clusters
| Description |
Get all of the clusters in the system. Filterable and Sortable fields:created_at,id,name,host_type,updated_at. |
| API Endpoint |
GET api/rest/clusters |
| URL Parameters |
| prevent_update_fields_from_initiators |
boolean |
|
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"luns": [],
"path_health": "NONE",
"hosts_count": 0,
"name": "auto-Cluster4Test-923f4c81",
"resiliency": "DISCONNECTED",
"tenant_id": 1,
"created_at": 1774519028640,
"host_type": "DEFAULT",
"updated_at": 1774519028640,
"san_client_type": "CLUSTER",
"hosts": [],
"port_type": [],
"ports_disconnected": 0,
"luns_count": 0,
"id": 1001
}
],
"error": null
}
|
| Errors |
| NOT_FILTERABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be filtered: ('hosts') |
| NOT_SORTABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be sortable: ('hosts') |
|
Get an Attribute of a Cluster
| Description |
Get an attribute of a cluster.
|
| API Endpoint |
GET api/rest/clusters/{id}/{attribute} |
| URL Parameters |
| id |
long |
ID of the cluster |
| attribute |
String |
The name of the cluster’s attribute |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Get LUN by ID
| Description |
Get a LUN that belongs to a cluster.
|
| API Endpoint |
GET api/rest/clusters/{id}/luns/{lun} |
| URL Parameters |
| id |
long |
ID of the cluster |
| lun |
int |
ID of the LUN |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Get LUNs
| Description |
Get a list of LUNs that belong to a cluster.
|
| API Endpoint |
GET api/rest/clusters/{host_cluster_id}/luns |
| URL Parameters |
| host_cluster_id |
long |
ID of the cluster |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"udid": null,
"host_cluster_id": 1000,
"volume_id": 1002,
"clustered": true,
"host_id": 0,
"id": 213,
"lun": 11
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get the Cluster Hosts
| Description |
Get a list of hosts that belong to a cluster.
|
| API Endpoint |
GET api/rest/clusters/{id}/hosts |
| URL Parameters |
| id |
long |
ID of the cluster |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 2,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"luns": [
{
"udid": null,
"host_cluster_id": 1103,
"volume_id": 1003,
"clustered": true,
"host_id": 1000,
"id": 728,
"lun": 11
},
{
"udid": null,
"host_cluster_id": 1103,
"volume_id": 1004,
"clustered": true,
"host_id": 1000,
"id": 729,
"lun": 12
},
{
"udid": null,
"host_cluster_id": 1103,
"volume_id": 1005,
"clustered": true,
"host_id": 1000,
"id": 730,
"lun": 13
},
{
"udid": null,
"host_cluster_id": 1103,
"volume_id": 1006,
"clustered": true,
"host_id": 1000,
"id": 731,
"lun": 14
},
{
"udid": null,
"host_cluster_id": 1103,
"volume_id": 1007,
"clustered": true,
"host_id": 1000,
"id": 732,
"lun": 15
},
{
"udid": null,
"host_cluster_id": 1103,
"volume_id": 1008,
"clustered": true,
"host_id": 1000,
"id": 733,
"lun": 16
},
... TRUNCATED ...
|
| Errors |
See general list of error codes.
|
Remove a Host from a Cluster
| Description |
Remove a host from a cluster.
|
| Approval required |
This is a dangerous operation
Removing a host from a cluster causes the host to lose access to all of the volumes that are mapped to this cluster
|
| API Endpoint |
DELETE api/rest/clusters/{id}/hosts/{host_id} |
| URL Parameters |
| id |
long |
ID of the cluster |
| host_id |
long |
ID of the host |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"luns": [
{
"udid": null,
"host_cluster_id": 1003,
"volume_id": 1008,
"clustered": true,
"host_id": 0,
"id": 192,
"lun": 12
}
],
"path_health": "NOT_OK",
"hosts_count": 1,
"name": "auto-Cluster4Test-0d5380ba",
"resiliency": "DISCONNECTED",
"tenant_id": 1,
"created_at": 1774519427488,
"host_type": "DEFAULT",
"updated_at": 1774519427488,
"san_client_type": "CLUSTER",
"hosts": [
{
"luns": [
{
"udid": null,
"host_cluster_id": 1003,
"volume_id": 1008,
"clustered": true,
"host_id": 1005,
"id": 194,
"lun": 12
}
],
"resiliency": "DISCONNECTED",
"ports_count": 1,
"host_type": "DEFAULT",
"updated_at": 1774519428159,
"security_chap_has_outbound_secret": false,
"id": 1005,
"paths": 0,
"security_chap_inbound_username": null,
"min_expected_paths": 0,
"subsystem_nqn": null,
"path_health": "NONE",
"security_chap_outbound_username": null,
"security_method": "NONE",
"is_min_expected_paths_user_set": false,
"san_client_type": "HOST",
"optimized": true,
"host_cluster_id": 1003,
"name": "auto-Host4Test-fd6533f6-94",
"tenant_id": 1,
"created_at": 1774519428159,
"ports_disconnected": 0,
"security_chap_has_inbound_secret": false,
"luns_count": 1,
"ports": [
{
"host_id": 1005,
"type": "FC",
"address": "aaaaaaaaaaaa0005"
}
],
"port_type": [
"FC"
]
}
],
"port_type": [
"FC"
],
"ports_disconnected": 0,
"luns_count": 1,
"id": 1003
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Removing a host from a cluster causes the host to lose access to all of the volumes that are mapped to this cluster |
| HOST_NOT_FOUND |
HTTP 404 |
Host not found |
|
Unmapping a Volume from a Cluster by LUN
| Description |
Unmap a volume from the cluster by pointing at the LUN ID.
|
| Approval required |
This is a dangerous operation
Unmapping entity 'volume_name' may cause loss of access to the entity data
|
| API Endpoint |
DELETE api/rest/clusters/{id}/luns/lun/{lun_number} |
| URL Parameters |
| id |
long |
ID of the cluster |
| lun_number |
int |
ID of the LUN |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"udid": 1234,
"host_cluster_id": 1001,
"volume_id": 1002,
"clustered": true,
"host_id": 0,
"id": 390,
"lun": 1
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Unmapping volume 'auto-volume--57538115-54b8' may cause loss of access to the volume data |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-de1ea6cf-b' is forbidden to modify protocolEndpoint 'protocol_endpoint' |
|
Unmapping a Volume from a Cluster by Volume
| Description |
Unmap a volume from the cluster by pointing at the volume ID.
|
| Approval required |
This is a dangerous operation
Unmapping entity 'volume_name' may cause loss of access to the entity data
|
| API Endpoint |
DELETE api/rest/clusters/{id}/luns/volume_id/{volume_id} |
| URL Parameters |
| id |
long |
ID of the cluster |
| volume_id |
long |
ID of the volume |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"udid": null,
"host_cluster_id": 1003,
"volume_id": 1002,
"clustered": true,
"host_id": 0,
"id": 188,
"lun": 11
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Unmapping volume 'auto-volume--0cbc5d3b-42b5' may cause loss of access to the volume data |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-d8ba7643-3' is forbidden to modify protocolEndpoint 'protocol_endpoint' |
| VVOL_ALREADY_DISABLED_ON_CLUSTER |
HTTP 409 |
vVols is already disabled on cluster 'auto-Cluster4Test-6f2d6609' |
|
Update Attribute
| Description |
Update an attribute of a cluster.
|
| API Endpoint |
PUT api/rest/clusters/{id} |
| URL Parameters |
| id |
long |
ID of the cluster |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"luns": null,
"path_health": "NONE",
"hosts_count": 0,
"name": "cluster_d5a8029ab39211e3a067005056934c4b",
"resiliency": "DISCONNECTED",
"ports_disconnected": 0,
"created_at": 1395692898282,
"host_type": "DEFAULT",
"updated_at": 0,
"san_client_type": "CLUSTER",
"hosts": null,
"port_type": [],
"tenant_id": 1,
"luns_count": 0,
"id": 1000
}
|
| Returns |
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('san_client_type') |
| OPENVMS_HOST_TYPE_NO_MODIFICATION |
HTTP 409 |
OpenVMS host type is set on creation only |
|
Host
Add a Port to a Host
| Description |
Add a port to a host.
|
| Approval required |
This is a dangerous operation
This operation will provide access to the same volume via SCSI and NVMe-oF hosts and/or clusters at the same time. Some capabilities such as reservations are not supported across protocols, and will silently fail
|
| API Endpoint |
POST api/rest/hosts/{id}/ports |
| URL Parameters |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"type": "fc",
"address": "aaaaaaaaaaaa0001"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"host_id": 1000,
"type": "FC",
"address": "aaaaaaaaaaaa0001"
},
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('') could not be translated to an expected type |
| INVALID_IQN |
HTTP 400 |
The IQN value ' ' is not in the correct form, or contains invalid characters |
| MISSING_FIELD |
HTTP 400 |
A field ('address') is missing in an object passed |
| INVALID_NQN |
HTTP 400 |
The NQN value ' ' is not in the correct form, or contains invalid characters |
| APPROVAL_REQUIRED |
HTTP 403 |
This operation will provide access to the same volume via SCSI and NVMe-oF hosts and/or clusters at the same time. Some capabilities such as reservations are not supported across protocols, and will silently fail |
| CHAP_SECURITY_CONDITION_NOT_MET |
HTTP 409 |
Host auto-Host4Test-7339dc95-66 does not meet the security condition of MUTUAL_CHAP. Inbound and outbound CHAP secrets are missing |
| NVME_OF_PORT_NOT_ALLOWED_FOR_ACTIVE_ACTIVE_VOLUME |
HTTP 409 |
Adding an NVMe-oF port to host 'auto-nvmeHost-85689cfc-c80' failed because the host has, directly or via a cluster, active-active replication volumes mapped to it |
| CANT_MIX_NVME_OF_SCSI_ADD_SCSI_PORT_TO_HOST_IN_NVME_CLUSTER |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the host 'auto-Host4test-b1a09011-7d' is in cluster 'hostCluster' which has hosts with NVMe-oF ports, which cannot be mixed with FC/iSCSI ports |
| NVME_PORT_COUNT_LIMIT |
HTTP 409 |
NVMe port count limit reached |
| CANT_MIX_NVME_OF_SCSI_ADD_NVME_PORT_MAPPED_SCSI_VOLUME |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the host 'auto-host2-e719547c-c0df-4' is mapped to a volume which is already mapped to host 'auto-scsciHost-ada51700-ea' which has FC/iSCSI ports |
| CANT_ADD_NVME_OF_PORT_TO_HOST_WITH_VOLUMES_MAPPED_USING_NSID_0 |
HTTP 409 |
Adding an NVMe-oF port to host 'auto-host-87e40510-4da1-4a' failed because the host or its cluster has volumes mapped using NSID 0, which is not a legal NSID value |
| ISCSI_PORT_COUNT_LIMIT |
HTTP 409 |
iSCSI port count limit reached |
| CANT_MIX_NVME_OF_SCSI_ADD_NVME_PORT_TO_HOST_IN_SCSI_CLUSTER |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the host 'auto-Host4test-e01590ea-0c' is in cluster 'hostCluster' which has hosts with FC/iSCSI ports, which cannot be mixed with NVMe-oF ports |
| CANT_MIX_NVME_OF_SCSI_ADD_SCSI_PORT_MAPPED_NVME_VOLUME |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the host 'auto-host2-83468acf-8379-4' is mapped to a volume which is already mapped to host 'auto-nvmeHost-6ea40c5e-313' which has NVMe-oF ports |
| PORT_COUNT_CLUSTER_MEMBER_LIMIT |
HTTP 409 |
The host cannot be added to the cluster as the cluster's port count limit will be exceeded |
| CANT_MIX_NVME_OF_SCSI_ADD_SCSI_PORT_TO_NVME_OF_HOST |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the host 'auto-nvmeHost-23b54c83-cee' has initiators with NVMe-oF ports, and cannot be mixed with initiators with FC or iSCSI ports |
| CANT_MIX_NVME_OF_SCSI_ADD_NVME_OF_PORT_TO_SCSI_HOST |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the host 'auto-scsciHost-c6646655-18' has initiators with FC or iSCSI ports, and cannot be mixed with initiators with NVMe-oF ports |
| PORT_COUNT_HOST_LIMIT |
HTTP 409 |
Port count limit reached for host |
| ISCSI_DISABLED |
HTTP 409 |
iSCSI is disabled, please contact INFINIDAT support to enable it |
| PORT_ALREADY_BELONGS_TO_HOST |
HTTP 409 |
The port 'iqn.2011-08.com.example:storage' already belongs to host 'auto-Host4Test-1a1600e8-80' |
|
Add an iSCSI Port to a Host
| Description |
Add an iSCSI port to a host.
|
| API Endpoint |
POST api/rest/hosts/{id}/ports |
| URL Parameters |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"type": "ISCSI",
"address": "iqn.2011-08.com.example:storage"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"host_id": 1000,
"type": "ISCSI",
"address": "iqn.2011-08.com.example:storage"
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Create a Host
| Description |
Create a host in the system.
|
| API Endpoint |
POST api/rest/hosts |
| URL Parameters |
none
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"name": "auto-Host4Test-66caefb9-19"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"luns": [],
"resiliency": "DISCONNECTED",
"ports_count": 0,
"host_type": "DEFAULT",
"updated_at": 1774519028138,
"port_type": [],
"id": 1000,
"paths": 0,
"security_chap_inbound_username": null,
"min_expected_paths": 0,
"subsystem_nqn": null,
"path_health": "NONE",
"security_chap_outbound_username": null,
"security_method": "NONE",
"is_min_expected_paths_user_set": false,
"san_client_type": "HOST",
"optimized": true,
"host_cluster_id": 0,
"name": "auto-Host4Test-66caefb9-19",
"tenant_id": 1,
"created_at": 1774519028138,
"ports_disconnected": 0,
"security_chap_has_inbound_secret": false,
"luns_count": 0,
"ports": [],
"security_chap_has_outbound_secret": false
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('created_at or updated_at') |
| WRONG_PARAMETER |
HTTP 400 |
The value (null) of parameter 'min_expected_paths' does not meet a condition: 'non-negative, non-null value or -1 for calculated field' |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'aሴ' |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('host_type') could not be translated to an expected type |
| MISSING_FIELD |
HTTP 400 |
A field ('name') is missing in an object passed |
| TENANT_NOT_FOUND |
HTTP 404 |
Tenant not found |
| HOST_NAME_CONFLICT |
HTTP 409 |
An entity with this name already exists |
| HOST_COUNT_LIMIT |
HTTP 409 |
Host count limit reached |
|
Create a Host With No Security
| Description |
Create a host with no CHAP security method.
|
| API Endpoint |
POST api/rest/hosts |
| URL Parameters |
none
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"security_method": "NONE",
"name": "auto-HostTestName-c664edc0"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"luns": [],
"resiliency": "DISCONNECTED",
"ports_count": 0,
"host_type": "DEFAULT",
"updated_at": 1774519458463,
"port_type": [],
"id": 1001,
"paths": 0,
"security_chap_inbound_username": null,
"min_expected_paths": 0,
"subsystem_nqn": null,
"path_health": "NONE",
"security_chap_outbound_username": null,
"security_method": "NONE",
"is_min_expected_paths_user_set": false,
"san_client_type": "HOST",
"optimized": true,
"host_cluster_id": 0,
"name": "auto-HostTestName-c664edc0",
"tenant_id": 1,
"created_at": 1774519458463,
"ports_disconnected": 0,
"security_chap_has_inbound_secret": false,
"luns_count": 0,
"ports": [],
"security_chap_has_outbound_secret": false
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Create a LUN for a Host
| Description |
Create a LUN for a host.
|
| Approval required |
This is a dangerous operation
Mapping a volume to more than one host or cluster may result in a host corrupting the other host's data. If the hosts belong to the same cluster, it is recommended to define them as a cluster in the system
|
| API Endpoint |
POST api/rest/hosts/{id}/luns |
| URL Parameters |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"volume_id": 1002
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"udid": null,
"host_cluster_id": 0,
"volume_id": 1002,
"clustered": false,
"host_id": 1000,
"id": 119,
"lun": 1
},
"error": null
}
|
| Errors |
| USER_IS_FORBIDDEN |
HTTP 403 |
'auto-volume--512c1f9f-cc26' is located in a pool on which the current user has read-only permissions |
| APPROVAL_REQUIRED |
HTTP 403 |
Mapping a volume to more than one host or cluster may result in a host corrupting the other host's data. If the hosts belong to the same cluster, it is recommended to define them as a cluster in the system |
| VOLUME_CANNOT_BE_MAPPED_TO_NVME_OF_HOST_WITH_NSID_0 |
HTTP 409 |
Mapping of volume 'auto-volume--abe30b27-9334' to NVMe-oF host 'auto-NvmeHost-ef503b6e-a46' failed because 0 is not a valid NSID value |
| MAPPING_ALREADY_EXISTS |
HTTP 409 |
Volume 'auto-volume--7ec1aea0-4314' is already mapped to 'auto-Host4Test-9468d91c-68' |
| CANT_MIX_NVME_OF_SCSI_VOLUME_MAPPED_TO_NVME_CLUSTER |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the volume 'auto-Volume4Test-02ffae68-' is already mapped to cluster 'auto-hostCluster-4c81285e-' which has hosts that have NVMe-oF ports |
| CANT_MIX_NVME_OF_SCSI_VOLUME_MAPPED_ACCESSED_SCSI |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the volume 'auto-Volume4Test-518790ba-' is already mapped to host 'auto-scsciHost-f24de5b3-ff' which has FC/iSCSI ports while host 'auto-nvmeHost-8009a366-8d6' has NVMe-oF ports |
| LUN_EXISTS |
HTTP 409 |
LUN already exists |
| OPENVMS_LUN_CONTROLLER |
HTTP 409 |
Mapping to LUN=0 is prohibited |
| MAPPINGS_COUNT_LIMIT |
HTTP 409 |
Total mappings count limit reached: 4 |
| OPENVMS_HOST_UDID_EXISTS |
HTTP 409 |
UDID is not unique among host 'auto-Host4Test-a7067567-0e' mapped volumes |
| VOLUME_CANNOT_BE_MAPPED_TO_HOST_IN_NVME_OF_CLUSTER_WITH_NSID_0 |
HTTP 409 |
Mapping of volume 'auto-volume--b0bce75a-2caf' to host 'auto-neutralHost-834815db-' failed because the host is part of an NVMe-oF cluster, and 0 is not a valid NSID value |
| VVOL_ALREADY_INHERITED |
HTTP 409 |
The host 'auto-Host4Test-84c17c1f-65' inherits access to vVols from cluster 'auto-Cluster4Test-d5fb6f1d' to which it belongs |
| MAPPING_ALREADY_INHERITED |
HTTP 409 |
Volume 'auto-volume--9d07db11-9b4e' is already mapped to Cluster 'auto-Cluster4Test-37f572c3'. (Host 'auto-Host4Test-55b2dfe6-99' is a member of this cluster) |
| ACTIVE_ACTIVE_VOLUME_CANNOT_BE_MAPPED_TO_NVME_OF_HOST |
HTTP 409 |
Mapping of volume 'auto-volume--eba5d479-cbea' failed because active-active replication volumes cannot be mapped to hosts or clusters that contain NVMe-oF ports |
| CANT_MIX_NVME_OF_SCSI_VOLUME_MAPPED_TO_SCSI_CLUSTER |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the volume 'auto-Volume4Test-e03cce9b-' is already mapped to cluster 'hostCluster' which has hosts that have FC/iSCSI ports |
| OPENVMS_MISSING_UDID |
HTTP 409 |
Mapping a volume without an assigned UDID is prohibited |
| LUN_AUTO_ASSIGNMENT_FAILURE |
HTTP 409 |
Failed auto-assigning LUN |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Mapping a protocol endpoint to LUN=0 is not supported |
| ILLEGAL_LUN |
HTTP 409 |
The LUN number passed is not in range |
| CANT_MIX_NVME_OF_SCSI_VOLUME_MAPPED_ACCESSED_NVME |
HTTP 409 |
Cannot mix access to volumes with SCSI and NVMe-oF: the volume 'auto-Volume4Test-6fc44958-' is already mapped to host 'auto-nvmeHost-116108d0-85f' which has NVMe-oF ports while host 'auto-scsciHost-72f81411-94' has FC/iSCSI ports |
|
Create an iSCSI Host With Mutual Security
| Description |
Create an iSCSI host with mutual CHAP security.
|
| API Endpoint |
POST api/rest/hosts |
| URL Parameters |
none
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"security_method": "MUTUAL_CHAP",
"security_chap_inbound_username": "hostuser987",
"name": "auto-HostTestName-0c21746d",
"security_chap_outbound_username": "infiniuser987"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"luns": [],
"resiliency": "DISCONNECTED",
"ports_count": 0,
"host_type": "DEFAULT",
"updated_at": 1774519431319,
"port_type": [],
"id": 1001,
"paths": 0,
"security_chap_inbound_username": "hostuser987",
"min_expected_paths": 0,
"subsystem_nqn": null,
"path_health": "NONE",
"security_chap_outbound_username": "infiniuser987",
"security_method": "MUTUAL_CHAP",
"is_min_expected_paths_user_set": false,
"san_client_type": "HOST",
"optimized": true,
"host_cluster_id": 0,
"name": "auto-HostTestName-0c21746d",
"tenant_id": 1,
"created_at": 1774519431319,
"ports_disconnected": 0,
"security_chap_has_inbound_secret": false,
"luns_count": 0,
"ports": [],
"security_chap_has_outbound_secret": false
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Create an iSCSI Host With Security
| Description |
Create an iSCSI host with CHAP security.
|
| API Endpoint |
POST api/rest/hosts |
| URL Parameters |
none
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"security_method": "CHAP",
"security_chap_inbound_username": "hostuser987",
"security_chap_inbound_secret": "hostsecret987654321",
"name": "auto-HostTestName-d2c1ba07"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"luns": [],
"resiliency": "DISCONNECTED",
"ports_count": 0,
"host_type": "DEFAULT",
"updated_at": 1774519430810,
"port_type": [],
"id": 1000,
"paths": 0,
"security_chap_inbound_username": "hostuser987",
"min_expected_paths": 0,
"subsystem_nqn": null,
"path_health": "NONE",
"security_chap_outbound_username": null,
"security_method": "CHAP",
"is_min_expected_paths_user_set": false,
"san_client_type": "HOST",
"optimized": true,
"host_cluster_id": 0,
"name": "auto-HostTestName-d2c1ba07",
"tenant_id": 1,
"created_at": 1774519430810,
"ports_disconnected": 0,
"security_chap_has_inbound_secret": true,
"luns_count": 0,
"ports": [],
"security_chap_has_outbound_secret": false
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Delete a Host
| Description |
Remove a host from the system.
|
| API Endpoint |
DELETE api/rest/hosts/{id} |
| URL Parameters |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"luns": [],
"resiliency": "DISCONNECTED",
"ports_count": 1,
"host_type": "DEFAULT",
"updated_at": 1774519435620,
"port_type": [
"FC"
],
"id": 1000,
"paths": 0,
"security_chap_inbound_username": null,
"min_expected_paths": 0,
"subsystem_nqn": null,
"path_health": "NONE",
"security_chap_outbound_username": null,
"security_method": "NONE",
"is_min_expected_paths_user_set": false,
"san_client_type": "HOST",
"optimized": true,
"host_cluster_id": 0,
"name": "auto-Host4Test-ddfe3e6f-a7",
"tenant_id": 1,
"created_at": 1774519435620,
"ports_disconnected": 0,
"security_chap_has_inbound_secret": false,
"luns_count": 0,
"ports": [
{
"host_id": 1000,
"type": "FC",
"address": "aaaaaaaaaaaaaabb"
}
],
"security_chap_has_outbound_secret": false
},
"error": null
}
|
| Errors |
| HOST_NOT_FOUND |
HTTP 404 |
Host not found |
| CANNOT_DELETE_CLUSTERED_HOST |
HTTP 409 |
Cannot remove a host while it is assigned to a cluster |
| HOST_NOT_EMPTY |
HTTP 409 |
Host has LUN mappings |
|
Delete a Port from a Host
| Description |
Delete a port from a host.
|
| Approval required |
This is a dangerous operation
Removing the last port from a host causes the host to lose access to all of the volumes that are mapped to it
|
| API Endpoint |
DELETE api/rest/hosts/{id}/ports/{type}/{address} |
| URL Parameters |
| id |
long |
ID of the host |
| type |
PortType |
The port type |
| address |
String |
The port address |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"host_id": 1000,
"type": "FC",
"address": "aaaaaffaaa22aabb"
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Removing the last port from a host causes the host to lose access to all of the volumes that are mapped to it |
| PORT_NOT_FOUND |
HTTP 404 |
Port not found |
|
Delete LUN by Volume
| Description |
Unmap a volume from the host by pointing at the volume ID.
|
| Approval required |
This is a dangerous operation
Unmapping entity 'volume_name' may cause loss of access to the entity data
|
| API Endpoint |
DELETE api/rest/hosts/{id}/luns/volume_id/{volume_id} |
| URL Parameters |
| id |
long |
ID of the host |
| volume_id |
long |
ID of the volume |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"udid": 1234,
"host_cluster_id": 0,
"volume_id": 1003,
"clustered": false,
"host_id": 1002,
"id": 464,
"lun": 1
},
"error": null
}
|
| Errors |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-c7e9fdb5-8' is forbidden to modify Default_Protocol_Endpoint 'protocol_endpoint' |
| APPROVAL_REQUIRED |
HTTP 403 |
Unmapping snapshot 'auto-volume--3be88708-be6d' may cause loss of access to the snapshot data |
| VVOL_ALREADY_DISABLED_ON_HOST |
HTTP 409 |
vVols is already disabled on host 'auto-Host4Test-12dc6a6e-45' |
|
Get a Host
| Description |
Get a host.
|
| API Endpoint |
GET api/rest/hosts/{id} |
| URL Parameters |
| id |
long |
ID of the host |
| prevent_update_fields_from_initiators |
boolean |
|
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"luns": [
{
"udid": null,
"host_cluster_id": 1001,
"volume_id": 1003,
"clustered": true,
"host_id": 1000,
"id": 99,
"lun": 11
}
],
"resiliency": "DISCONNECTED",
"ports_count": 1,
"host_type": "DEFAULT",
"updated_at": 1774519028138,
"port_type": [
"FC"
],
"id": 1000,
"paths": 0,
"security_chap_inbound_username": null,
"min_expected_paths": 0,
"subsystem_nqn": null,
"path_health": "NONE",
"security_chap_outbound_username": null,
"security_method": "NONE",
"is_min_expected_paths_user_set": false,
"san_client_type": "HOST",
"optimized": true,
"host_cluster_id": 1001,
"name": "auto-Host4Test-66caefb9-19",
"tenant_id": 1,
"created_at": 1774519028138,
"ports_disconnected": 0,
"security_chap_has_inbound_secret": false,
"luns_count": 1,
"ports": [
{
"host_id": 1000,
"type": "FC",
"address": "aaaaaaaaaaaa0001"
}
],
"security_chap_has_outbound_secret": false
},
"error": null
}
|
| Errors |
| HOST_NOT_FOUND |
HTTP 404 |
Host not found |
| MALFORMED_ID_TYPE |
HTTP 404 |
Object Not Found. Invalid id type (expect to get Number) |
|
Get a Host Attribute
| Description |
Get an attribute of a host.
|
| API Endpoint |
GET api/rest/hosts/{id}/{attribute} |
| URL Parameters |
| id |
long |
ID of the host |
| attribute |
String |
The name of the host’s attribute |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "auto-Host4Test-9468d91c-68",
"error": null
}
|
| Errors |
See general list of error codes.
|
Get a LUN of a Host
| Description |
Get a LUN of a host
|
| API Endpoint |
GET api/rest/hosts/{id}/luns/{lun} |
| URL Parameters |
| id |
long |
ID of the host |
| lun |
int |
ID of the LUN |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Get all Hosts
| Description |
Get all of the hosts in the system. Filterable and Sortable fields:security_method,security_chap_inbound_username,security_chap_outbound_username,created_at,id,is_min_expected_paths_user_set,name,optimized,host_type,updated_at. Filterable only fields:min_expected_paths,path_health,paths,ports_disconnected,resiliency. |
| API Endpoint |
GET api/rest/hosts |
| URL Parameters |
| prevent_update_fields_from_initiators |
boolean |
|
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"luns": [],
"resiliency": "DISCONNECTED",
"ports_count": 0,
"host_type": "DEFAULT",
"updated_at": 1774519424541,
"port_type": [],
"id": 1000,
"paths": 0,
"security_chap_inbound_username": null,
"min_expected_paths": 0,
"subsystem_nqn": null,
"path_health": "NONE",
"security_chap_outbound_username": null,
"security_method": "NONE",
"is_min_expected_paths_user_set": false,
"san_client_type": "HOST",
"optimized": true,
"host_cluster_id": 0,
"name": "auto-Host4Test-a2184f0a-22",
"tenant_id": 1,
"created_at": 1774519424541,
"ports_disconnected": 0,
"security_chap_has_inbound_secret": false,
"luns_count": 0,
"ports": [],
"security_chap_has_outbound_secret": false
}
],
"error": null
}
|
| Errors |
| NOT_SORTABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be sortable: ('luns') |
| NOT_FILTERABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be filtered: ('luns') |
| MAX_PAGE_SIZE_VIOLATION |
HTTP 400 |
Requested page size 1000000 exceeds range 1..1000 for command 'GetAllHostsFiltered' |
| WRONG_PARAMETER |
HTTP 400 |
The value (0) of parameter 'page' does not meet a condition: 'int >= 1' |
| UNKNOWN_PARAMETER |
HTTP 400 |
An unknown parameter was passed: 'host_cluster_id' |
| UNSUPPORTED_SORTABLE_FIELDS_MIX |
HTTP 400 |
The request contains a combination of sortable fields that cannot be processed together. Please adjust your sorting criteria |
|
Get all LUNs for a Host
| Description |
Get all LUNs for a host.
|
| API Endpoint |
GET api/rest/hosts/{host_id}/luns |
| URL Parameters |
| host_id |
long |
ID of the host |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 10,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"udid": null,
"host_cluster_id": 0,
"volume_id": 1002,
"clustered": false,
"host_id": 1001,
"id": 543,
"lun": 1
},
{
"udid": null,
"host_cluster_id": 0,
"volume_id": 1004,
"clustered": false,
"host_id": 1001,
"id": 544,
"lun": 2
},
{
"udid": null,
"host_cluster_id": 0,
"volume_id": 1006,
"clustered": false,
"host_id": 1001,
"id": 545,
"lun": 3
},
{
"udid": null,
"host_cluster_id": 0,
"volume_id": 1008,
"clustered": false,
"host_id": 1001,
"id": 546,
"lun": 4
},
{
"udid": null,
"host_cluster_id": 0,
"volume_id": 1010,
"clustered": false,
"host_id": 1001,
"id": 547,
"lun": 5
},
{
"udid": null,
"host_cluster_id": 0,
"volume_id": 1012,
"clustered": false,
"host_id": 1001,
"id": 548,
"lun": 6
},
{
"udid": null,
"host_cluster_id": 0,
"volume_id": 1014,
"clustered": false,
"host_id": 1001,
"id": 549,
"lun": 7
},
{
"udid": null,
"host_cluster_id": 0,
"volume_id": 1016,
"clustered": false,
"host_id": 1001,
"id": 550,
"lun": 8
},
{
"udid": null,
"host_cluster_id": 0,
"volume_id": 1018,
"clustered": false,
"host_id": 1001,
"id": 551,
"lun": 9
},
{
"udid": null,
"host_cluster_id": 0,
"volume_id": 1020,
"clustered": false,
"host_id": 1001,
"id": 552,
"lun": 10
}
],
"error": null
}
|
| Errors |
| HOST_NOT_FOUND |
HTTP 404 |
Host not found |
|
Get Port Address from Port Key
| Description |
|
| API Endpoint |
GET api/rest/hosts/ports/{portKey} |
| URL Parameters |
| portKey |
Long |
Port key of the port |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"host_id": 1000,
"type": "NVME",
"address": "nqn.2014-08.com.example:nvme.host.sys.test1"
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get the Host ID by Port
| Description |
Get a host ID by providing a port address
|
| API Endpoint |
GET api/rest/hosts/host_id_by_initiator_address/{wwn} |
| URL Parameters |
| wwn |
String |
The address of the port |
| prevent_update_fields_from_initiators |
boolean |
|
|
| Roles |
ALL
|
| System States |
ALL
|
Invalid Operation States |
| System States | Methods |
|
LOCAL
LOCAL_SHUTDOWN
|
ALL
|
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": 1000,
"error": null
}
|
| Errors |
| HOST_NOT_FOUND |
HTTP 404 |
Host not found |
|
Get the Host Ports
| Description |
Get all of the ports for a host.
|
| API Endpoint |
GET api/rest/hosts/{host_id}/ports |
| URL Parameters |
| host_id |
long |
ID of the host |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"host_id": 1000,
"type": "FC",
"address": "aaaaaaaaaaaa0002"
}
],
"error": null
}
|
| Errors |
| HOST_NOT_FOUND |
HTTP 404 |
Host not found |
|
Remove the CHAP Security from a Host
| Description |
Remove the CHAP security attribute from a host.
|
| API Endpoint |
PUT api/rest/hosts/{id} |
| URL Parameters |
| id |
long |
The id of the host to update |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"security_method": "NONE"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"luns": [],
"resiliency": "DISCONNECTED",
"ports_count": 0,
"host_type": "DEFAULT",
"updated_at": 1774519428577,
"port_type": [],
"id": 1000,
"paths": 0,
"security_chap_inbound_username": null,
"min_expected_paths": 0,
"subsystem_nqn": null,
"path_health": "NONE",
"security_chap_outbound_username": null,
"security_method": "NONE",
"is_min_expected_paths_user_set": false,
"san_client_type": "HOST",
"optimized": true,
"host_cluster_id": 0,
"name": "auto-Host4Test-0580a702-c8",
"tenant_id": 1,
"created_at": 1774519428228,
"ports_disconnected": 0,
"security_chap_has_inbound_secret": false,
"luns_count": 0,
"ports": [],
"security_chap_has_outbound_secret": false
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Set a Mutual CHAP Secret to an Existing Host
| Description |
Set a mutual CHAP secret to an existing host.
|
| API Endpoint |
PUT api/rest/hosts/{id} |
| URL Parameters |
| id |
long |
The id of the host to update |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"security_chap_inbound_secret": "12s32112s3d234",
"security_chap_inbound_username": "hostuser987",
"security_chap_outbound_secret": "12s3d2312s3d23",
"security_chap_outbound_username": "infiniuser987",
"security_method": "MUTUAL_CHAP"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"luns": [],
"resiliency": "DISCONNECTED",
"ports_count": 1,
"host_type": "DEFAULT",
"updated_at": 1774519413813,
"port_type": [
"ISCSI"
],
"id": 1000,
"paths": 0,
"security_chap_inbound_username": "hostuser987",
"min_expected_paths": 0,
"subsystem_nqn": null,
"path_health": "NONE",
"security_chap_outbound_username": "infiniuser987",
"security_method": "MUTUAL_CHAP",
"is_min_expected_paths_user_set": false,
"san_client_type": "HOST",
"optimized": true,
"host_cluster_id": 0,
"name": "auto-Host4Test-c47bea9f-5e",
"tenant_id": 1,
"created_at": 1774519413339,
"ports_disconnected": 0,
"security_chap_has_inbound_secret": true,
"luns_count": 0,
"ports": [
{
"host_id": 1000,
"type": "ISCSI",
"address": "iqn.2011-08.com.example:storage"
}
],
"security_chap_has_outbound_secret": true
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Set CHAP Secret to an Existing Host
| Description |
Set CHAP secret to an existing host.
|
| API Endpoint |
PUT api/rest/hosts/{id} |
| URL Parameters |
| id |
long |
The id of the host to update |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"security_method": "CHAP",
"security_chap_inbound_username": "hostuser987",
"security_chap_inbound_secret": "12s32112s3d234"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"luns": [],
"resiliency": "DISCONNECTED",
"ports_count": 1,
"host_type": "DEFAULT",
"updated_at": 1774519422419,
"port_type": [
"ISCSI"
],
"id": 1000,
"paths": 0,
"security_chap_inbound_username": "hostuser987",
"min_expected_paths": 0,
"subsystem_nqn": null,
"path_health": "NONE",
"security_chap_outbound_username": null,
"security_method": "CHAP",
"is_min_expected_paths_user_set": false,
"san_client_type": "HOST",
"optimized": true,
"host_cluster_id": 0,
"name": "auto-Host4Test-cb2bbb3f-85",
"tenant_id": 1,
"created_at": 1774519422065,
"ports_disconnected": 0,
"security_chap_has_inbound_secret": true,
"luns_count": 0,
"ports": [
{
"host_id": 1000,
"type": "ISCSI",
"address": "iqn.2011-08.com.example:storage"
}
],
"security_chap_has_outbound_secret": false
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Unmapping a Volume from a Host Using the LUN ID
| Description |
Unmap a volume from the host by pointing at the LUN ID.
|
| Approval required |
This is a dangerous operation
Unmapping entity 'volume_name' may cause loss of access to the entity data
|
| API Endpoint |
DELETE api/rest/hosts/{id}/luns/lun/{lun_number} |
| URL Parameters |
| id |
long |
ID of the host |
| lun_number |
int |
ID of the LUN |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"udid": null,
"host_cluster_id": 0,
"volume_id": 1006,
"clustered": false,
"host_id": 1000,
"id": 1871,
"lun": 3
},
"error": null
}
|
| Errors |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-bf2a6fed-7' is forbidden to modify Default_Protocol_Endpoint 'protocol_endpoint' |
| APPROVAL_REQUIRED |
HTTP 403 |
Unmapping snapshot 'auto-volume--3be88708-be6d' may cause loss of access to the snapshot data |
| LUN_NOT_FOUND |
HTTP 404 |
LUN not found |
| LUN_IS_CLUSTERED |
HTTP 409 |
A clustered LUN can be removed only from a Cluster |
|
Update Host
| Description |
Update a host attribute. For the "min_expected_paths" attribute: to override the default value, provide a non-negative number. To revert to the default behavior, set the value to -1.
|
| Approval required |
This is a dangerous operation
Modifying the host path optimized state may change the host's multipathing load-balancing behavior
|
| API Endpoint |
PUT api/rest/hosts/{id} |
| URL Parameters |
| id |
long |
The id of the host to update |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"security_chap_inbound_secret": "12s32112s3d234",
"security_chap_outbound_secret": "12s3d2312s3d23",
"security_method": "CHAP"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"luns": [],
"resiliency": "DISCONNECTED",
"ports_count": 0,
"host_type": "DEFAULT",
"updated_at": 1774519416113,
"port_type": [],
"id": 1000,
"paths": 0,
"security_chap_inbound_username": null,
"min_expected_paths": 0,
"subsystem_nqn": null,
"path_health": "NONE",
"security_chap_outbound_username": null,
"security_method": "CHAP",
"is_min_expected_paths_user_set": false,
"san_client_type": "HOST",
"optimized": true,
"host_cluster_id": 0,
"name": "auto-Host4Test-ddd3075b-03",
"tenant_id": 1,
"created_at": 1774519415857,
"ports_disconnected": 0,
"security_chap_has_inbound_secret": true,
"luns_count": 0,
"ports": [],
"security_chap_has_outbound_secret": true
},
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('security_method') could not be translated to an expected type |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| WRONG_PARAMETER |
HTTP 400 |
The value (-2) of parameter 'min_expected_paths' does not meet a condition: 'non-negative, non-null value or -1 for calculated field' |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('host_cluster_id') |
| NOT_SUPPORTED_MULTIPLE_UPDATE |
HTTP 400 |
This resource does not support updating multiple fields in one request |
| APPROVAL_REQUIRED |
HTTP 403 |
Modifying the host path optimized state may change the host's multipathing load-balancing behavior |
| CHAP_SECURITY_CONDITION_NOT_MET |
HTTP 409 |
Host auto-Host4Test-cb2bbb3f-85 does not meet the security condition of MUTUAL_CHAP. Outbound CHAP secret is missing |
| OPENVMS_HOST_TYPE_NO_MODIFICATION |
HTTP 409 |
OpenVMS host type is set on creation only |
| INVALID_CHAP_USERNAME |
HTTP 409 |
CHAP username cannot be accepted: CHAP username length has to be between 0 and 20 characters long |
| INVALID_CHAP_SECRET |
HTTP 409 |
CHAP secrets cannot be accepted: Must contain ASCII characters only |
|
Initiator
Get all Initiators
| Description |
Return list of initiator ports zoned to infinibox Filterable and Sortable fields:
|
| API Endpoint |
GET api/rest/initiators |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 907,
"pages_total": 1,
"page": 1,
"page_size": 1000
},
"result": [
{
"paths": 6,
"connectivity_status": "FULLY_CONNECTED",
"port_key": -1,
"address": "iqn.1991-05.com.microsoft:host632.infinidat.com",
"host_id": 0,
"type": "ISCSI",
"targets": [
{
"initiator_ip": "172.20.86.105",
"session_id": 1,
"node_id": 1,
"netspace_name": "nwsp1",
"address": "iqn.2009-11.com.infinidat:storage:infinibox-sn-ibox3001-01",
"target_ip": "192.158.1.38"
},
{
"initiator_ip": "172.20.86.105",
"session_id": 2,
"node_id": 2,
"netspace_name": "nwsp1",
"address": "iqn.2009-11.com.infinidat:storage:infinibox-sn-ibox3001-01",
"target_ip": "192.158.1.38"
},
{
"initiator_ip": "172.20.86.105",
"session_id": 3,
"node_id": 3,
"netspace_name": "nwsp1",
"address": "iqn.2009-11.com.infinidat:storage:infinibox-sn-ibox3001-01",
"target_ip": "192.158.1.38"
},
{
"initiator_ip": "172.20.86.105",
"session_id": 4,
"node_id": 1,
"netspace_name": "nwsp1",
"address": "iqn.2009-11.com.infinidat:storage:infinibox-sn-ibox3001-01",
"target_ip": "192.158.1.38"
},
{
"initiator_ip": "172.20.86.105",
"session_id": 5,
... TRUNCATED ...
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('host_id') could not be translated to an expected type |
| UNSUPPORTED_FILTER_RELATION |
HTTP 400 |
The filtering operator 'NE' is not supported by this resource |
|
Get Initiator by Address
| Description |
Return initiator by address
|
| API Endpoint |
GET api/rest/initiators/{address} |
| URL Parameters |
| address |
String |
The address of the initiator |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"paths": 6,
"connectivity_status": "FULLY_CONNECTED",
"port_key": 783758374666666593,
"address": "nqn.2014-08.com.example:nvme.host.sys.test1",
"host_id": 2,
"type": "NVME",
"targets": [
{
"target_ip": "192.158.1.38",
"node_id": 1,
"netspace_name": "nwsp1",
"initiator_ip": "172.20.86.105",
"address": "nqn.2020-01.com.infinidat:19-subsystem-1000"
},
{
"target_ip": "192.158.1.38",
"node_id": 2,
"netspace_name": "nwsp1",
"initiator_ip": "172.20.86.105",
"address": "nqn.2020-01.com.infinidat:19-subsystem-1000"
},
{
"target_ip": "192.158.1.38",
"node_id": 3,
"netspace_name": "nwsp1",
"initiator_ip": "172.20.86.105",
"address": "nqn.2020-01.com.infinidat:19-subsystem-1000"
},
{
"target_ip": "192.158.1.38",
"node_id": 1,
"netspace_name": "nwsp1",
"initiator_ip": "172.20.86.105",
"address": "nqn.2020-01.com.infinidat:19-subsystem-1000"
},
{
"target_ip": "192.158.1.38",
"node_id": 2,
"netspace_name": "nwsp1",
"initiator_ip": "172.20.86.105",
"address": "nqn.2020-01.com.infinidat:19-subsystem-1000"
},
{
"target_ip": "192.158.1.38",
"node_id": 3,
"netspace_name": "nwsp1",
"initiator_ip": "172.20.86.105",
"address": "nqn.2020-01.com.infinidat:19-subsystem-1000"
}
]
},
"error": null
}
|
| Errors |
| INITIATOR_NOT_FOUND |
HTTP 404 |
Initiator not found |
|
Interface
Add Port
| Description |
Add port described in the input json to interface
|
| Approval required |
This is a dangerous operation
The possible maximum speed of the ports in the Port Group is not identical. To ensure the system is configured according to the best practices, make sure that all ports in the Port Group will run at the same speed or select other ports
|
| API Endpoint |
POST api/rest/{id}/ports |
| URL Parameters |
| id |
long |
The id of the interface to add port to |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
{
"port_number": null,
"name": "eth-kuku"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "mltpl-eth",
"operational_state_description": "All ports in this interface are disconnected. The disconnected ports are: N/A, N/A.",
"rate_limit": null,
"id": 7643,
"state": "ENABLED",
"node_id": 1,
"internal_name": "N1L1",
"network_space_ids": [],
"operational_state": "DISCONNECTED",
"type": "PORT_GROUP",
"ports": [
{
"port_number": null,
"name": "eth0"
},
{
"port_number": null,
"name": "eth-kuku"
}
]
},
"error": null
}
|
| Errors |
| WRONG_PORT_ROLE |
HTTP 400 |
The port 'eth0' on node 1 is of the wrong role: Management |
| ILLEGAL_INTERFACE_NAME |
HTTP 400 |
Illegal interface name 'eth-interface-name-too-long' |
| NO_SUCH_PORT |
HTTP 400 |
Node 1 does not have a port 'eth-none' |
| APPROVAL_REQUIRED |
HTTP 403 |
The possible maximum speed of the ports in the Port Group is not identical. To ensure the system is configured according to the best practices, make sure that all ports in the Port Group will run at the same speed or select other ports |
| PORT_BELONGS_TO_PORTGROUP |
HTTP 409 |
The port 'eth-kuku' on node 1 is already part of a port group |
| INTERFACE_OPERATION_FAILED |
HTTP 409 |
The operation on interface failed. Please retry |
|
Create Interface
| Description |
Create interface
|
| Approval required |
This is a dangerous operation
The possible maximum speed of the ports in the Port Group is not identical. To ensure the system is configured according to the best practices, make sure that all ports in the Port Group will run at the same speed or select other ports
|
| API Endpoint |
POST api/rest |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
{
"name": "i0f3f7e99d-bf7a-40d1-9c5f-b17ffe5ba7cf-f3f7e99d-bf7a-40d1-9c5f-b1",
"rate_limit": null,
"id": 0,
"node_id": 1,
"type": "PORT_GROUP",
"ports": [
{
"port_number": null,
"name": "eth-6612e3b5-36"
}
]
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "i0f3f7e99d-bf7a-40d1-9c5f-b17ffe5ba7cf-f3f7e99d-bf7a-40d1-9c5f-b1",
"operational_state_description": "All ports in this interface are disconnected. The disconnected ports are: N/A.",
"rate_limit": null,
"id": 1771,
"state": "ENABLED",
"node_id": 1,
"internal_name": "N1L1",
"network_space_ids": [],
"operational_state": "DISCONNECTED",
"type": "PORT_GROUP",
"ports": [
{
"port_number": null,
"name": "eth-6612e3b5-36"
}
]
},
"error": null
}
|
| Errors |
| WRONG_PARAMETER |
HTTP 400 |
The value (0) of parameter 'vlan' does not meet a condition: 'must be greater than or equal to 1' |
| NO_SUCH_PORT |
HTTP 400 |
Node 1 does not have a port 'eth-none' |
| MISSING_FIELD |
HTTP 400 |
A field ('type') is missing in an object passed |
| PORT_SPECIFIED_MULTIPLE_TIMES |
HTTP 400 |
A port (myPortName) can be used only once in a port group |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name '$' |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('node_id') |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
| APPROVAL_REQUIRED |
HTTP 403 |
The possible maximum speed of the ports in the Port Group is not identical. To ensure the system is configured according to the best practices, make sure that all ports in the Port Group will run at the same speed or select other ports |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for READ_ONLY |
| INTERFACE_NOT_FOUND |
HTTP 404 |
Invalid interface ID |
| ILLEGAL_UNDERLYING_INTERFACE_TYPE |
HTTP 409 |
VLAN must be created on top of a port group |
| PORT_BELONGS_TO_PORTGROUP |
HTTP 409 |
The port 'eth0' on node 1 is already part of a port group |
| NO_ACTIVE_PORTS_FOR_VLAN |
HTTP 409 |
Creating a VLAN on top of a port group requires at least one active port |
| VLAN_INTERFACES_PER_NODE_COUNT_LIMIT |
HTTP 409 |
A new VLAN interface cannot be created on node 1. The system has reached the maximum number of VLAN interfaces per node: 1 |
| VLAN_ID_ALREADY_DEFINED_ON_INTERFACE |
HTTP 409 |
VLAN 1 is already defined on interface 'i-eth1' |
| INTERFACES_PER_NODE_COUNT_LIMIT |
HTTP 409 |
A new interface cannot be created on node 1. The system has reached the maximum number of interfaces per node: 1 |
| INTERFACE_NAME_CONFLICT |
HTTP 409 |
An interface with this name already exists |
|
Delete Interface
| Description |
Delete single interface
|
| API Endpoint |
DELETE api/rest/{id} |
| URL Parameters |
| id |
long |
The id of the interface to delete |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "v1",
"vlan": 1,
"rate_limit": null,
"state": "ENABLED",
"node_id": 1,
"internal_name": "N1L1.1",
"network_space_ids": [],
"underlying_interface_id": 7681,
"type": "VLAN",
"id": 7682
},
"error": null
}
|
| Errors |
| INTERFACE_NOT_FOUND |
HTTP 404 |
Invalid interface ID |
| CANNOT_DELETE_INTERFACE_WITH_VLANS |
HTTP 409 |
Interface 'i-eth1' has VLANs, please delete them first |
| INTERFACE_IS_ENABLED |
HTTP 409 |
Enabled interface cannot be deleted. Please disable first |
| INTERFACE_IN_USE |
HTTP 409 |
The interface is in use by network space(s) |
|
Delete Port
| Description |
Remove port from interface
|
| API Endpoint |
DELETE api/rest/{id}/ports/{name} |
| URL Parameters |
| id |
long |
The id of the interface |
| name |
String |
The name of the port to remove from interface |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "sngl-prt",
"operational_state_description": "All ports in the interface are connected and run at the same speed",
"rate_limit": null,
"id": 7662,
"state": "ENABLED",
"node_id": 1,
"internal_name": "N1L1",
"network_space_ids": [],
"operational_state": "CONNECTED",
"type": "PORT_GROUP",
"ports": [
{
"port_number": 1,
"name": "eth0"
}
]
},
"error": null
}
|
| Errors |
| PORT_NOT_IN_PORTGROUP |
HTTP 404 |
Port 'eth9' not found in the port group |
| CANNOT_DELETE_LAST_PORT_IN_PORTGROUP |
HTTP 409 |
Cannot delete last port in port group |
|
Disable Interface
| Description |
Disable interface
|
| Approval required |
This is a dangerous operation
Interface 'interfaceName' has VLANs. Disabling the interface will also disable these VLANs, and may cause any network space using them to become temporarily unavailable
|
| API Endpoint |
POST api/rest/{id}/disable |
| URL Parameters |
| id |
long |
The id of the interface to disable |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "i-eth1",
"operational_state_description": "The interface was disabled by an administrator",
"rate_limit": null,
"id": 7916,
"state": "DISABLED",
"node_id": 1,
"internal_name": "N1L1",
"network_space_ids": [],
"operational_state": "ADMINISTRATIVELY_DISABLED",
"type": "PORT_GROUP",
"ports": [
{
"port_number": 2,
"name": "eth1"
},
{
"port_number": 1,
"name": "eth0"
}
]
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Interface 'i-eth1' has VLANs. Disabling the interface will also disable these VLANs, and may cause any network space using them to become temporarily unavailable |
| INTERFACE_IN_USE |
HTTP 409 |
The interface is in use by network space(s) |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Disabling a VLAN interface is not supported |
| INTERFACE_ALREADY_DISABLED |
HTTP 409 |
Interface is already disabled |
|
Enable Interface
| Description |
Enable interface
|
| API Endpoint |
POST api/rest/{id}/enable |
| URL Parameters |
| id |
long |
The id of the interface to enable |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "i-eth1",
"operational_state_description": "All ports in the interface are connected and run at the same speed",
"rate_limit": null,
"id": 8089,
"state": "ENABLED",
"node_id": 1,
"internal_name": "N1L1",
"network_space_ids": [],
"operational_state": "CONNECTED",
"type": "PORT_GROUP",
"ports": [
{
"port_number": 2,
"name": "eth1"
},
{
"port_number": 1,
"name": "eth0"
}
]
},
"error": null
}
|
| Errors |
| INTERFACE_ALREADY_ENABLED |
HTTP 409 |
Interface is already enabled |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Enabling a VLAN interface is not supported |
|
Get Interface by ID
| Description |
Get information for single interface
|
| API Endpoint |
GET api/rest/{id} |
| URL Parameters |
| id |
long |
The id of the interface to get data for |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "i0e58ed101-1da5-43b1-a1f4-0d061235c3d1-e58ed101-1da5-43b1-a1f4-0d",
"operational_state_description": "All ports in this interface are disconnected. The disconnected ports are: N/A.",
"rate_limit": null,
"id": 618,
"state": "ENABLED",
"node_id": 1,
"internal_name": "N1L1",
"network_space_ids": [
1000
],
"operational_state": "DISCONNECTED",
"type": "PORT_GROUP",
"ports": [
{
"port_number": null,
"name": "eth-706c8f36-e2"
}
]
},
"error": null
}
|
| Errors |
| INTERFACE_NOT_FOUND |
HTTP 404 |
Invalid interface ID |
|
Get Interfaces
| Description |
Get information for interface configured in the system according to fiter and sort params Filterable and Sortable fields:id,internal_name,name,node_id,rate_limit,type. |
| API Endpoint |
GET api/rest |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 2,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"name": "syslg-rl1",
"operational_state_description": "N/A",
"rate_limit": null,
"id": 1827,
"state": "ENABLED",
"node_id": 1,
"internal_name": "N1L2",
"network_space_ids": [],
"operational_state": "DISCONNECTED",
"type": "PORT_GROUP",
"ports": []
},
{
"name": "syslg-rl2",
"operational_state_description": "N/A",
"rate_limit": null,
"id": 1828,
"state": "ENABLED",
"node_id": 1,
"internal_name": "N1L3",
"network_space_ids": [],
"operational_state": "DISCONNECTED",
"type": "PORT_GROUP",
"ports": []
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Update Interface
| Description |
Update interface
|
| API Endpoint |
PUT api/rest/{id} |
| URL Parameters |
| id |
long |
The id of the interface |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
{
"name": "new_name"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "new_name",
"operational_state_description": "N/A",
"rate_limit": null,
"id": 7720,
"state": "ENABLED",
"node_id": 1,
"internal_name": "N1L1",
"network_space_ids": [],
"operational_state": "DISCONNECTED",
"type": "PORT_GROUP",
"ports": []
},
"error": null
}
|
| Errors |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name '#' |
| WRONG_PARAMETER |
HTTP 400 |
The value (1000001) of parameter 'rate_limit' does not meet a condition: 'must be less than or equal to 1000000' |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('underlying_interface_id') |
| INTERFACE_IN_USE_BY_ASSOCIATED_NET_SPACE |
HTTP 409 |
The interface is in use by network space(s) associated with a service |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
updating attributes of a single port interface is not supported |
| CANNOT_RENAME_INTERFACE_WITH_VLANS |
HTTP 409 |
Interface 'i-eth1' has VLANs. Renaming the interface is not allowed |
| INTERFACE_NAME_CONFLICT |
HTTP 409 |
An interface with this name already exists |
|
Internal Services
Create Multiple NFS Users
| Description |
Create multiple NFS users
|
| API Endpoint |
POST api/internal/nfs_users |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
[
{
"primary_gid": 122222,
"uid": 1084647300,
"supplementary_gsids": [
"S-1-5-67890-211",
"S-1-5-67890-212",
"S-1-5-67890-213"
],
"supplementary_gids": [
111,
222,
333
],
"primary_gsid": "S-1-5-67890-400",
"sid": "S-1-5-827-888"
},
{
"primary_gid": 122222,
"uid": 835041846,
"supplementary_gsids": [
"S-1-5-67890-211",
"S-1-5-67890-212",
"S-1-5-67890-213"
],
"supplementary_gids": [
111,
222,
333
],
"primary_gsid": "S-1-5-67890-400",
"sid": "S-1-5-1387-333"
}
]
|
| Returns |
{
"metadata": {
"ready": true
},
"result": [
{
"primary_gid": 122222,
"uid": 1084647300,
"supplementary_gsids": [
"S-1-5-67890-211",
"S-1-5-67890-212",
"S-1-5-67890-213"
],
"supplementary_gids": [
111,
222,
333
],
"primary_gsid": "S-1-5-67890-400",
"sid": "S-1-5-827-888",
"id": 1003
},
{
"primary_gid": 122222,
"uid": 835041846,
"supplementary_gsids": [
"S-1-5-67890-211",
"S-1-5-67890-212",
"S-1-5-67890-213"
],
"supplementary_gids": [
111,
222,
333
],
"primary_gsid": "S-1-5-67890-400",
"sid": "S-1-5-1387-333",
"id": 1004
}
],
"error": null
}
|
| Errors |
| BULK_CREATE_NFS_USERS_COUNT_LIMIT |
HTTP 409 |
Bulk create NFS Users count limit reached (100) |
| UID_NOT_UNIQUE |
HTTP 409 |
Only one user can be mapped to uid 555 |
| NFS_USER_GROUPS_HAS_DUPLICATES |
HTTP 409 |
The user with uid 1621534128 has supplementary groups duplicates |
| NFS_USER_TO_GROUP_MAPPINGS_LIMIT |
HTTP 409 |
NFS User to group mappings limit reached (7) |
| NFS_USER_COUNT_LIMIT |
HTTP 409 |
NFS User count limit reached (4) |
|
Create Multiple Volume
| Description |
Creates multiple volumes
|
| API Endpoint |
POST api/internal/volumes/multiple_create |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
[
{
"pool_id": 1000,
"name": "auto-volume--12108427-2e81",
"provtype": "THIN",
"size": 1000000000
},
{
"pool_id": 1000,
"name": "auto-volume--ce1c21d8-e55d",
"provtype": "THIN",
"size": 1000000000
},
{
"pool_id": 1000,
"name": "auto-volume--5b8e7a15-79f6",
"provtype": "THIN",
"size": 1000000000
},
{
"pool_id": 1000,
"name": "auto-volume--08bfb9fb-d29b",
"provtype": "THIN",
"size": 1000000000
},
{
"pool_id": 1000,
"name": "auto-volume--dc99dced-10d4",
"provtype": "THIN",
"size": 1000000000
},
{
"pool_id": 1000,
"name": "auto-volume--8430de2f-ddb8",
"provtype": "THIN",
"size": 1000000000
},
{
"pool_id": 1000,
"name": "auto-volume--da37808e-c724",
"provtype": "THIN",
"size": 1000000000
},
{
"pool_id": 1000,
"name": "auto-volume--8eb46d82-5629",
"provtype": "THIN",
"size": 1000000000
},
{
"pool_id": 1000,
"name": "auto-volume--6fc0e20f-d95e",
"provtype": "THIN",
"size": 1000000000
},
{
"pool_id": 1000,
"name": "auto-volume--ddbf0855-586f",
"provtype": "THIN",
"size": 1000000000
}
]
|
| Returns |
{
"metadata": {
"ready": true
},
"result": [
{
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--3a3e5aa6-a1cf-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774520082611,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1002,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 0,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "MASTER",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": 1.0,
"has_internal_children": null,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
... TRUNCATED ...
|
| Errors |
| GROUP_MEMBERS_LIMIT_EXCEEDED |
HTTP 409 |
A dataset group cannot have more than 10 members |
|
Delete Multiple Volumes
| Description |
Delete multiple volumes
|
| API Endpoint |
DELETE api/internal/volumes |
| URL Parameters |
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": [
{
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--3a3e5aa6-a1cf-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774520082611,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": null,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1002,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 0,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "MASTER",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": 1.0,
"has_internal_children": false,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": null,
... TRUNCATED ...
|
| Errors |
| DATASET_IN_DIFFERENT_POOL |
HTTP 409 |
All the datasets in a multiple dataset operation must be in the same pool |
|
Delete Simulation Response
| Description |
Delete simulation response
|
| API Endpoint |
POST api/internal/delete_simulation_response |
| URL Parameters |
none
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Get Internal Datasets Number
| Description |
Get the number of internal datasets
|
| API Endpoint |
GET api/internal/number_of_internal_datasets |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": 0,
"error": null
}
|
| Errors |
See general list of error codes.
|
Heapdump
| Description |
Dump heap
|
| API Endpoint |
GET api/internal/heap |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
"ERROR"
|
| Errors |
See general list of error codes.
|
Internal Triggers
Clear Queues
| Description |
Clear the event dispatcher queue and all the trigger queues.
|
| API Endpoint |
POST api/internal/triggers/clear_queues |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": true,
"error": null
}
|
| Errors |
See general list of error codes.
|
Kms
Get Kms Configuration
| Description |
Get KMS configuration Filterable and Sortable fields:id,ignore_kms_certificate,infinibox_kmip_certificate,kms_ca_certificate,kms_username. |
| API Endpoint |
GET api/rest/system/kms |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"kms_ca_certificate": null,
"kms_servers": null,
"infinibox_kmip_certificate": "-----BEGIN CERTIFICATE-----\nMIIFcTCCA1mgAwIBAgIDATZcMA0GCSqGSIb3DQEBCwUAMIG/MQswCQYDVQQGEwJV\nUzEaMBgGA1UECBYRSU5GSU5JREFUX1RFU1RfQ0ExGjAYBgNVBAcWEUlORklOSURB\nVF9URVNUX0NBMRowGAYDVQQKFhFJTkZJTklEQVRfVEVTVF9DQTEaMBgGA1UECxYR\nSU5GSU5JREFUX1RFU1RfQ0ExGjAYBgNVBAMUEUlORklOSURBVF9URVNUX0NBMSQw\nIgYJKoZIhvcNAQkBFhVleGFtcGxlQGluZmluaWRhdC5jb20wHhcNMTkwOTEwMDgy\nMDAwWhcNMzkwOTA1MDgyMDAwWjAUMRIwEAYDVQQDDAl0ZXN0X3VzZXIwggIiMA0G\nCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDVXRWuGQk1T8I28+EMlEotMFVwb8J7\noEPBSm10Osu33bPHmKlw87SCAKYPCeAXEXnSOOZgNdzsxIQmYE9MaoK43PrHaHG5\nNmJ7HfiAVoVp1hRJkiz0qfv7rSx1Airl3pj14mg8R5pnSZToexw9fH1bc35VnRwn\nxbyGpbXMdS/e69EiMjM68t10KVNI5jxfwcnXhbqdth+4mteKHP/Vqzs7Qv/JAG5e\nmaiNIyC0XdII9cFbcvMXXdtXDisV7ze8xkMM6Tq/s6m5hsl615gFFcoWq3Be/UZB\nv4ax2aFK0Xe6dDrzVlRQXs+ogFzpCdUC/c5hLXQhlcMRB9o/rZNj1KkDseKCUs6c\nSPpJrYON7PNaOGn69NceYK4C67l/nequN9GZH5gXKoKH75s9rXbMNWx82ZMZ8aIo\nrOczJiVqTbLLXfSaa09WX2NDga30lvRV5mApqYadweHIa3e3cV8J8TZ1Z3pSaoZN\noTnS1ul5Q9TbAKKYmVplExd7BDCeaR0hejdwDit0L9FdhjVf0CrtBV1w8d7oLpy4\nP2DFatihkcztyVLwh5pGYNJQLQOfFOukuXvkzcRbNgp7jOLMDDoTT5iqPY4sWVqP\nuMmPsB/sgqgB3QulejNJfRrmgoEGdKQ6iR2xyoy/1bMkkIF3bSkC+nnJ1DbtWO5x\n0KdgNdxBXZ+Y1wIDAQABoyAwHjAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIH\ngDANBgkqhkiG9w0BAQsFAAOCAgEAphcBKMaQ4c0nAjhPDJ+OSdv/FE18Qa9xI/Ak\nA7gpW6UwG0iL/Rz2PIFPAnJIf3tu/WO71MFY5A924prWZsn7U4iTFhttWzLobHB9\nolPTzMK9Q87XuCREs6+IoYlVcdgmH5sBhfyWpCG8pwVmplbkLWc6QeE2qGjxtR31\nUBeXqPIEFYPG6ZaO7PYp4Qv9DmtPJq8KMzk8TbaMiH4psH00xEoccmNWVmmEUqov\nwjEJStlGNQKxJJ6zrFTD2eBJOYvJs4sF3eoOqDinJc4BxKuJhWUFgtE4w7vc+4Sj\nt2gjl01aKXWZnwq0YisboasGKWwMexgYcjXJXBFG9/BzuFUdTCoEvcY6XXlQCHkG\nFTR2fLRc8IAmhRzY6JuSOmsfuWnpxefZ8AEFngAkUxzTj+s6PeTNTcfd//2CY/wl\nP96+HRSWjcKOeQKJ3kKHhza+LItPy3p0eCBYGnoXYx2XyEVYU5VpBvNEYxRRJYmI\ncVL/uFqtW0QoNJxnfs0QDBTXN9A5L8F7NF1/GKSL7bZnVkperYr38lm5nfzi4TKv\nXKna6fyql8t6Vj9jXNUK9BRcMpQ/KYlYFP3xCbxDMjMcMvL9PXO6yOOHJ0ygojHJ\nmyV5lJoMZYr5ip3CqS5RNtMLVkoPYDDqM1pdrAlmEw8AV8KZqEJUcOP+I/DdNc0X\n80wByLY=\n-----END CERTIFICATE-----\n",
"kms_username": null,
"ignore_kms_certificate": false
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Set Kms Configuration
| Description |
Update KMS configuration
|
| Approval required |
This is a dangerous operation
The given address address does not look valid
|
| API Endpoint |
PUT api/rest/system/kms/set_configuration |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
{
"kms_ca_certificate": "abcd"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"kms_ca_certificate": "123456",
"kms_servers": [
{
"port": 8080,
"address": "a.infinidat.com"
}
],
"infinibox_kmip_certificate": "123456",
"kms_username": null,
"ignore_kms_certificate": false
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('kms_ca_certificate') |
| APPROVAL_REQUIRED |
HTTP 403 |
The given address abcd.12 does not look valid |
| KMS_EMPTY_CREDENTIALS |
HTTP 409 |
The username or password provided cannot be an empty string |
| KMS_ILLEGAL_EMPTY_CREDENTIALS |
HTTP 409 |
Both credentials should be null or hold a value |
| KMS_INCONSISTENT_PORT |
HTTP 409 |
The given KMS servers must have the same port |
| KMS_INVALID_PORT |
HTTP 409 |
The given KMS port -1 is not valid |
| KMS_MAX_KMS_SERVER_NODES_REACHED |
HTTP 409 |
Cannot configure more than 1 KMS server nodes |
| KMS_INCOMPLETE_CREDENTIALS |
HTTP 409 |
The given credentials are incomplete. Either the user name or password is missing |
|
Upload Ca Certificate
| Description |
Upload CA certificate
|
| API Endpoint |
POST api/rest/system/kms/upload_kms_ca_certificate |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
"--Boundary_2_1608794709_1774519799574\r\nContent-Type: application/octet-stream\r\nContent-Disposition: form-data; filename=\"ca_certificate.pem\"; modification-date=\"Thu, 26 Mar 2026 09:48:07 GMT\"; size=2529; name=\"file\"\r\n\r\n-----BEGIN CERTIFICATE-----\nMIIHHTCCBQWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBvzELMAkGA1UEBhMCVVMx\nGjAYBgNVBAgWEUlORklOSURBVF9URVNUX0NBMRowGAYDVQQHFhFJTkZJTklEQVRf\nVEVTVF9DQTEaMBgGA1UEChYRSU5GSU5JREFUX1RFU1RfQ0ExGjAYBgNVBAsWEUlO\nRklOSURBVF9URVNUX0NBMRowGAYDVQQDFBFJTkZJTklEQVRfVEVTVF9DQTEkMCIG\nCSqGSIb3DQEJARYVZXhhbXBsZUBpbmZpbmlkYXQuY29tMB4XDTE5MDkxMDA4MDcw\nOFoXDTM5MDkwNjA4MDcwOFowgb8xCzAJBgNVBAYTAlVTMRowGAYDVQQIFhFJTkZJ\nTklEQVRfVEVTVF9DQTEaMBgGA1UEBxYRSU5GSU5JREFUX1RFU1RfQ0ExGjAYBgNV\nBAoWEUlORklOSURBVF9URVNUX0NBMRowGAYDVQQLFhFJTkZJTklEQVRfVEVTVF9D\nQTEaMBgGA1UEAxQRSU5GSU5JREFUX1RFU1RfQ0ExJDAiBgkqhkiG9w0BCQEWFWV4\nYW1wbGVAaW5maW5pZGF0LmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBALA+/PIWhWgpcGb7ldWuc7cCIE02DfqMfGcIHN5pL2a0D+fkgfvEwI5i8KJT\n0iiXj0CUM0kztRppARkhY2ZFUCYymZgPPc5aPuR6xa+COMHJlvLXvm9D+ZqEv96k\nAXu9pV/+4zCqQKcCrqQgun8xXaVtlmUGYmWVepHq+KW4//uxhJqcFPMdLxabiGMT\nfbEcVm8UqBIXen7+ifXoMu3Dk2ILpv0jqMu9qvk0zdn4kexhE2jbwHos2AIx4qEt\nnJ3MN+nKo93oa/2HBHN8k2KIHtJFpZEqiaq9JV5Nsxmkq8jQ2k6APMj9TcGOuh/i\nG/XwnfDW4o+eyqbFbjan1UFpbsBqy0RkX1ZDHL/Amk8/MwcpY+gFs35inJ5pOYjn\nXSOm3TcwLytF5F4TioCYWKCsp4KXrYf/DTrtPtVYrPgfwMT2bYbfw/UFoz22v43A\ng7IpeJAB6JO8IXrbd07C023rkqNpyWg3PV17K4BWmIbxyGD/Nkp27doCEPB4kY89\nUOCMkKug1RtWrnUsk6SoHzrYcoyWoy88jALDm4rc6IodkKSYceUr6Fy8v128OQF+\nfYYV8zHzkB+dw8N3md2cXM9eIYGLI9VujLzCz+E/MikAWkgqG2VLZrRgnBAplaxj\nU80bQFjs3HYIsh4n/4wPBT7weL9yhnMQ+5dzKw3hyWFJ5m37AgMBAAGjggEgMIIB\nHDAdBgNVHQ4EFgQUab+CGJg/37SDQS393GQ7bI70ZDowgewGA1UdIwSB5DCB4YAU\nab+CGJg/37SDQS393GQ7bI70ZDqhgcWkgcIwgb8xCzAJBgNVBAYTAlVTMRowGAYD\nVQQIFhFJTkZJTklEQVRfVEVTVF9DQTEaMBgGA1UEBxYRSU5GSU5JREFUX1RFU1Rf\nQ0ExGjAYBgNVBAoWEUlORklOSURBVF9URVNUX0NBMRowGAYDVQQLFhFJTkZJTklE\nQVRfVEVTVF9DQTEaMBgGA1UEAxQRSU5GSU5JREFUX1RFU1RfQ0ExJDAiBgkqhkiG\n9w0BCQEWFWV4YW1wbGVAaW5maW5pZGF0LmNvbYIBADAMBgNVHRMEBTADAQH/MA0G\nCSqGSIb3DQEBCwUAA4ICAQB6D3mLHsWXmsj5hA4TbHuL5SZY77JXlD6iT1QKHduJ\nxVJJLFUaIUvtcZnljOXqGiu8Q6jrv0BGvBHvZGoflanYvQJ340iY6KQUl+LKPhBv\nrv1BMBD4vgEi6t4NhybXrSDq44wUy/hHjFmz39KwkthBYdmu780Ux3aiq3r9sC27\nxbY08dIFb3Ntm0kuSEuv9fMQ/uAEb/tPU+svtWKyZ7awQHxNnlj57jdTtSAmUQxX\ng31UQ+gvlgA1Eu8PzSQ7Y6Mql8IGIaQtFvmNa09dDl2ocjcuRcDi4t+Isg5YdMVL\nsMdzFOzjc7hhIWQMUDXqJjpUdY5R3szrK85Bs2RaRfwANX45+GfP5sjyU8qclyda\nRY4Gs/3u8hYVJoTfTWzeR0ljcpc4wKFymVVT+Lb3y2+nQVepn8+8Yus86UvW8YgR\n5TQRd9noIpbaGPyqucmUWhNSGW2eA0zakdXAoxKCsIphcTzpyUC9FIbe1TfA30q7\nQbHMcKDNPhAJJ3+XnqYW9V/fa4gH1SBe81bovPfPciG7ioxaTXm9JErNztb3kwhX\nWq6zM1h/8Kqw1fk2QiblGt9DG9mWqDYOKtY7O0g6UouhkerUljj+LBPnrXNbkrW5\naDH25OHmKHNwbpKYGEeWdfDtEgYHHUIlIKX8mvu13Fz9JZfeTR6i2vSvOW7h1Phz\n/w==\n-----END CERTIFICATE-----\n\r\n--Boundary_2_1608794709_1774519799574--\r\n"
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"public_key": {
"raw": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsD788haFaClwZvuV1a5z\ntwIgTTYN+ox8Zwgc3mkvZrQP5+SB+8TAjmLwolPSKJePQJQzSTO1GmkBGSFjZkVQ\nJjKZmA89zlo+5HrFr4I4wcmW8te+b0P5moS/3qQBe72lX/7jMKpApwKupCC6fzFd\npW2WZQZiZZV6ker4pbj/+7GEmpwU8x0vFpuIYxN9sRxWbxSoEhd6fv6J9egy7cOT\nYgum/SOoy72q+TTN2fiR7GETaNvAeizYAjHioS2cncw36cqj3ehr/YcEc3yTYoge\n0kWlkSqJqr0lXk2zGaSryNDaToA8yP1NwY66H+Ib9fCd8Nbij57KpsVuNqfVQWlu\nwGrLRGRfVkMcv8CaTz8zBylj6AWzfmKcnmk5iOddI6bdNzAvK0XkXhOKgJhYoKyn\ngpeth/8NOu0+1Vis+B/AxPZtht/D9QWjPba/jcCDsil4kAHok7whett3TsLTbeuS\no2nJaDc9XXsrgFaYhvHIYP82Snbt2gIQ8HiRjz1Q4IyQq6DVG1audSyTpKgfOthy\njJajLzyMAsObitzoih2QpJhx5SvoXLy/Xbw5AX59hhXzMfOQH53Dw3eZ3Zxcz14h\ngYsj1W6MvMLP4T8yKQBaSCobZUtmtGCcECmVrGNTzRtAWOzcdgiyHif/jA8FPvB4\nv3KGcxD7l3MrDeHJYUnmbfsCAwEAAQ==\n-----END PUBLIC KEY-----\n",
"modulus": "B03EFCF2168568297066FB95D5AE73B702204D360DFA8C7C67081CDE692F66B40FE7E481FBC4C08E62F0A253D228978F4094334933B51A6901192163664550263299980F3DCE5A3EE47AC5AF8238C1C996F2D7BE6F43F99A84BFDEA4017BBDA55FFEE330AA40A702AEA420BA7F315DA56D9665066265957A91EAF8A5B8FFFBB1849A9C14F31D2F169B8863137DB11C566F14A812177A7EFE89F5E832EDC393620BA6FD23A8CBBDAAF934CDD9F891EC611368DBC07A2CD80231E2A12D9C9DCC37E9CAA3DDE86BFD8704737C9362881ED245A5912A89AABD255E4DB319A4ABC8D0DA4E803CC8FD4DC18EBA1FE21BF5F09DF0D6E28F9ECAA6C56E36A7D541696EC06ACB44645F56431CBFC09A4F3F33072963E805B37E629C9E693988E75D23A6DD37302F2B45E45E138A809858A0ACA78297AD87FF0D3AED3ED558ACF81FC0C4F66D86DFC3F505A33DB6BF8DC083B229789001E893BC217ADB774EC2D36DEB92A369C968373D5D7B2B80569886F1C860FF364A76EDDA0210F078918F3D50E08C90ABA0D51B56AE752C93A4A81F3AD8728C96A32F3C8C02C39B8ADCE88A1D90A49871E52BE85CBCBF5DBC39017E7D8615F331F3901F9DC3C37799DD9C5CCF5E21818B23D56E8CBCC2CFE13F3229005A482A1B654B66B4609C102995AC6353CD1B4058ECDC7608B21E27FF8C0F053EF078BF72867310FB97732B0DE1C96149E66DFB",
... TRUNCATED ...
|
| Errors |
See general list of error codes.
|
Upload InfiniBox Certificate and Key
| Description |
Upload Infinibox certificate + key
|
| API Endpoint |
POST api/rest/system/kms/upload_infinibox_certificate_and_key |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
"--Boundary_1_872358421_1774519781542\r\nContent-Type: application/octet-stream\r\nContent-Disposition: form-data; filename=\"infinibox_certificate.pem\"; modification-date=\"Thu, 26 Mar 2026 09:48:07 GMT\"; size=5220; name=\"file\"\r\n\r\n-----BEGIN CERTIFICATE-----\nMIIFcTCCA1mgAwIBAgIDATZcMA0GCSqGSIb3DQEBCwUAMIG/MQswCQYDVQQGEwJV\nUzEaMBgGA1UECBYRSU5GSU5JREFUX1RFU1RfQ0ExGjAYBgNVBAcWEUlORklOSURB\nVF9URVNUX0NBMRowGAYDVQQKFhFJTkZJTklEQVRfVEVTVF9DQTEaMBgGA1UECxYR\nSU5GSU5JREFUX1RFU1RfQ0ExGjAYBgNVBAMUEUlORklOSURBVF9URVNUX0NBMSQw\nIgYJKoZIhvcNAQkBFhVleGFtcGxlQGluZmluaWRhdC5jb20wHhcNMTkwOTEwMDgy\nMDAwWhcNMzkwOTA1MDgyMDAwWjAUMRIwEAYDVQQDDAl0ZXN0X3VzZXIwggIiMA0G\nCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDVXRWuGQk1T8I28+EMlEotMFVwb8J7\noEPBSm10Osu33bPHmKlw87SCAKYPCeAXEXnSOOZgNdzsxIQmYE9MaoK43PrHaHG5\nNmJ7HfiAVoVp1hRJkiz0qfv7rSx1Airl3pj14mg8R5pnSZToexw9fH1bc35VnRwn\nxbyGpbXMdS/e69EiMjM68t10KVNI5jxfwcnXhbqdth+4mteKHP/Vqzs7Qv/JAG5e\nmaiNIyC0XdII9cFbcvMXXdtXDisV7ze8xkMM6Tq/s6m5hsl615gFFcoWq3Be/UZB\nv4ax2aFK0Xe6dDrzVlRQXs+ogFzpCdUC/c5hLXQhlcMRB9o/rZNj1KkDseKCUs6c\nSPpJrYON7PNaOGn69NceYK4C67l/nequN9GZH5gXKoKH75s9rXbMNWx82ZMZ8aIo\nrOczJiVqTbLLXfSaa09WX2NDga30lvRV5mApqYadweHIa3e3cV8J8TZ1Z3pSaoZN\noTnS1ul5Q9TbAKKYmVplExd7BDCeaR0hejdwDit0L9FdhjVf0CrtBV1w8d7oLpy4\nP2DFatihkcztyVLwh5pGYNJQLQOfFOukuXvkzcRbNgp7jOLMDDoTT5iqPY4sWVqP\nuMmPsB/sgqgB3QulejNJfRrmgoEGdKQ6iR2xyoy/1bMkkIF3bSkC+nnJ1DbtWO5x\n0KdgNdxBXZ+Y1wIDAQABoyAwHjAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIH\ngDANBgkqhkiG9w0BAQsFAAOCAgEAphcBKMaQ4c0nAjhPDJ+OSdv/FE18Qa9xI/Ak\nA7gpW6UwG0iL/Rz2PIFPAnJIf3tu/WO71MFY5A924prWZsn7U4iTFhttWzLobHB9\nolPTzMK9Q87XuCREs6+IoYlVcdgmH5sBhfyWpCG8pwVmplbkLWc6QeE2qGjxtR31\nUBeXqPIEFYPG6ZaO7PYp4Qv9DmtPJq8KMzk8TbaMiH4psH00xEoccmNWVmmEUqov\nwjEJStlGNQKxJJ6zrFTD2eBJOYvJs4sF3eoOqDinJc4BxKuJhWUFgtE4w7vc+4Sj\nt2gjl01aKXWZnwq0YisboasGKWwMexgYcjXJXBFG9/BzuFUdTCoEvcY6XXlQCHkG\nFTR2fLRc8IAmhRzY6JuSOmsfuWnpxefZ8AEFngAkUxzTj+s6PeTNTcfd//2CY/wl\nP96+HRSWjcKOeQKJ3kKHhza+LItPy3p0eCBYGnoXYx2XyEVYU5VpBvNEYxRRJYmI\ncVL/uFqtW0QoNJxnfs0QDBTXN9A5L8F7NF1/GKSL7bZnVkperYr38lm5nfzi4TKv\nXKna6fyql8t6Vj9jXNUK9BRcMpQ/KYlYFP3xCbxDMjMcMvL9PXO6yOOHJ0ygojHJ\nmyV5lJoMZYr5ip3CqS5RNtMLVkoPYDDqM1pdrAlmEw8AV8KZqEJUcOP+I/DdNc0X\n80wByLY=\n-----END CERTIFICATE-----\n-----BEGIN PRIVATE KEY-----\nMIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS4wggkqAgEAAoICAQDVXRWuGQk1T8I2\n8+EMlEotMFVwb8J7oEPBSm10Osu33bPHmKlw87SCAKYPCeAXEXnSOOZgNdzsxIQm\nYE9MaoK43PrHaHG5NmJ7HfiAVoVp1hRJkiz0qfv7rSx1Airl3pj14mg8R5pnSZTo\nexw9fH1bc35VnRwnxbyGpbXMdS/e69EiMjM68t10KVNI5jxfwcnXhbqdth+4mteK\nHP/Vqzs7Qv/JAG5emaiNIyC0XdII9cFbcvMXXdtXDisV7ze8xkMM6Tq/s6m5hsl6\n15gFFcoWq3Be/UZBv4ax2aFK0Xe6dDrzVlRQXs+ogFzpCdUC/c5hLXQhlcMRB9o/\nrZNj1KkDseKCUs6cSPpJrYON7PNaOGn69NceYK4C67l/nequN9GZH5gXKoKH75s9\nrXbMNWx82ZMZ8aIorOczJiVqTbLLXfSaa09WX2NDga30lvRV5mApqYadweHIa3e3\ncV8J8TZ1Z3pSaoZNoTnS1ul5Q9TbAKKYmVplExd7BDCeaR0hejdwDit0L9FdhjVf\n0CrtBV1w8d7oLpy4P2DFatihkcztyVLwh5pGYNJQLQOfFOukuXvkzcRbNgp7jOLM\nDDoTT5iqPY4sWVqPuMmPsB/sgqgB3QulejNJfRrmgoEGdKQ6iR2xyoy/1bMkkIF3\nbSkC+nnJ1DbtWO5x0KdgNdxBXZ+Y1wIDAQABAoICAQCd+PSTWXAK68nFPB5VXPnq\nqU2pGOYq+EcSNtQBaYLp2JlCX9KckaQFWQuaONqU2diTgJN5iofPOdUKQOaVkorE\n6sA2oisJUa3qsA8MnoLbEKkmq7bjU3QBLH+tBnTSi1Q/QWmhr/YvITjCRFxtXd3G\ntyVDqDZvcCUcoFaRUfamm3zVT8vEiorSdcJ3SBhNYcLa8uVv3adw3BxX4w68mbIa\nN4oAvXP6UNSN4wNU594ZyjNmTR6VH2XF9/SIofxnpXeBeLGJvDEe7x//9t5UbYSZ\n8kcZ3XaGOZM13QdhyONXxrTa9AErHHetr5Sa6i+vrlF+e9PvBd5OnrzFxvNIx+x2\nOLoUsPyflKny1ESvCVhDTozOi+SL8l8aPaxc2/nzX3QwUnhTmdElaPZKv5DGm9/I\niy3hZC7q6sjsKZm10d2kgB2cXjAkvYSqTDpx8AO362ZAHoG/Vg3YdJ43oHzK3jaS\njsw+/GI137DQgcekxc7zUfR0aN07TlNIsAHCxREFGmo395B3dMryjaQ8+tMW8ClS\nby9HvuFRxJpCaZJPcQSwijwa4pG8RmJ4dzeVYOIbpwgN376MULJzaPIq5ztDrIC6\n3DPX6OG3wVP56DpoqcauWm3TyAfnLUnSaVKrfbpnPtAm9JGtq07YSz7NlQPtUolr\nEejvGklpEZgQRRtFdO3m4QKCAQEA7k0BMIA4PntyMvOXG37H4XuFXbufOrTcRjDh\nxv+ZCAHDLhuOybfNK5UTBRcyAFo4CXZlAKmQxn8CNMfKaWq1YdQ7F28LVEpVM08a\n50+ddZvNr1DK6xYGYxTqDLsCUHLRKIKC5csauN10KVC4zdz2uyUDOXlr1XVCBPMm\nEt+3f4DSwzZC6CmS29scB0sRX09RuRKKLD3mOov4sYzEBkxV9tt524r2wdHRn5yV\nc2WVoggTc6lJYIP4zR8SbCvKrbTihWisf8IpSN4fmuVDofQroC4Rytu2tu9LCZtn\nyASl0ggXxcpbzARaLxpORb88nTw6IL8SWhMZ2N9sfTSDL/foxwKCAQEA5TXuI1FI\nw2qci9//RRsML7BqM4fSPPRfgsn8nkyD6gUcx1WTUyD4/8JB52KqrivOli5bVgB+\n/TG5PdsLjDLoHNYMh4+ZcxOyvgu2b4yJTNfG5iWbQPX7r04SfLkH9H6xVrMm4MBm\nRMDMwsXtDMZO/0EezwbpTKqvXqVtM1H2Z4FB/B5VXYbnzQQaA/P532b63QK2z741\np1fTSFeGZDZelbjvq44qEn8zLY5O0j0AXwq9PHlu5LtOOy9I3MZPo9LpTkRczyq7\npa09Vrdx0sMKirxxhkl/C/Q5GRem1CPYuZlPI9NR2MXf3lhY2pa/64Kn6lur+zVf\nxVaFonJDj7BfcQKCAQEAgSxiuay3UD9QTwg13+SgaryvNXkPvh3tzWqP6HQCuxFh\ngKvVgcjNQZOkZL0HEKPW/mIcK/i+jqqoQn4OXYhHXAlUIsbByGYmuxJlTf+dJfRX\n0XGlHTuqKKlcmZwBjCRA9omQdQncqVr5ra+hDY56fEV68vu7lVDjgZVgDRkR+d6V\n4NWX/QsUHXMvRVDO0PBJJ15CYesH0rKvE2dvls5oRtD/xB8W1UdsLu4NISlurA9e\no/Ke4N+IzX/LV7GBQxnrNE/iObrA8Evfq/Ic8DxQLZrrcCAbchxSe5mu7wB99lUG\nteOUUQoG7MOArFQWglD0XW3Vf9gcya+Kum/tsOHcXwKCAQEAy770wFAw7gSGw4+J\nylQQsROQU94X9DcF76y88bnySMPioQ5gtzRIIpD7JEOAlPI74SOz7O7j8w2QLHvZ\n9/YIfhmHabksHi8UY/rlYKL8KWJlW49yQnxmDZ7IsDWJ7Lvxx6/Yj1B3mAYJ/dkS\nrphZAG1ShZUPLSdMXEWQnF3vOnKbxRDxsQGKa6OJvJnTM9LGjE8tUd0ytF5NYbDr\ntYje6xhJc6Ybn/WR+JzXU+sFuXZCYM9Q0+Hr2JBfpGBjyqxg10HNfhnuU4d7Tuoi\nM8dMR6bbAxOx615cowFzOn/i1piA0Me3qYm7RloiIax/TUoHGTwD1HnNeA1BHPWV\nONT/AQKCAQBzezs4gBn6EQIfq9dBlSgOUtSdGieYxIaFqBZg9PJ1esJjOIsj7bKo\nwkvszRvTfwS5uQTcGbxm4UtIz2EwPxfMoRSeYEAIJb47dId81joFyOafwC4kJubP\nskbDMf96YdpHkLeDqw+5qsRgn4GsprmGIiEvNa7DhNxMII6PjuqHqERJbBwsjDrH\nls7RSRQ08IBzEwX1GpSC+EOPjTVAiRFSdm+nDuas1raCLM1ScByBPc9H1yPurxxb\nTnzLiOyywwW/UmuWIFOachAlWDPf+S7M9fttfGqsPVydtJjKZqVnt80cjtXSf7Ql\n4MZ6e7cjtdlTfW7kZPg4CKRfF82t7bT/\n-----END PRIVATE KEY-----\n\r\n--Boundary_1_872358421_1774519781542--\r\n"
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"public_key": {
"raw": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1V0VrhkJNU/CNvPhDJRK\nLTBVcG/Ce6BDwUptdDrLt92zx5ipcPO0ggCmDwngFxF50jjmYDXc7MSEJmBPTGqC\nuNz6x2hxuTZiex34gFaFadYUSZIs9Kn7+60sdQIq5d6Y9eJoPEeaZ0mU6HscPXx9\nW3N+VZ0cJ8W8hqW1zHUv3uvRIjIzOvLddClTSOY8X8HJ14W6nbYfuJrXihz/1as7\nO0L/yQBuXpmojSMgtF3SCPXBW3LzF13bVw4rFe83vMZDDOk6v7OpuYbJeteYBRXK\nFqtwXv1GQb+GsdmhStF3unQ681ZUUF7PqIBc6QnVAv3OYS10IZXDEQfaP62TY9Sp\nA7HiglLOnEj6Sa2DjezzWjhp+vTXHmCuAuu5f53qrjfRmR+YFyqCh++bPa12zDVs\nfNmTGfGiKKznMyYlak2yy130mmtPVl9jQ4Gt9Jb0VeZgKamGncHhyGt3t3FfCfE2\ndWd6UmqGTaE50tbpeUPU2wCimJlaZRMXewQwnmkdIXo3cA4rdC/RXYY1X9Aq7QVd\ncPHe6C6cuD9gxWrYoZHM7clS8IeaRmDSUC0DnxTrpLl75M3EWzYKe4zizAw6E0+Y\nqj2OLFlaj7jJj7Af7IKoAd0LpXozSX0a5oKBBnSkOokdscqMv9WzJJCBd20pAvp5\nydQ27VjucdCnYDXcQV2fmNcCAwEAAQ==\n-----END PUBLIC KEY-----\n",
"modulus": "D55D15AE1909354FC236F3E10C944A2D3055706FC27BA043C14A6D743ACBB7DDB3C798A970F3B48200A60F09E0171179D238E66035DCECC48426604F4C6A82B8DCFAC76871B936627B1DF880568569D61449922CF4A9FBFBAD2C75022AE5DE98F5E2683C479A674994E87B1C3D7C7D5B737E559D1C27C5BC86A5B5CC752FDEEBD12232333AF2DD74295348E63C5FC1C9D785BA9DB61FB89AD78A1CFFD5AB3B3B42FFC9006E5E99A88D2320B45DD208F5C15B72F3175DDB570E2B15EF37BCC6430CE93ABFB3A9B986C97AD7980515CA16AB705EFD4641BF86B1D9A14AD177BA743AF35654505ECFA8805CE909D502FDCE612D742195C31107DA3FAD9363D4A903B1E28252CE9C48FA49AD838DECF35A3869FAF4D71E60AE02EBB97F9DEAAE37D1991F98172A8287EF9B3DAD76CC356C7CD99319F1A228ACE73326256A4DB2CB5DF49A6B4F565F634381ADF496F455E66029A9869DC1E1C86B77B7715F09F13675677A526A864DA139D2D6E97943D4DB00A298995A6513177B04309E691D217A37700E2B742FD15D86355FD02AED055D70F1DEE82E9CB83F60C56AD8A191CCEDC952F0879A4660D2502D039F14EBA4B97BE4CDC45B360A7B8CE2CC0C3A134F98AA3D8E2C595A8FB8C98FB01FEC82A801DD0BA57A33497D1AE682810674A43A891DB1CA8CBFD5B3249081776D2902FA79C9D436ED58EE71D0A76035DC415D9F98D7",
"algorithm": "RSA"
},
"id": "httpd",
"certificate": {
"issued_to": {
"CN": "test_user"
},
"issued_on": 1568103600000,
"issued_by": {
"C": "US",
"1.2.840.113549.1.9.1": "FhVleGFtcGxlQGluZmluaWRhdC5jb20=",
"CN": "INFINIDAT_TEST_CA",
"L": "INFINIDAT_TEST_CA",
"O": "INFINIDAT_TEST_CA",
"ST": "INFINIDAT_TEST_CA",
"OU": "INFINIDAT_TEST_CA"
},
"raw": "-----BEGIN CERTIFICATE-----\nMIIFcTCCA1mgAwIBAgIDATZcMA0GCSqGSIb3DQEBCwUAMIG/MQswCQYDVQQGEwJV\nUzEaMBgGA1UECBYRSU5GSU5JREFUX1RFU1RfQ0ExGjAYBgNVBAcWEUlORklOSURB\nVF9URVNUX0NBMRowGAYDVQQKFhFJTkZJTklEQVRfVEVTVF9DQTEaMBgGA1UECxYR\nSU5GSU5JREFUX1RFU1RfQ0ExGjAYBgNVBAMUEUlORklOSURBVF9URVNUX0NBMSQw\nIgYJKoZIhvcNAQkBFhVleGFtcGxlQGluZmluaWRhdC5jb20wHhcNMTkwOTEwMDgy\nMDAwWhcNMzkwOTA1MDgyMDAwWjAUMRIwEAYDVQQDDAl0ZXN0X3VzZXIwggIiMA0G\nCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDVXRWuGQk1T8I28+EMlEotMFVwb8J7\noEPBSm10Osu33bPHmKlw87SCAKYPCeAXEXnSOOZgNdzsxIQmYE9MaoK43PrHaHG5\nNmJ7HfiAVoVp1hRJkiz0qfv7rSx1Airl3pj14mg8R5pnSZToexw9fH1bc35VnRwn\nxbyGpbXMdS/e69EiMjM68t10KVNI5jxfwcnXhbqdth+4mteKHP/Vqzs7Qv/JAG5e\nmaiNIyC0XdII9cFbcvMXXdtXDisV7ze8xkMM6Tq/s6m5hsl615gFFcoWq3Be/UZB\nv4ax2aFK0Xe6dDrzVlRQXs+ogFzpCdUC/c5hLXQhlcMRB9o/rZNj1KkDseKCUs6c\nSPpJrYON7PNaOGn69NceYK4C67l/nequN9GZH5gXKoKH75s9rXbMNWx82ZMZ8aIo\nrOczJiVqTbLLXfSaa09WX2NDga30lvRV5mApqYadweHIa3e3cV8J8TZ1Z3pSaoZN\noTnS1ul5Q9TbAKKYmVplExd7BDCeaR0hejdwDit0L9FdhjVf0CrtBV1w8d7oLpy4\nP2DFatihkcztyVLwh5pGYNJQLQOfFOukuXvkzcRbNgp7jOLMDDoTT5iqPY4sWVqP\nuMmPsB/sgqgB3QulejNJfRrmgoEGdKQ6iR2xyoy/1bMkkIF3bSkC+nnJ1DbtWO5x\n0KdgNdxBXZ+Y1wIDAQABoyAwHjAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIH\ngDANBgkqhkiG9w0BAQsFAAOCAgEAphcBKMaQ4c0nAjhPDJ+OSdv/FE18Qa9xI/Ak\nA7gpW6UwG0iL/Rz2PIFPAnJIf3tu/WO71MFY5A924prWZsn7U4iTFhttWzLobHB9\nolPTzMK9Q87XuCREs6+IoYlVcdgmH5sBhfyWpCG8pwVmplbkLWc6QeE2qGjxtR31\nUBeXqPIEFYPG6ZaO7PYp4Qv9DmtPJq8KMzk8TbaMiH4psH00xEoccmNWVmmEUqov\nwjEJStlGNQKxJJ6zrFTD2eBJOYvJs4sF3eoOqDinJc4BxKuJhWUFgtE4w7vc+4Sj\nt2gjl01aKXWZnwq0YisboasGKWwMexgYcjXJXBFG9/BzuFUdTCoEvcY6XXlQCHkG\nFTR2fLRc8IAmhRzY6JuSOmsfuWnpxefZ8AEFngAkUxzTj+s6PeTNTcfd//2CY/wl\nP96+HRSWjcKOeQKJ3kKHhza+LItPy3p0eCBYGnoXYx2XyEVYU5VpBvNEYxRRJYmI\ncVL/uFqtW0QoNJxnfs0QDBTXN9A5L8F7NF1/GKSL7bZnVkperYr38lm5nfzi4TKv\nXKna6fyql8t6Vj9jXNUK9BRcMpQ/KYlYFP3xCbxDMjMcMvL9PXO6yOOHJ0ygojHJ\nmyV5lJoMZYr5ip3CqS5RNtMLVkoPYDDqM1pdrAlmEw8AV8KZqEJUcOP+I/DdNc0X\n80wByLY=\n-----END CERTIFICATE-----\n",
"version": 3,
"signature_algorithm": "SHA256WITHRSA",
"serial_number": "1365C",
"expired": false,
"expires_on": 2198823600000
}
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Link
Create a Link
| Description |
Creates a new link to a remote machine.
|
| API Endpoint |
POST api/rest/links |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"local_replication_network_space_id": 1000,
"remote_host": "1.1.1.1",
"name": "auto-link--8e7b91f3-35f0-4"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"remote_replication_network_space_id": 34,
"remote_link_id": 44,
"state_description": null,
"local_replication_network_space_id": 1000,
"last_connection_timestamp": null,
"link_state": "UP",
"local_witness_state": null,
"_local_host": null,
"id": 642,
"remote_system_serial_number": 5889,
"async_only": false,
"link_mode": "ACTIVE",
"local_link_replication_type": [
"SYNC",
"ASYNC"
],
"_link_configuration_guid": "42bbcac4-a9bc-4324-b374-b90a7d60941e",
"connect_timeout": 10000,
"is_local_link_ready_for_sync": true,
"keep_alive_time": 10000,
"local_witness_state_description": null,
"remote_witness_state": null,
"resiliency_mode": null,
"witness_address": null,
"remote_system_name": "fred",
"retry_wait": 500,
"name": "auto-link--8e7b91f3-35f0-4",
"_version": 1,
"retry_count": 4,
"_remote_management_ip": null,
"remote_version": "8.4.6.20-dev",
"link_replication_type": [
"SYNC",
"ASYNC"
],
"remote_host": "1.1.1.1",
"remote_replication_ip_addresses": [
{
"management": true,
"ip_address": "1.1.1.1",
"link_id": 642,
"type": "MANAGEMENT",
"local": false,
"id": 643
},
{
"management": false,
"ip_address": "2.2.2.2",
"link_id": 642,
"type": "ASYNC",
"local": false,
"id": 644
},
{
"management": false,
"ip_address": "2.2.2.3",
"link_id": 642,
"type": "ASYNC",
"local": false,
"id": 645
},
{
"management": false,
"ip_address": "2.2.2.4",
"link_id": 642,
"type": "ASYNC",
"local": false,
"id": 646
},
{
"management": false,
"ip_address": "2.2.2.5",
"link_id": 642,
"type": "SYNC",
"local": false,
"id": 647
},
{
"management": false,
"ip_address": "2.2.2.6",
"link_id": 642,
"type": "SYNC",
"local": false,
"id": 648
},
{
"management": false,
"ip_address": "2.2.2.7",
"link_id": 642,
"type": "SYNC",
"local": false,
"id": 649
}
]
},
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('remote_host') could not be translated to an expected type |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('async_only') |
| VERSION_MISMATCH |
HTTP 403 |
The remote system has an older InfiniBox software version |
| LINK_INVALID_NET_SPACE |
HTTP 409 |
The network space specified was invalid |
| LINK_TOO_MANY_NET_SPACES |
HTTP 409 |
No network space was specified for the link, and there are more than one defined. Please choose one |
| LINK_NO_NET_SPACES |
HTTP 409 |
No network spaces were found for the link |
| LINK_NAME_CONFLICT |
HTTP 409 |
An entity with this name already exists |
| LINK_TO_HOST_ALREADY_EXISTS |
HTTP 409 |
A link to a remote system '1.1.1.1' already exists |
| LINK_TYPE_NOT_SUPPORTED |
HTTP 409 |
Cannot define a witness on a local 'async only' link type |
| CANNOT_LINK_SYSTEM_TO_ITSELF |
HTTP 409 |
Cannot create a loop-back link to the same system. '192.168.2.3' is actually the local system |
| LINK_NET_SPACE_INSUFFICIENT_IPS |
HTTP 409 |
Invalid IP assignments are defined for local network space 'auto-ipd--62fec523-75dc-44'. At least seven enabled IPs are needed for sync replication. One reserved for management interface, at least three ASYNC IPs and three SYNC IPs. |
| REMOTE_API_FAILURE |
HTTP 409 |
Error on '1.1.1.1': null |
|
Delete a Link
| Description |
Delete a link.
|
| Approval required |
This is a dangerous operation
Deleting the link will prevent the system from replicating data to or from the remote system
|
| API Endpoint |
DELETE api/rest/links/{id} |
| URL Parameters |
| id |
long |
The ID of the link to delete |
| force_if_no_remote_credentials |
Boolean |
Allow this operation even if a login error is returned by the remote system |
| force_if_remote_error |
Boolean |
Allow this operation even if an error is returned by the remote system |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"remote_replication_network_space_id": 34,
"remote_link_id": 44,
"state_description": null,
"local_replication_network_space_id": 1001,
"last_connection_timestamp": null,
"link_state": null,
"local_witness_state": null,
"_local_host": null,
"id": 9467,
"remote_system_serial_number": 5522,
"async_only": false,
"link_mode": "ACTIVE",
"local_link_replication_type": [
"ACTIVE_ACTIVE",
"SYNC",
"ASYNC"
],
"_link_configuration_guid": "a0f1d6b5-dcfc-4ed8-8598-50d88e732759",
"connect_timeout": 10000,
"is_local_link_ready_for_sync": true,
"keep_alive_time": 10000,
"local_witness_state_description": null,
"remote_witness_state": null,
"resiliency_mode": null,
"witness_address": "172.168.10.10",
"remote_system_name": "fred",
"retry_wait": 500,
"name": "auto-link--a2cd3842-ffc0-4",
"_version": 1,
"retry_count": 4,
"_remote_management_ip": null,
"remote_version": "8.4.6.20-dev",
"link_replication_type": [
"ACTIVE_ACTIVE",
"SYNC",
"ASYNC"
],
"remote_host": "1.1.1.1",
"remote_replication_ip_addresses": [
{
"management": true,
"ip_address": "1.1.1.1",
"link_id": 9467,
"type": "MANAGEMENT",
"local": false,
"id": 9468
},
{
"management": false,
"ip_address": "2.2.2.2",
"link_id": 9467,
"type": "ASYNC",
"local": false,
"id": 9469
},
{
"management": false,
"ip_address": "2.2.2.3",
"link_id": 9467,
"type": "ASYNC",
"local": false,
"id": 9470
},
{
"management": false,
"ip_address": "2.2.2.4",
"link_id": 9467,
"type": "ASYNC",
"local": false,
"id": 9471
},
{
"management": false,
"ip_address": "2.2.2.5",
"link_id": 9467,
"type": "SYNC",
"local": false,
"id": 9472
},
{
"management": false,
"ip_address": "2.2.2.6",
"link_id": 9467,
"type": "SYNC",
"local": false,
"id": 9473
},
{
"management": false,
"ip_address": "2.2.2.7",
"link_id": 9467,
"type": "SYNC",
"local": false,
"id": 9474
}
]
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting the link will prevent the system from replicating data to or from the remote system |
| REMOTE_PERMISSION_REQUIRED |
HTTP 403 |
The operation failed as it requires permission on the remote system |
| REMOTE_API_FAILURE |
HTTP 409 |
Error on 'fred': Service Unavailable |
| LOW_PHYSICAL_SPACE |
HTTP 409 |
Error on 'fred': Not enough free space to unlock the pool |
| LINK_IO_ERROR |
HTTP 409 |
I/O error when trying to communicate with remote system '{host}' |
| REPLICA_INVALID_LINK |
HTTP 409 |
Error on 'ibox012-mock-no-bbu': The link is detached |
| LINK_ERROR |
HTTP 409 |
Cannot delete link to fred because it has replicas defined with it |
|
Get all Links
| Description |
Get all of the links. Filterable and Sortable fields:connect_timeout,id,keep_alive_time,_link_configuration_guid,link_mode,name,remote_host,remote_link_id,_remote_management_ip,remote_system_name,remote_system_serial_number,remote_replication_network_space_id,remote_version,retry_count,retry_wait,witness_address. |
| API Endpoint |
GET api/rest/links |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN,
READ_ONLY,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 0,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Link by ID
| Description |
Get link by ID
|
| API Endpoint |
GET api/rest/links/{id} |
| URL Parameters |
| id |
long |
The ID of the link |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN,
READ_ONLY,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"remote_replication_network_space_id": 34,
"remote_link_id": 44,
"state_description": null,
"local_replication_network_space_id": 1000,
"last_connection_timestamp": null,
"link_state": "UP",
"local_witness_state": null,
"_local_host": null,
"id": 3983,
"remote_system_serial_number": 1637,
"async_only": false,
"link_mode": "ACTIVE",
"local_link_replication_type": [
"ACTIVE_ACTIVE",
"SYNC",
"ASYNC"
],
"_link_configuration_guid": "02550b28-aac1-4c7f-99ab-58020c626904",
"connect_timeout": 10000,
"is_local_link_ready_for_sync": true,
"keep_alive_time": 10000,
"local_witness_state_description": null,
"remote_witness_state": null,
"resiliency_mode": null,
"witness_address": "172.168.10.10",
"remote_system_name": "fred",
"retry_wait": 500,
"name": "auto-link--96107934-0d19-4",
"_version": 1,
"retry_count": 4,
"_remote_management_ip": null,
"remote_version": "8.4.6.20-dev",
"link_replication_type": [
"ACTIVE_ACTIVE",
"SYNC",
"ASYNC"
],
"remote_host": "1.1.1.1",
"remote_replication_ip_addresses": [
{
"management": true,
"ip_address": "1.1.1.1",
"link_id": 3983,
"type": "MANAGEMENT",
"local": false,
"id": 3984
},
{
"management": false,
"ip_address": "2.2.2.2",
"link_id": 3983,
"type": "ASYNC",
"local": false,
"id": 3985
},
{
"management": false,
"ip_address": "2.2.2.3",
"link_id": 3983,
"type": "ASYNC",
"local": false,
"id": 3986
},
{
"management": false,
"ip_address": "2.2.2.4",
"link_id": 3983,
"type": "ASYNC",
"local": false,
"id": 3987
},
{
"management": false,
"ip_address": "2.2.2.5",
"link_id": 3983,
"type": "SYNC",
"local": false,
"id": 3988
},
{
"management": false,
"ip_address": "2.2.2.6",
"link_id": 3983,
"type": "SYNC",
"local": false,
"id": 3989
},
{
"management": false,
"ip_address": "2.2.2.7",
"link_id": 3983,
"type": "SYNC",
"local": false,
"id": 3990
}
]
},
"error": null
}
|
| Errors |
| LINK_NOT_FOUND |
HTTP 404 |
Link 12285 to remote system was not found |
|
Refresh Link
| Description |
Refresh a link.
|
| API Endpoint |
POST api/rest/links/{id}/refresh |
| URL Parameters |
| id |
long |
The id of the link to update |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"remote_host": "http://box-bla"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"remote_replication_network_space_id": 34,
"remote_link_id": 44,
"state_description": null,
"local_replication_network_space_id": 1000,
"last_connection_timestamp": null,
"link_state": "UP",
"local_witness_state": null,
"_local_host": null,
"id": 12321,
"remote_system_serial_number": 51432,
"async_only": false,
"link_mode": "ACTIVE",
"local_link_replication_type": [
"SYNC",
"ASYNC"
],
"_link_configuration_guid": "8a4f9b49-85ae-415c-9c56-8b7dd659fbe2",
"connect_timeout": 10000,
"is_local_link_ready_for_sync": true,
"keep_alive_time": 10000,
"local_witness_state_description": null,
"remote_witness_state": null,
"resiliency_mode": null,
"witness_address": null,
"remote_system_name": "fred",
"retry_wait": 500,
"name": "auto-link--a55c80c2-6b54-4",
"_version": 1,
"retry_count": 4,
"_remote_management_ip": null,
"remote_version": "8.4.6.20-dev",
"link_replication_type": [
"SYNC",
"ASYNC"
],
"remote_host": "http://box-bla",
"remote_replication_ip_addresses": [
{
"management": true,
"ip_address": "1.1.1.1",
"link_id": 12321,
"type": "MANAGEMENT",
"local": false,
"id": 12322
},
{
"management": false,
"ip_address": "2.2.2.2",
"link_id": 12321,
"type": "ASYNC",
"local": false,
"id": 12323
},
{
"management": false,
"ip_address": "3.3.3.3",
"link_id": 12321,
"type": "ASYNC",
"local": false,
"id": 12329
},
{
"management": false,
"ip_address": "4.4.4.4",
"link_id": 12321,
"type": "ASYNC",
"local": false,
"id": 12330
},
{
"management": false,
"ip_address": "5.5.5.5",
"link_id": 12321,
"type": "SYNC",
"local": false,
"id": 12331
},
{
"management": false,
"ip_address": "6.6.6.6",
"link_id": 12321,
"type": "SYNC",
"local": false,
"id": 12332
},
{
"management": false,
"ip_address": "7.7.7.7",
"link_id": 12321,
"type": "SYNC",
"local": false,
"id": 12333
}
]
},
"error": null
}
|
| Errors |
| LINK_NO_NET_SPACES |
HTTP 409 |
Error on '1.1.1.1': No network spaces were found for the link |
| LINK_IO_ERROR |
HTTP 409 |
I/O error when trying to communicate with remote system '1.1.1.1' |
|
Set Witness Address
| Description |
|
| API Endpoint |
POST api/rest/links/{id}/set_witness_address |
| URL Parameters |
| id |
long |
The ID of the link to update |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"witness_address": "1.2.3.4"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"remote_replication_network_space_id": 34,
"remote_link_id": 44,
"state_description": null,
"local_replication_network_space_id": 1000,
"last_connection_timestamp": null,
"link_state": "UP",
"local_witness_state": null,
"_local_host": null,
"id": 13744,
"remote_system_serial_number": 123,
"async_only": false,
"link_mode": "ACTIVE",
"local_link_replication_type": [
"ACTIVE_ACTIVE",
"SYNC",
"ASYNC"
],
"_link_configuration_guid": "9d6f9315-b9fe-4b33-abb6-ce5d744f8e99",
"connect_timeout": 10000,
"is_local_link_ready_for_sync": true,
"keep_alive_time": 10000,
"local_witness_state_description": null,
"remote_witness_state": null,
"resiliency_mode": null,
"witness_address": "1.2.3.4",
"remote_system_name": "fred",
"retry_wait": 500,
"name": "link-",
"_version": 1,
"retry_count": 4,
"_remote_management_ip": null,
"remote_version": "8.4.6.20-dev",
"link_replication_type": [
"ACTIVE_ACTIVE",
"SYNC",
"ASYNC"
],
"remote_host": "1.1.1.1",
"remote_replication_ip_addresses": [
{
"management": true,
"ip_address": "1.1.1.1",
"link_id": 13744,
"type": "MANAGEMENT",
"local": false,
"id": 13745
},
{
"management": false,
"ip_address": "2.2.2.2",
"link_id": 13744,
"type": "ASYNC",
"local": false,
"id": 13746
},
{
"management": false,
"ip_address": "2.2.2.3",
"link_id": 13744,
"type": "ASYNC",
"local": false,
"id": 13747
},
{
"management": false,
"ip_address": "2.2.2.4",
"link_id": 13744,
"type": "ASYNC",
"local": false,
"id": 13748
},
{
"management": false,
"ip_address": "2.2.2.5",
"link_id": 13744,
"type": "SYNC",
"local": false,
"id": 13749
},
{
"management": false,
"ip_address": "2.2.2.6",
"link_id": 13744,
"type": "SYNC",
"local": false,
"id": 13750
},
{
"management": false,
"ip_address": "2.2.2.7",
"link_id": 13744,
"type": "SYNC",
"local": false,
"id": 13751
}
]
},
"error": null
}
|
| Errors |
| WRONG_PARAMETER |
HTTP 400 |
The value ( ) of parameter 'witness_address' does not meet a condition: 'must not be empty' |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| LINK_TYPE_NOT_SUPPORTED |
HTTP 409 |
Cannot define a witness on a local 'async only' link type |
| LINK_PARTIAL_FAILURE |
HTTP 409 |
Link set witness address failed, link status is unknown. User intervention is required. |
| REPLICA_INVALID_LINK |
HTTP 409 |
The link is detached |
| WITNESS_CANNOT_BE_REMOVED |
HTTP 409 |
Witness address on the link between ibox012-mock-no-bbu and fred cannot be removed if there are active-active replicas defined on link |
|
Update Link
| Description |
Update a link. For example, detach the link from a network space.
|
| API Endpoint |
PUT api/rest/links/{id} |
| URL Parameters |
| id |
long |
The ID of the link to update |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"local_replication_network_space_id": null
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"remote_replication_network_space_id": 34,
"remote_link_id": 44,
"state_description": null,
"local_replication_network_space_id": null,
"last_connection_timestamp": null,
"link_state": null,
"local_witness_state": null,
"_local_host": null,
"id": 7669,
"remote_system_serial_number": 873,
"async_only": null,
"link_mode": "DETACHED",
"local_link_replication_type": [],
"_link_configuration_guid": "c1a926d8-0b84-4364-8cf5-43b2448e636d",
"connect_timeout": 10000,
"is_local_link_ready_for_sync": false,
"keep_alive_time": 10000,
"local_witness_state_description": null,
"remote_witness_state": null,
"resiliency_mode": null,
"witness_address": null,
"remote_system_name": "fred",
"retry_wait": 500,
"name": "auto-link--148babda-b18e-4",
"_version": 1,
"retry_count": 4,
"_remote_management_ip": null,
"remote_version": "8.4.6.20-dev",
"link_replication_type": [],
"remote_host": "1.1.1.1",
"remote_replication_ip_addresses": [
{
"management": true,
"ip_address": "1.1.1.1",
"link_id": 7669,
"type": "MANAGEMENT",
"local": false,
"id": 7670
},
{
"management": false,
"ip_address": "2.2.2.2",
"link_id": 7669,
"type": "ASYNC",
"local": false,
"id": 7671
},
{
"management": false,
"ip_address": "2.2.2.3",
"link_id": 7669,
"type": "ASYNC",
"local": false,
"id": 7672
},
{
"management": false,
"ip_address": "2.2.2.4",
"link_id": 7669,
"type": "ASYNC",
"local": false,
"id": 7673
},
{
"management": false,
"ip_address": "2.2.2.5",
"link_id": 7669,
"type": "SYNC",
"local": false,
"id": 7674
},
{
"management": false,
"ip_address": "2.2.2.6",
"link_id": 7669,
"type": "SYNC",
"local": false,
"id": 7675
},
{
"management": false,
"ip_address": "2.2.2.7",
"link_id": 7669,
"type": "SYNC",
"local": false,
"id": 7676
}
]
},
"error": null
}
|
| Errors |
| INVALID_IP_ADDRESS |
HTTP 400 |
IP address '192.168.0191' is invalid. |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('async_only') |
| LINK_NET_SPACE_INSUFFICIENT_IPS |
HTTP 409 |
Invalid IP assignments are defined for local network space 'rmrEmpty'. At least seven enabled IPs are needed for sync replication. One reserved for management interface, at least three ASYNC IPs and three SYNC IPs. |
| LINK_INVALID_NET_SPACE |
HTTP 409 |
The network space specified was invalid |
|
Live Counters Metrics
This resource sets and reports on InfiniBox performance counters. A performance counter is a combination of filters and collectors.
- A filter is a pair of the metered entity and metered value.
- Metered entity - for example, pool, filesystem
- Value - the collected metrics (for example: read, write, io_size)
- A collector is a set of filter, type and collected metrics
- Type - the way the collected metrics is returned (either of the following: COUNTER, TOP, HISTOGRAM, AGGREGATOR)
- Collected metrics - for example: throughput, IOPs, latency
In order to create a counter:
- Create a filter
- Add an operation type to the filter
- Add an entity to the filter
- Create a collector
- Collect the performance counter
Add an Operation Type to a Filter
| Description |
Add an operation type to a filter.
|
| API Endpoint |
PUT api/rest/metrics/filters/{filter_id} |
| URL Parameters |
| filter_id |
long |
filter handle id |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
{
"blah": "halb"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"id": 30002
},
"error": null
}
|
| Errors |
| WRONG_PARAMETER |
HTTP 400 |
The value (null) of parameter 'file' does not meet a condition: 'must be valid value of file' |
| NOT_SUPPORTED_MULTIPLE_FIELDS_IN_FILTER |
HTTP 400 |
Filter cannot be updated with multiple fields in one request |
| LC_INVALID_FIELD_VALUE |
HTTP 409 |
The value 'value' is invalid for field 'name' and filter ID 30032 |
| LC_INVALID_FIELD_NAME |
HTTP 409 |
The field 'blah' is invalid for filter ID 30001 |
| FILESYSTEM_IS_UNESTABLISHED |
HTTP 409 |
The operation cannot be performed as the filesystem is unestablished ('auto-filesystem--1e247ee4-') |
|
Collect the Monitored Entity Performance
| Description |
Return results by monitor. Results for several monitors can be returned together.
|
| API Endpoint |
GET api/rest/metrics/collectors/data |
| URL Parameters |
| collector_id |
String |
The ID of the collector |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"collectors": [
{
"fields": [
"throughput",
"iops"
],
"id": 12,
"collector_type": "COUNTER",
"interval_milliseconds": 1000,
"data": [
[
100,
200
],
[
200,
300
]
],
"end_timestamp_milliseconds": 234875628437562
},
{
"grouping_field": "user_id",
"fields": [
"user_id",
"throughput",
"ops",
"latency"
],
"id": 216172782113784740,
"sorting_field": "throughput",
"collector_type": "TOP",
"interval_milliseconds": 1000,
"data": [
[
[
"0",
1017995776,
25982,
266
]
],
[
[
"0",
919279616,
24868,
264
]
],
[
[
"0",
1013081600,
26051,
257
]
],
[
[
"0",
955897344,
24070,
289
]
],
[
[
"0",
967550464,
25329,
277
]
],
[
[
"0",
1025179136,
27075,
275
]
],
[
[
"0",
1019835392,
25350,
284
]
],
[
[
"0",
948393984,
25008,
279
]
],
[
[
"0",
963479552,
27091,
273
]
],
[
[
"0",
1008824832,
24937,
269
]
]
],
"end_timestamp_milliseconds": 1453630430299
}
]
},
"error": null
}
|
| Errors |
| MISSING_CONTENT |
HTTP 400 |
The request is empty |
|
Create New Filter
| Description |
Create a new filter and state the protocol (service).
|
| API Endpoint |
POST api/rest/metrics/filters |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
{
"protocol": "NFSV3"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"id": 30001
},
"error": null
}
|
| Errors |
| NOT_SUPPORTED_MULTIPLE_FIELDS_IN_FILTER |
HTTP 400 |
Filter cannot be created with multiple fields in one request |
| MISSING_CONTENT |
HTTP 400 |
The request is empty |
| AUTHENTICATION_REQUIRED |
HTTP 401 |
The operation requires authentication |
| FM_DETERMINATION_FAILED |
HTTP 409 |
Failed to determine the correct FM |
|
Creating a Collector
| Description |
Creating a collector. Available collector types are: COUNTER, TOP, HISTOGRAM, AGGREGATOR.
|
| API Endpoint |
POST api/rest/metrics/collectors |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
{
"collected_fields": null,
"type": "COUNTER",
"filters": {
"protocol_type": "SAN",
"io_size": ">4K"
}
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"collected_fields": [
"throughput"
],
"type": "COUNTER",
"id": 30003,
"filter_id": 30002
},
"error": null
}
|
| Errors |
| WRONG_PARAMETER |
HTTP 400 |
The value (null) of parameter 'collected_fields' does not meet a condition: 'may not be null' |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('sort_ascending') could not be translated to an expected type |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| FILESYSTEM_IS_UNESTABLISHED |
HTTP 409 |
The operation cannot be performed as the filesystem is unestablished ('auto-filesystem--bd507426-') |
| FM_DETERMINATION_FAILED |
HTTP 409 |
Failed to determine the correct FM |
|
Deleting a Collector
| Description |
Deleting a collector.
|
| API Endpoint |
DELETE api/rest/metrics/collectors/{collector_id} |
| URL Parameters |
| collector_id |
long |
The ID of the collector |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Deleting a Filter
| Description |
Delete a filter.
|
| API Endpoint |
DELETE api/rest/metrics/filters/{filter_id} |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"id": 30020
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Available Fields
| Description |
Get available filter fields for starting new filter
|
| API Endpoint |
GET api/rest/metrics/available_fields |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"available_filter_fields": [
{
"values": [
"NFS",
"NFSV3",
"FC",
"iSCSI"
],
"type": "enum",
"name": "protocol"
},
{
"values": [
"RMR",
"SAN"
],
"type": "enum",
"name": "protocol_type"
},
{
"values": [
"read",
"write"
],
"type": "enum",
"name": "operation_type"
}
]
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Next Available Fields
| Description |
Get next available fields for specific filter
|
| API Endpoint |
GET api/rest/metrics/filters/{filter_id}/available_fields |
| URL Parameters |
| filter_id |
long |
filter handle id |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"available_filter_fields": [
{
"type": "uint",
"name": "user_id"
},
{
"values": [
"1K",
"4K",
">4K"
],
"type": "histogram",
"name": "io_size"
},
{
"type": "uint",
"name": "latency"
},
{
"type": "string",
"name": "file"
}
],
"id": 30006,
"available_collector_fields": [
{
"name": "throughput",
"unit": "bytes",
"description": "counter the throughput"
},
{
"name": "iops",
"unit": "kb",
"description": "counter the io per seconds"
},
{
"name": "latency",
"unit": "int",
"description": "counter the latency"
}
]
},
"error": null
}
|
| Errors |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| WRONG_PARAMETER |
HTTP 400 |
The value (BLA) of parameter 'level' does not meet a condition: 'can be BASIC or ADVANCED' |
|
Local Users Password Policy
Get all Local Users Password Policy
| Description |
Get local users password policy
|
| API Endpoint |
GET api/rest/users/password_policy |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"min_length": 8,
"lowercase": true,
"uppercase": true,
"symbol": true,
"digit": true,
"no_username": true,
"updated_at": 1774521804202,
"max_length": 128,
"tenant_id": 1,
"created_at": 1774521804202,
"id": -1,
"reuse_limit": 1
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Message of the Day
Get the Message of the Day
| Description |
Returns the message that is displayed on the GUI welcome screen.
|
| API Endpoint |
GET api/rest/motd |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
Invalid Operation States |
| System States | Methods |
|
LOCAL
LOCAL_SHUTDOWN
|
ALL
|
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "",
"error": null
}
|
| Errors |
See general list of error codes.
|
Metadata
Add Metadata to a Storage Entity
| Description |
Add or update metadata for an object.
|
| API Endpoint |
PUT api/rest/metadata/{object_id} |
| URL Parameters |
| object_id |
long |
ID of the object |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"somekey": "somevalue"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": [
{
"key": "myKey",
"value": "value2",
"object_type": "pool",
"id": 3071,
"object_id": 1000
}
],
"error": null
}
|
| Errors |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-537460ba-7' is forbidden to modify cg 'auto-cg_-ac9b9cd9-c745-41c' |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| METADATA_IS_NOT_SUPPORTED_FOR_ENTITY |
HTTP 404 |
This entity ID -1111 does not exist nor support metadata |
| METADATA_PER_REQUEST_EXCEEDED |
HTTP 409 |
Too many metadata per request |
| METADATA_PER_ENTITY_EXCEEDED |
HTTP 409 |
Too many metadata per entity |
| METADATA_SIZE_EXCEEDED |
HTTP 409 |
Metadata value is too big |
| METADATA_IN_SYSTEM_EXCEEDED |
HTTP 409 |
Total size of metadata is exceeded |
|
Add Metadata to the System
| Description |
Add or update metadata for the system.
|
| API Endpoint |
PUT api/rest/metadata/system |
| URL Parameters |
none
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"test-key": "test-value"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": [
{
"key": "test-key",
"value": "test-value",
"object_type": "system",
"id": 146,
"object_id": -4
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Delete Metadata by Object
| Description |
Delete all of the object’s metadata.
|
| Approval required |
This is a dangerous operation
This operation will remove all of the metadata for the specified object
|
| API Endpoint |
DELETE api/rest/metadata/{object_id} |
| URL Parameters |
| object_id |
long |
ID of the object |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": [
{
"key": "myKey",
"value": "value1",
"object_type": "pool",
"id": 2965,
"object_id": 1000
}
],
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
This operation will remove all of the metadata for the specified object |
| METADATA_IS_NOT_SUPPORTED_FOR_ENTITY |
HTTP 404 |
This entity ID -1111 does not exist nor support metadata |
|
Delete Metadata by Object and Key
| Description |
Delete a specific key from the object’s metadata.
|
| API Endpoint |
DELETE api/rest/metadata/{object_id}/{key} |
| URL Parameters |
| object_id |
long |
ID of the object |
| key |
String |
The key |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"key": "myKey",
"value": "value1",
"object_type": "pool",
"id": 2676,
"object_id": 1000
},
"error": null
}
|
| Errors |
| METADATA_NOT_FOUND |
HTTP 404 |
Metadata not found |
|
Delete System Metadata
| Description |
Delete all of the system’s metadata.
|
| API Endpoint |
DELETE api/rest/metadata/system |
| URL Parameters |
none
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": [
{
"key": "key1",
"value": "value1",
"object_type": "system",
"id": 3224,
"object_id": -4
},
{
"key": "key2",
"value": "value2",
"object_type": "system",
"id": 3225,
"object_id": -4
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Delete System Metadata by Key
| Description |
Delete a specific key from the system’s metadata.
|
| API Endpoint |
DELETE api/rest/metadata/system/{key} |
| URL Parameters |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"key": "test-key",
"value": "test-value",
"object_type": "system",
"id": 146,
"object_id": -4
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get all of the Metadata
| Description |
Get all of the metadata for all of the objects.
|
| API Endpoint |
GET api/rest/metadata/ |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 3,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"key": "key1",
"value": "value1",
"object_type": "system",
"id": 2908,
"object_id": -4
},
{
"key": "key2",
"value": "value2",
"object_type": "system",
"id": 2909,
"object_id": -4
},
{
"key": "key0",
"value": "value0",
"object_type": "pool",
"id": 2907,
"object_id": 1000
}
],
"error": null
}
|
| Errors |
| NOT_FILTERABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be filtered: ('object_type') |
|
Get Metadata by Object
| Description |
Get the object’s metadata.
|
| API Endpoint |
GET api/rest/metadata/{object_id} |
| URL Parameters |
| object_id |
long |
ID of the object |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 3,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"key": "key1",
"value": "value1",
"object_type": "pool",
"id": 2715,
"object_id": 1000
},
{
"key": "key2",
"value": "value2_2",
"object_type": "pool",
"id": 2716,
"object_id": 1000
},
{
"key": "key3",
"value": "value3",
"object_type": "pool",
"id": 2717,
"object_id": 1000
}
],
"error": null
}
|
| Errors |
| METADATA_IS_NOT_SUPPORTED_FOR_ENTITY |
HTTP 404 |
This entity ID 1000 does not exist nor support metadata |
|
Get Metadata by Object and Key
| Description |
Get the object’s metadata of a specific key.
|
| API Endpoint |
GET api/rest/metadata/{object_id}/{key} |
| URL Parameters |
| object_id |
long |
ID of the object |
| key |
String |
The key |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"key": "myKey",
"value": "value1",
"object_type": "pool",
"id": 2676,
"object_id": 1000
},
"error": null
}
|
| Errors |
| METADATA_NOT_FOUND |
HTTP 404 |
Metadata not found |
|
Get System Metadata
| Description |
Get the system’s metadata.
|
| API Endpoint |
GET api/rest/metadata/system |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 0,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get System Metadata by Key
| Description |
Get the system's metadata of a specific key.
|
| API Endpoint |
GET api/rest/metadata/system/{key} |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"key": "key1",
"value": "value1",
"object_type": "system",
"id": 2908,
"object_id": -4
},
"error": null
}
|
| Errors |
| METADATA_NOT_FOUND |
HTTP 404 |
Metadata not found |
|
Nlm Lock
Break Nlm Locks
| Description |
Break NLM Locks
|
| Approval required |
This is a dangerous operation
Manually breaking a lock may disrupt the application relying on that lock, and may lead to the application suffering data corruption
|
| API Endpoint |
POST api/rest/nlm_locks/break |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"locks_broken": 1234
},
"error": null
}
|
| Errors |
| NLM_LOCK_PATH_INVALID |
HTTP 400 |
Invalid lock file path |
| INVALID_IP_ADDRESS |
HTTP 400 |
IP address '1.2.3' is invalid. |
| NLM_INVALID_LOCK_ID |
HTTP 400 |
Invalid Lock ID |
| APPROVAL_REQUIRED |
HTTP 403 |
Manually breaking a lock may disrupt the application relying on that lock, and may lead to the application suffering data corruption |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
| NLM_LOCK_DOES_NOT_EXIST |
HTTP 404 |
NLM Lock 1234 does not exist |
| LOCK_ALREADY_IDENTIFIED |
HTTP 409 |
Whenever the Lock ID is specified there is no need to specify other attributes |
| NLM_LOCK_PATH_UNAVAILABLE |
HTTP 409 |
The lock file path is unavailable |
| NLM_LOCK_QUERY_FILE_PATH_WITHOUT_FILESYSTEM |
HTTP 409 |
Using the file_path option requires specifying the filesystem name as well |
|
Get all Nlm Locks
| Description |
Return all NLM Locks
|
| API Endpoint |
GET api/rest/nlm_locks |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 10,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"lock_id": "7ffffffffffffffe",
"granted_at": 986546581,
"tenant_id": 1,
"offset": 0,
"state": "WAITING",
"length": 1024,
"client": "some1.local.com",
"lock_type": "shared",
"owner": "124@hostname",
"file_path_status": "AVAILABLE",
"filesystem_id": 1001,
"file_path": "/file1"
},
{
"lock_id": "7ffffffffffffffd",
"granted_at": 986546582,
"tenant_id": 1,
"offset": 0,
"state": "GRANTED",
"length": 1024,
"client": "some2.local.com",
"lock_type": "shared",
"owner": "125@hostname",
"file_path_status": "AVAILABLE",
"filesystem_id": 1002,
"file_path": "/file2"
},
{
"lock_id": "7ffffffffffffffc",
"granted_at": 986546583,
"tenant_id": 1,
"offset": 0,
"state": "WAITING",
"length": 1024,
"client": "some3.local.com",
"lock_type": "exclusive",
"owner": "126@hostname",
"file_path_status": "AVAILABLE",
"filesystem_id": 1003,
"file_path": "/file3"
},
{
"lock_id": "7ffffffffffffffb",
"granted_at": 986546584,
"tenant_id": 1,
"offset": 0,
"state": "GRANTED",
"length": 1024,
"client": "some4.local.com",
"lock_type": "shared",
"owner": "127@hostname",
"file_path_status": "AVAILABLE",
"filesystem_id": 1004,
"file_path": "/file4"
},
{
"lock_id": "7ffffffffffffffa",
"granted_at": 986546585,
"tenant_id": 1,
"offset": 0,
"state": "WAITING",
"length": 1024,
"client": "some5.local.com",
"lock_type": "shared",
"owner": "128@hostname",
"file_path_status": "AVAILABLE",
"filesystem_id": 1005,
"file_path": "/file5"
},
{
"lock_id": "7ffffffffffffff9",
"granted_at": 986546586,
"tenant_id": 1,
"offset": 0,
"state": "GRANTED",
"length": 1024,
"client": "some6.local.com",
"lock_type": "exclusive",
"owner": "129@hostname",
"file_path_status": "AVAILABLE",
"filesystem_id": 1006,
"file_path": "/file6"
},
{
"lock_id": "7ffffffffffffff8",
"granted_at": 986546587,
"tenant_id": 1,
"offset": 0,
"state": "WAITING",
"length": 1024,
"client": "some7.local.com",
"lock_type": "shared",
"owner": "130@hostname",
"file_path_status": "AVAILABLE",
"filesystem_id": 1007,
"file_path": "/file7"
},
{
"lock_id": "7ffffffffffffff7",
"granted_at": 986546588,
"tenant_id": 1,
"offset": 0,
"state": "GRANTED",
"length": 1024,
"client": "some8.local.com",
"lock_type": "shared",
"owner": "131@hostname",
"file_path_status": "AVAILABLE",
"filesystem_id": 1008,
"file_path": "/file8"
},
{
"lock_id": "7ffffffffffffff6",
"granted_at": 986546589,
"tenant_id": 1,
"offset": 0,
"state": "WAITING",
"length": 1024,
"client": "some9.local.com",
"lock_type": "exclusive",
"owner": "132@hostname",
"file_path_status": "AVAILABLE",
"filesystem_id": 1009,
"file_path": "/file9"
},
{
"lock_id": "7ffffffffffffff5",
"granted_at": 986546590,
"tenant_id": 1,
"offset": 0,
"state": "GRANTED",
"length": 1024,
"client": "some10.local.com",
"lock_type": "shared",
"owner": "133@hostname",
"file_path_status": "AVAILABLE",
"filesystem_id": 1010,
"file_path": "/file10"
}
],
"error": null
}
|
| Errors |
| NLM_LOCK_PATH_INVALID |
HTTP 400 |
Invalid lock file path |
| UNSUPPORTED_FILTER_RELATION |
HTTP 400 |
The filtering operator 'IN' is not supported by this resource |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('aaaaa') |
| NLM_INVALID_LOCK_ID |
HTTP 400 |
Invalid Lock ID |
| NOT_FILTERABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be filtered: ('granted_at') |
| INVALID_IP_ADDRESS |
HTTP 400 |
IP address '1.2.3' is invalid. |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
| LOCK_ALREADY_IDENTIFIED |
HTTP 409 |
Whenever the Lock ID is specified there is no need to specify other attributes |
| NLM_LOCK_PATH_UNAVAILABLE |
HTTP 409 |
The lock file path is unavailable |
| NLM_LOCK_QUERY_FILE_PATH_WITHOUT_FILESYSTEM |
HTTP 409 |
Using the file_path option requires specifying the filesystem name as well |
|
Get Nlm Lock by Lock ID
| Description |
Return NLM Lock by lock id
|
| API Endpoint |
GET api/rest/nlm_locks/{lockId} |
| URL Parameters |
| lockId |
String |
NLM Lock ID |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"lock_id": "7ffffffffffffffe",
"granted_at": 986546581,
"tenant_id": 1,
"offset": 0,
"state": "WAITING",
"length": 1024,
"client": "some1.local.com",
"lock_type": "shared",
"owner": "124@hostname",
"file_path_status": "AVAILABLE",
"filesystem_id": 1001,
"file_path": "/file1"
},
"error": null
}
|
| Errors |
| NLM_LOCK_DOES_NOT_EXIST |
HTTP 404 |
NLM Lock 1e1e1e does not exist |
|
Remove Orphan Nlm Locks
| Description |
Remove orphan NLM Locks
|
| Approval required |
This is a dangerous operation
Manually removing locks may disrupt the application relying on that lock, and may lead to the application suffering data corruption
|
| API Endpoint |
POST api/rest/nlm_locks/remove_orphan |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"locks_removed": 1234
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Manually removing locks may disrupt the application relying on that lock, and may lead to the application suffering data corruption |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
|
Network Space
Add IP Address to Network Space
| Description |
Add IP address to a network space.
|
| API Endpoint |
POST api/rest/{id}/ips |
| URL Parameters |
| id |
long |
ID of the network space |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
"\"192.168.2.3\""
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"properties": {
"is_async_only": false
},
"name": "auto-ipd--c4bb46e1-8369-4e",
"service": "RMR_SERVICE",
"tenant_id": 1,
"interfaces": [
640
],
"rate_limit": null,
"id": 1000,
"ips": [
{
"reserved": true,
"type": "MANAGEMENT",
"enabled": true,
"interface_id": 640,
"tpgt": null,
"ip_address": "192.168.2.3",
"vlan_id": 1
}
],
"automatic_ip_failback": false,
"vmac_addresses": [
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fa"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fb"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:f6"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fe"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:f5"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:ff"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:f4"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fc"
},
{
"role": "RESERVED",
"vmac_address": "74:2b:0f:ff:ff:f9"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fd"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:f3"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:f7"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:f8"
}
],
"routes": [],
"mtu": 1500,
"network_config": {
"netmask": 24,
"network": "192.168.2.0",
"default_gateway": "192.168.2.1"
}
},
"error": null
}
|
| Errors |
| INVALID_IP_ADDRESS |
HTTP 400 |
IP address '192.168.10.0' is invalid. IP address can not match a network, broadcast or default gateway addresses |
| IP_ADDRESS_CONFLICT |
HTTP 409 |
IP address cannot be added. Already exists on the network |
| IP_ADDRESS_GATEWAY_CONFLICT |
HTTP 409 |
IP address and default gateway are in conflict |
| NET_SPACE_ADDRESS_CONFLICT |
HTTP 409 |
IP address cannot be added as it already exists |
| NETWORK_SPACE_IP_COUNT_LIMIT |
HTTP 409 |
IP address cannot be added. Network space IP count limit reached |
| NET_SPACE_INCOMPATIBLE_NET_MASK |
HTTP 409 |
IP address '192.168.10.1' must be compatible with network mask '192.168.11.0/24' to be added |
| IP_ADDRESS_ROUTE_GATEWAY_CONFLICT |
HTTP 409 |
IP address and route gateway are in conflict |
| IP_ADDRESS_ISNS_SERVER_CONFLICT |
HTTP 409 |
IP address '192.168.11.2' conflicts with the address of one of the iSNS servers configured on this network space |
|
Add Route to Network Space
| Description |
Add a route to a network space.
|
| API Endpoint |
POST api/rest/{network_space_id}/routes/ |
| URL Parameters |
| network_space_id |
long |
ID of the network space |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
{
"netmask": 27,
"destination": "1.2.3.32",
"gateway": "192.168.11.1"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"netmask": 27,
"destination": "1.2.3.32",
"id": 9049,
"gateway": "192.168.11.1"
},
"error": null
}
|
| Errors |
| MISSING_FIELD |
HTTP 400 |
A field ('routes.netmask') is missing in an object passed |
| ROUTE_SPECIFIED_MULTIPLE_TIMES |
HTTP 400 |
A route can be used only once in a routing table |
| NETWORK_SPACE_ROUTE_COUNT_LIMIT |
HTTP 409 |
Network space route count limit reached (1) |
| NET_SPACE_INCOMPATIBLE_SUBNET_AND_NET_MASK |
HTTP 409 |
The network address provided '1.2.3.32' does not match the network mask '26' |
| NETWORK_SPACE_SERVICE_ROUTE_COUNT_LIMIT |
HTTP 409 |
Network space service route count limit reached (2) |
| IP_ADDRESS_ROUTE_GATEWAY_CONFLICT |
HTTP 409 |
IP address and route gateway are in conflict |
|
Create a Network Space
| Description |
Create a network space.
|
| API Endpoint |
POST api/rest |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
{
"name": "nwsp1",
"automatic_ip_failback": false,
"interfaces": [
1771
],
"rate_limit": null,
"properties": {},
"service": "SAN_SERVICE",
"routes": null,
"mtu": 1500,
"network_config": {
"netmask": 24,
"network": "192.168.11.0",
"default_gateway": "192.168.11.254"
}
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"properties": {},
"name": "nwsp1",
"service": "SAN_SERVICE",
"tenant_id": 1,
"interfaces": [
1771
],
"rate_limit": null,
"id": 1001,
"ips": [],
"automatic_ip_failback": false,
"vmac_addresses": [
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fc"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fe"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fd"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:ff"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fa"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fb"
}
],
"routes": null,
"mtu": 1500,
"network_config": {
"netmask": 24,
"network": "192.168.11.0",
"default_gateway": "192.168.11.254"
}
},
"error": null
}
|
| Errors |
| ROUTE_SPECIFIED_MULTIPLE_TIMES |
HTTP 400 |
A route can be used only once in a routing table |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('tenant_id') |
| NET_SPACE_SERVICE_PROPERTIES |
HTTP 400 |
The properties provided do not match the network space service |
| MISSING_FIELD |
HTTP 400 |
A field ('service') is missing in an object passed |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('properties') could not be translated to an expected type |
| WRONG_PARAMETER |
HTTP 400 |
The value (null) of parameter 'service' does not meet a condition: 'may not be null' |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for READ_ONLY |
| TENANT_NOT_FOUND |
HTTP 404 |
Tenant not found |
| METHOD_NOT_ALLOWED |
HTTP 405 |
The resource at this path does not support this method |
| NET_SPACE_MUST_DEFINE_ONE_INTERFACE_PER_NODE |
HTTP 409 |
Network space must define one interface per node |
| NET_SPACE_INCOMPATIBLE_SUBNET_AND_GATEWAY |
HTTP 409 |
The gateway '192.168.12.0' is not in subnet '192.168.11.0/24' |
| SYSTEM_CANNOT_SUPPORT_ISCSI_AA |
HTTP 409 |
Active-Active Replication and ISCSI network space cannot exist on same system. Please contact INFINIDAT support for further information |
| NETWORK_SPACE_INCONSISTENT_VLAN_IDS |
HTTP 409 |
All VLAN interfaces in the network space must be consistent |
| NET_SPACE_GATEWAY_CONFLICT |
HTTP 409 |
Gateway '192.168.11.0' is illegal - conflicts with the Network address |
| NET_SPACE_INTERFACE_CONFLICT |
HTTP 409 |
Two network spaces cannot contain the same interface for the same service |
| NETWORK_SPACE_INCONSISTENT_INTERFACE_TYPE |
HTTP 409 |
All interfaces in the network space must be of the same type |
| NET_SPACE_INCOMPATIBLE_SUBNET_AND_NET_MASK |
HTTP 409 |
The network address provided '172.16.16.16' does not match the network mask '24' |
| NETWORK_SPACE_INCONSISTENT_VLAN_NAME |
HTTP 409 |
A network space using VLANs requires all interfaces to have the same name on all nodes |
| ISCSI_DISABLED |
HTTP 409 |
iSCSI is disabled, please contact INFINIDAT support to enable it |
| NO_SUCH_OBJECT |
HTTP 409 |
No such object: interface - 111 |
| MTU_TOO_LOW |
HTTP 409 |
MTU for this network space must be higher / equal to the MTU of network space 'ns2' as they share the same physical interface |
| NETWORK_SPACE_COUNT_LIMIT |
HTTP 409 |
The system reached the maximum number of network spaces (10) |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Setting a rate limit on a network space, which includes an interface of type port is not supported |
| NET_SPACE_NAME_CONFLICT |
HTTP 409 |
An entity with this name already exists |
| NETWORK_SPACE_SERVICE_COUNT_LIMIT |
HTTP 409 |
The system reached the maximum number of network spaces with service 'RMR' (10) |
| NET_SPACE_DESTINATION_AND_NETWORK_OVERLAP |
HTTP 409 |
The route's destination '192.168.11.0/19' and the network '192.168.11.0/24' overlap |
| MTU_TOO_HIGH |
HTTP 409 |
MTU for this network space is limited by the MTU of network space 'ns1' |
| NETWORK_SPACE_SERVICE_ROUTE_COUNT_LIMIT |
HTTP 409 |
Network space service route count limit reached (1) |
| NET_SPACE_CANT_USE_EMPTY_PORTGROUP |
HTTP 409 |
Port group without ports ('emptyIntf') cannot be part of a network space |
| NETWORK_SPACE_ROUTE_COUNT_LIMIT |
HTTP 409 |
Network space route count limit reached (1) |
|
Delete a Network Space
| Description |
Delete a network space.
|
| API Endpoint |
DELETE api/rest/{id} |
| URL Parameters |
| id |
long |
ID of the network space |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"properties": {},
"name": "ipd",
"service": "NAS_SERVICE",
"tenant_id": 1,
"interfaces": [
7682
],
"rate_limit": null,
"id": 1000,
"ips": [],
"automatic_ip_failback": false,
"vmac_addresses": [
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fb"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fc"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fa"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:ff"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fd"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fe"
}
],
"routes": [],
"mtu": 1500,
"network_config": {
"netmask": 24,
"network": "192.168.11.0",
"default_gateway": "192.168.11.254"
}
},
"error": null
}
|
| Errors |
| NET_SPACE_NOT_FOUND |
HTTP 404 |
Invalid network space ID |
| NET_SPACE_NOT_EMPTY |
HTTP 409 |
The network space has to be empty of IP addresses in order to be removed |
|
Delete Network Space Route by ID
| Description |
Delete network space's route by id.
|
| API Endpoint |
DELETE api/rest/{network_space_id}/routes/{id} |
| URL Parameters |
| network_space_id |
long |
ID of the network space |
| id |
long |
ID of the route |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"netmask": 27,
"destination": "3.2.3.32",
"id": 9049,
"gateway": "192.168.11.1"
},
"error": null
}
|
| Errors |
| ROUTE_NOT_FOUND |
HTTP 404 |
Invalid route ID |
| NET_SPACE_NOT_FOUND |
HTTP 404 |
Invalid network space ID |
|
Disable IP Address for a Network Space
| Description |
Disable IP address for a network space.
|
| Approval required |
This is a dangerous operation
Disabling the last network space IP address will make the network space inaccessible, and will degrade the functionality of the service service_name
|
| API Endpoint |
POST api/rest/{id}/ips/{ip}/disable |
| URL Parameters |
| id |
long |
ID of the network space |
| ip |
String |
IP address |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"properties": {},
"name": "ipd1",
"service": "NAS_SERVICE",
"tenant_id": 1,
"interfaces": [
618
],
"rate_limit": null,
"id": 1000,
"ips": [
{
"reserved": false,
"type": "NAS",
"enabled": true,
"interface_id": null,
"tpgt": null,
"ip_address": "192.168.11.3",
"vlan_id": 1
},
{
"reserved": false,
"type": "NAS",
"enabled": false,
"interface_id": null,
"tpgt": null,
"ip_address": "192.168.11.4",
"vlan_id": 1
}
],
"automatic_ip_failback": false,
"vmac_addresses": [
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fb"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fc"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fd"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fe"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:ff"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fa"
}
],
"routes": [
{
"netmask": 27,
"destination": "1.2.3.32",
"id": 619,
"gateway": "192.168.11.1"
},
{
"netmask": 27,
"destination": "2.2.3.32",
"id": 620,
"gateway": "192.168.11.2"
}
],
"mtu": 1500,
"network_config": {
"netmask": 24,
"network": "192.168.11.0",
"default_gateway": "192.168.11.254"
}
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Disabling the last network space IP address will make the network space inaccessible, and will degrade the functionality of the service (NAS_SERVICE) |
| NET_SPACE_IN_USE |
HTTP 403 |
The network space is in use by another entity of type link |
| NET_SPACE_IP_IN_USE_BY_MANAGEMENT |
HTTP 409 |
The IP address cannot be disabled because it is in use by the management interface |
| IP_ADDRESS_ALREADY_DISABLED |
HTTP 409 |
IP address is already disabled |
|
Enable IP Address for a Network Space
| Description |
Enable IP address for a network space.
|
| API Endpoint |
POST api/rest/{id}/ips/{ip}/enable |
| URL Parameters |
| id |
long |
ID of the network space |
| ip |
String |
IP address |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"properties": {},
"name": "ipd1",
"service": "NAS_SERVICE",
"tenant_id": 1,
"interfaces": [
8328
],
"rate_limit": null,
"id": 1000,
"ips": [
{
"reserved": false,
"type": "NAS",
"enabled": true,
"interface_id": null,
"tpgt": null,
"ip_address": "192.168.11.1",
"vlan_id": 1
}
],
"automatic_ip_failback": false,
"vmac_addresses": [
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fb"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fc"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fd"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fe"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:ff"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fa"
}
],
"routes": [],
"mtu": 1500,
"network_config": {
"netmask": 24,
"network": "192.168.11.0",
"default_gateway": "192.168.11.254"
}
},
"error": null
}
|
| Errors |
| IP_ADDRESS_ALREADY_ENABLED |
HTTP 409 |
IP address is already enabled |
|
Get a Network Space
| Description |
Get a network space.
|
| API Endpoint |
GET api/rest/{id} |
| URL Parameters |
| id |
long |
ID of the network space |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"properties": {},
"name": "ipd1",
"service": "NAS_SERVICE",
"tenant_id": 1,
"interfaces": [
618
],
"rate_limit": null,
"id": 1000,
"ips": [
{
"reserved": false,
"type": "NAS",
"enabled": true,
"interface_id": null,
"tpgt": null,
"ip_address": "192.168.11.3",
"vlan_id": 1
},
{
"reserved": false,
"type": "NAS",
"enabled": true,
"interface_id": null,
"tpgt": null,
"ip_address": "192.168.11.4",
"vlan_id": 1
}
],
"automatic_ip_failback": false,
"vmac_addresses": [
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fb"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fc"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fd"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fe"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:ff"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fa"
}
],
"routes": [
{
"netmask": 27,
"destination": "1.2.3.32",
"id": 619,
"gateway": "192.168.11.1"
},
{
"netmask": 27,
"destination": "2.2.3.32",
"id": 620,
"gateway": "192.168.11.2"
}
],
"mtu": 1500,
"network_config": {
"netmask": 24,
"network": "192.168.11.0",
"default_gateway": "192.168.11.254"
}
},
"error": null
}
|
| Errors |
| NET_SPACE_NOT_FOUND |
HTTP 404 |
Invalid network space ID |
|
Get all Network Space Routes
| Description |
Get all routes of a network space.
|
| API Endpoint |
GET api/rest/{network_space_id}/routes |
| URL Parameters |
| network_space_id |
long |
ID of the network space |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 2,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"netmask": 27,
"destination": "1.2.3.32",
"id": 8731,
"gateway": "192.168.11.1"
},
{
"netmask": 27,
"destination": "2.2.3.32",
"id": 8732,
"gateway": "192.168.11.2"
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get all Network Spaces
| Description |
Get all network spaces. Filterable and Sortable fields:automatic_ip_failback,id,mtu,name,network_config,rate_limit,service. |
| API Endpoint |
GET api/rest |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 0,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Network Space Route by ID
| Description |
Get network space's route by id.
|
| API Endpoint |
GET api/rest/{network_space_id}/routes/{id} |
| URL Parameters |
| network_space_id |
long |
ID of the network space |
| id |
long |
ID of the route |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"netmask": 27,
"destination": "1.2.3.32",
"id": 10261,
"gateway": "192.168.11.1"
},
"error": null
}
|
| Errors |
| ROUTE_NOT_FOUND |
HTTP 404 |
Invalid route ID |
| NET_SPACE_NOT_FOUND |
HTTP 404 |
Invalid network space ID |
|
Remove IP Address from Network Space
| Description |
Remove an IP address from a network space.
|
| Approval required |
This is a dangerous operation
Deleting the last network space IP address will make the network space inaccessible, and will degrade the functionality of the service service_name
|
| API Endpoint |
DELETE api/rest/{id}/ips/{ip} |
| URL Parameters |
| id |
long |
ID of the network space |
| ip |
String |
IP address |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"properties": {
"iscsi_isns_servers": null,
"iscsi_iqn": "iqn.2009-11.com.infinidat:storage:infinibox-sn-19",
"iscsi_tcp_port": 3260,
"is_tpg_per_port": true,
"iscsi_default_security_method": "NONE"
},
"name": "ipd3",
"service": "ISCSI_SERVICE",
"tenant_id": 1,
"interfaces": [
8518
],
"rate_limit": null,
"id": 1002,
"ips": [
{
"reserved": false,
"type": "ISCSI",
"enabled": true,
"interface_id": null,
"tpgt": 2,
"ip_address": "192.168.11.6",
"vlan_id": 1
}
],
"automatic_ip_failback": false,
"vmac_addresses": [
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:f9"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:f7"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:f8"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:f5"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:f6"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:f4"
}
],
"routes": [],
"mtu": 1500,
"network_config": {
"netmask": 24,
"network": "192.168.11.0",
"default_gateway": "192.168.11.254"
}
},
"error": null
}
|
| Errors |
| NET_SPACE_IP_NOT_EXISTS |
HTTP 400 |
IP does not exists in network space |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting the last network space IP address will make the network space inaccessible, and will degrade the functionality of the service (NAS_SERVICE) |
| NET_SPACE_IP_ENABLED |
HTTP 409 |
IP address is enabled |
| NET_SPACE_IP_IN_USE_BY_MANAGEMENT |
HTTP 409 |
The IP address cannot be deleted because it is in use by the management interface |
|
Update a Network Space
| Description |
Modify the network space IP address, network mask, default gateway or service's properties.
|
| API Endpoint |
PUT api/rest/{id} |
| URL Parameters |
| id |
long |
ID of the network space |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
{
"rate_limit": 1000
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"properties": {},
"name": "ipd1",
"service": "NAS_SERVICE",
"tenant_id": 1,
"interfaces": [
618
],
"rate_limit": 1000,
"id": 1000,
"ips": [
{
"reserved": false,
"type": "NAS",
"enabled": true,
"interface_id": null,
"tpgt": null,
"ip_address": "192.168.11.3",
"vlan_id": 1
},
{
"reserved": false,
"type": "NAS",
"enabled": false,
"interface_id": null,
"tpgt": null,
"ip_address": "192.168.11.4",
"vlan_id": 1
}
],
"automatic_ip_failback": false,
"vmac_addresses": [
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fb"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fc"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fd"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fe"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:ff"
},
{
"role": "DATA",
"vmac_address": "74:2b:0f:ff:ff:fa"
}
],
"routes": [
{
"netmask": 27,
"destination": "1.2.3.32",
"id": 619,
"gateway": "192.168.11.1"
},
{
"netmask": 27,
"destination": "2.2.3.32",
"id": 620,
"gateway": "192.168.11.2"
}
],
"mtu": 1500,
"network_config": {
"netmask": 24,
"network": "192.168.11.0",
"default_gateway": "192.168.11.254"
}
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('tenant_id') |
| INVALID_IP_ADDRESS |
HTTP 400 |
IP address 'someInValidIp' is invalid. |
| UNSUPPORTED_VALUE |
HTTP 400 |
The request contains an unsupported value (null) for field ('iscsi_isns_servers') |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('iscsi_tcp_port') could not be translated to an expected type |
| WRONG_PARAMETER |
HTTP 400 |
The value (-1) of parameter 'mtu' does not meet a condition: 'must be greater than or equal to 1280' |
| NET_SPACE_SERVICE_PROPERTIES |
HTTP 400 |
The properties provided do not match the network space service |
| NET_SPACE_IN_USE |
HTTP 403 |
The network space is in use by another entity of type link |
| METHOD_NOT_ALLOWED |
HTTP 405 |
The resource at this path does not support this method |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Setting a rate limit on a network space, which includes an interface of type port is not supported |
| ISNS_SERVER_UNREACHABLE |
HTTP 409 |
iSNS server '172.168.90.12' cannot be added since it is unreachable (not in the network space's netmask / routing table) |
| ISNS_SERVERS_COUNT_LIMIT |
HTTP 409 |
The network space reached the maximum number of isns servers (4) |
| ISNS_SERVERS_UNREACHABLE |
HTTP 409 |
iSNS servers '[172.168.90.12]' cannot be added since they are unreachable |
| MTU_TOO_LOW |
HTTP 409 |
MTU for this network space must be higher / equal to the MTU of network space 'ns2' as they share the same physical interface |
| NETWORK_CONFIG_MODIFY_NOT_ALLOWED_WITH_ROUTES |
HTTP 409 |
Modifying the network address or netmask of a network space with routes is not allowed |
| NET_SPACE_INCOMPATIBLE_NETWORK_AND_EXISTING_IPS |
HTTP 409 |
The network is incompatible with IP addresses already defined in the network space |
| NET_SPACE_INTERFACE_CONFLICT |
HTTP 409 |
At least one of the interfaces that are provided for the network space has to be in Enabled state |
| IP_ADDRESS_GATEWAY_CONFLICT |
HTTP 409 |
IP address and default gateway are in conflict |
| ISNS_SERVER_GATEWAY_REQUIRED |
HTTP 409 |
The default gateway cannot be removed as long as there is an iSNS server '172.168.90.12' outside the network space |
| LINK_NET_SPACE_INSUFFICIENT_IPS |
HTTP 409 |
Invalid IP assignments are defined for local network space 'rmr-ip'. At least seven enabled IPs are needed for sync replication. One reserved for management interface, at least three ASYNC IPs and three SYNC IPs. |
| ISNS_SERVER_IP_CONFLICT |
HTTP 409 |
iSNS server '192.168.11.2' cannot be added since its address is defined as a network space IP |
| MTU_TOO_HIGH |
HTTP 409 |
MTU for this network space is limited by the MTU of network space 'ns1' |
|
Update Network Space Route by ID
| Description |
Modify a network space's route by id.
|
| API Endpoint |
PUT api/rest/{network_space_id}/routes/{id} |
| URL Parameters |
| network_space_id |
long |
ID of the network space |
| id |
long |
ID of the route |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
{
"destination": "3.2.3.32",
"gateway": "192.168.11.3"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"netmask": 27,
"destination": "3.2.3.32",
"id": 8408,
"gateway": "192.168.11.3"
},
"error": null
}
|
| Errors |
| ROUTE_SPECIFIED_MULTIPLE_TIMES |
HTTP 400 |
A route can be used only once in a routing table |
| NET_SPACE_INCOMPATIBLE_SUBNET_AND_NET_MASK |
HTTP 409 |
The network address provided '1.2.3.32' does not match the network mask '26' |
| NET_SPACE_GATEWAY_CONFLICT |
HTTP 409 |
Gateway '192.168.11.255' is illegal - conflicts with the Network broadcast address |
| IP_ADDRESS_ROUTE_GATEWAY_CONFLICT |
HTTP 409 |
IP address and route gateway are in conflict |
|
Network Troubleshooting
Execute Ping
| Description |
|
| API Endpoint |
POST api/rest/ping |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
{
"node": "node-1",
"service": "MGMT"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": null,
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('service') could not be translated to an expected type |
| MISSING_FIELD |
HTTP 400 |
A field ('hostname') is missing in an object passed |
| WRONG_PARAMETER |
HTTP 400 |
The value (null) of parameter 'hostname' does not meet a condition: 'must be a valid hostname or ip address' |
|
NFS
Get NFS Server Capabilities
| Description |
Return the NFS server capabilities Filterable and Sortable fields:max_smb_protocol,min_smb_protocol,nfsv4_support,smb_encryption,smb_lease_break_timeout,smb_leases_enable,smb_signing,tenantId. |
| API Endpoint |
GET api/rest/nfs/server_capabilities |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"nfsv4_support": "DISABLED"
}
],
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('min_smb_protocol') |
|
Update NFS Server Capabilities
| Description |
Update an attribute of NFS server capabilities
|
| API Endpoint |
PUT api/rest/nfs/server_capabilities |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"nfsv4_support": "ENABLED"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"nfsv4_support": "ENABLED",
"tenant_id": 1
},
"error": null
}
|
| Errors |
| FEATURE_CANNOT_BE_DISABLED |
HTTP 409 |
Support for this feature cannot be disabled |
|
NFS User
Create NFS User
| Description |
Create a new NFS user
|
| API Endpoint |
POST api/rest/nfs_users |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"primary_gid": 122222,
"uid": 172866716,
"supplementary_gsids": [
"S-1-5-67890-211",
"S-1-5-67890-212",
"S-1-5-67890-213"
],
"supplementary_gids": [
111,
222,
333
],
"primary_gsid": "S-1-5-67890-400",
"sid": "S-1-5-6694-37"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"primary_gid": 122222,
"uid": 172866716,
"supplementary_gsids": [
"S-1-5-67890-211",
"S-1-5-67890-212",
"S-1-5-67890-213"
],
"supplementary_gids": [
111,
222,
333
],
"primary_gsid": "S-1-5-67890-400",
"sid": "S-1-5-6694-37",
"id": 670
},
"error": null
}
|
| Errors |
| PARAMETER_CONFLICT |
HTTP 400 |
Parameter 'primary_gsid' does not meet a condition: 'can only be specified with sid' |
| WRONG_PARAMETER |
HTTP 400 |
The value (null) of parameter 'primary_gid' does not meet a condition: 'may not be null' |
| TENANT_NOT_FOUND |
HTTP 404 |
Tenant not found |
| INVALID_SID_VALUE |
HTTP 409 |
'X-sS-abc-58-12343546' is not a valid SID. Change it in the NFS user field 'sid' |
| UID_NOT_UNIQUE |
HTTP 409 |
Only one user can be mapped to uid 1234 |
| NFS_USER_SUPPL_GSIDS_DUPLICATES |
HTTP 409 |
The NFS user cannot be create. The supplementary GSIDs contains duplicates |
| NFS_USER_SUPPL_GSIDS_COUNT_LIMIT |
HTTP 409 |
The NFS user cannot be created. The number of supplementary GSIDs exceeds the maximum of 10 |
| NFS_USER_GROUPS_HAS_DUPLICATES |
HTTP 409 |
The user with uid 1106390275 has supplementary groups duplicates |
|
Get all NFS Users
| Description |
Get all NFS users Filterable and Sortable fields:id,primary_gsid,primary_gid,sid,supplementary_gids,supplementary_gsids,uid. |
| API Endpoint |
GET api/rest/nfs_users |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"primary_gid": 0,
"uid": 0,
"supplementary_gsids": [],
"supplementary_gids": [],
"primary_gsid": "S-1-5-32-544",
"sid": "S-1-5-21-1556028608-4068708648-2036357603-500",
"id": 669
}
],
"error": null
}
|
| Errors |
| TENANT_NOT_FOUND |
HTTP 404 |
Tenant not found |
|
Get NFS User
| Description |
Return an NFS user by ID
|
| API Endpoint |
GET api/rest/nfs_users/{id} |
| URL Parameters |
|
| Roles |
INFINIDAT,
ADMIN,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"primary_gid": 122222,
"uid": 172866716,
"supplementary_gsids": [
"S-1-5-67890-211",
"S-1-5-67890-212",
"S-1-5-67890-213"
],
"supplementary_gids": [
111,
222,
333
],
"primary_gsid": "S-1-5-67890-400",
"sid": "S-1-5-6694-37",
"id": 670
},
"error": null
}
|
| Errors |
| TENANT_NOT_FOUND |
HTTP 404 |
Tenant not found |
| NFS_USER_NOT_FOUND |
HTTP 404 |
NFS User not found |
|
Remove NFS User
| Description |
Remove an NFS user by ID
|
| API Endpoint |
DELETE api/rest/nfs_users/{id} |
| URL Parameters |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"primary_gid": 122221,
"uid": 1916390059,
"supplementary_gsids": [
"S-1-5-67890-211",
"S-1-5-67890-212",
"S-1-5-67890-213"
],
"supplementary_gids": [
111,
222,
333
],
"primary_gsid": "S-1-5-67890-400",
"sid": "S-1-5-8583-516",
"id": 1087
},
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for TECHNICIAN |
| NFS_USER_NOT_FOUND |
HTTP 404 |
NFS User not found |
| TENANT_NOT_FOUND |
HTTP 404 |
Tenant not found |
| ROOT_NFS_USER_CANNOT_BE_DELETED |
HTTP 409 |
Cannot delete an NFS user whose UID is '0' |
|
Update NFS User Attribute
| Description |
Update an attribute of an NFS user
|
| API Endpoint |
PUT api/rest/nfs_users/{id} |
| URL Parameters |
| id |
long |
ID of the tenant NFS User |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"primary_gid": 122221
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"primary_gid": 122221,
"uid": 1916390059,
"supplementary_gsids": [
"S-1-5-67890-211",
"S-1-5-67890-212",
"S-1-5-67890-213"
],
"supplementary_gids": [
111,
222,
333
],
"primary_gsid": "S-1-5-67890-400",
"sid": "S-1-5-8583-516",
"id": 1087
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('uid') |
| WRONG_PARAMETER |
HTTP 400 |
The value (4294967296) of parameter 'primary_gid' does not meet a condition: 'must be less than or equal to 4294967295' |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for TECHNICIAN |
| NFS_USER_NOT_FOUND |
HTTP 404 |
NFS User not found |
| TENANT_NOT_FOUND |
HTTP 404 |
Tenant not found |
| NFS_USER_GROUPS_HAS_DUPLICATES |
HTTP 409 |
The user with uid 651297237 has supplementary groups duplicates |
| NFS_USER_TO_GROUP_MAPPINGS_LIMIT |
HTTP 409 |
NFS User to group mappings limit reached (6) |
|
Node
Get a Node Drive
| Description |
Get a drive of a node.
|
| API Endpoint |
GET api/rest/components/nodes/{id}/drives/{driveIdx} |
| URL Parameters |
| id |
String |
ID of the node |
| driveIdx |
int |
ID of the drive |
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"state_description": "",
"drive_index": 8,
"vendor": "SAMSUNG",
"last_probe_timestamp": 1709717409000,
"firmware": "JXTC104Q",
"probe_ttl": 1600000,
"node_index": 1,
"wearout": "99",
"state": "OK",
"serial_number": "S6ESNC0W601989",
"model": "MZ7L31T9HBLT-00A07",
"type": "OS",
"id": 8
},
"error": null
}
|
| Errors |
| DRIVE_NOT_FOUND |
HTTP 404 |
Drive not found |
|
Get an Ethernet Port
| Description |
Get an ethernet port.
|
| API Endpoint |
GET api/rest/components/nodes/{id}/eth_ports/{eth} |
| URL Parameters |
| id |
String |
ID of the node |
| eth |
int |
ID of the ethernet port |
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"connection_speed": 10000000000,
"state_description": "",
"ip_v6_netmask": "00:00:00:00:00:00:ff:ff:ff:ff:ff:ff:ff:ff",
"sfp_type": null,
"ip_v4_broadcast": "172.16.66.38",
"link_state": "UP",
"TX_power_low_Warning_THLD_mW": null,
"port_number": 1,
"id": 1,
"sfp_model": null,
"SFP_Voltage_Volt": null,
"laser_RX_power_mW": null,
"firmware": null,
"state": "OK",
"role": "MANAGEMENT",
"TX_power_high_Warning_THLD_mW": null,
"media_type": "copper",
"hw_addr": "b8:ca:3a:5d:03:e8",
"laser_power_level_state": null,
"SFP_Laser_Bias_Current_mA": null,
"vendor": "Intel Corporation",
"last_probe_timestamp": 1390254049000,
"RX_power_low_Warning_THLD_mW": null,
"max_speed": 1000000000,
"laser_TX_power_mW": null,
"ip_v4_netmask": "255.255.224.0",
"laser_power_level_state_description": null,
"probe_ttl": 10000,
"ip_v4_addr": "172.16.66.38",
"name": "eth-data1",
"node_index": 1,
"SFP_Temperature_Deg_C": null,
"system_interface_port_number": 1,
"ip_v6_addr": "00:00:00:00:00:00:fe:80:00:00:00:00:00:00",
"RX_power_high_Warning_THLD_mW": null,
"model": "Ethernet Controller 10 Gigabit X540-AT2"
},
"error": null
}
|
| Errors |
| PORT_NOT_FOUND |
HTTP 404 |
Port not found |
|
Get Ethernet Ports for a Node
| Description |
Get ethernet ports for a node.
|
| API Endpoint |
GET api/rest/components/nodes/{id}/eth_ports |
| URL Parameters |
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 3,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"connection_speed": 10000000000,
"state_description": "",
"ip_v6_netmask": "00:00:00:00:00:00:ff:ff:ff:ff:ff:ff:ff:ff",
"sfp_type": null,
"ip_v4_broadcast": "172.16.66.38",
"link_state": "UP",
"TX_power_low_Warning_THLD_mW": null,
"port_number": 1,
"id": 1,
"sfp_model": null,
"SFP_Voltage_Volt": null,
"laser_RX_power_mW": null,
"firmware": null,
"state": "OK",
"role": "MANAGEMENT",
"TX_power_high_Warning_THLD_mW": null,
"media_type": "copper",
"hw_addr": "b8:ca:3a:5d:03:e8",
"laser_power_level_state": null,
"SFP_Laser_Bias_Current_mA": null,
"vendor": "Intel Corporation",
"last_probe_timestamp": 1390254049000,
"RX_power_low_Warning_THLD_mW": null,
"max_speed": 1000000000,
"laser_TX_power_mW": null,
"ip_v4_netmask": "255.255.224.0",
"laser_power_level_state_description": null,
"probe_ttl": 10000,
"ip_v4_addr": "172.16.66.38",
"name": "eth-data1",
"node_index": 1,
"SFP_Temperature_Deg_C": null,
"system_interface_port_number": 1,
"ip_v6_addr": "00:00:00:00:00:00:fe:80:00:00:00:00:00:00",
"RX_power_high_Warning_THLD_mW": null,
"model": "Ethernet Controller 10 Gigabit X540-AT2"
},
{
"connection_speed": null,
"state_description": "",
"ip_v6_netmask": null,
"sfp_type": "multi_mode",
"ip_v4_broadcast": null,
"link_state": "DOWN",
"TX_power_low_Warning_THLD_mW": "0.3162",
"port_number": 2,
"id": 2,
"sfp_model": "P7D7R",
"SFP_Voltage_Volt": "",
"laser_RX_power_mW": "0.6170",
"firmware": null,
"state": "OK",
"role": "IDRAC",
"TX_power_high_Warning_THLD_mW": "0.7943",
"media_type": null,
"hw_addr": "78:45:C4:F5:AC:D8",
"laser_power_level_state": "OK",
"SFP_Laser_Bias_Current_mA": "8.698",
"vendor": "unknown",
"last_probe_timestamp": 1390254049000,
"RX_power_low_Warning_THLD_mW": "0.0158",
"max_speed": null,
"laser_TX_power_mW": "",
"ip_v4_netmask": "255.255.255.0",
"laser_power_level_state_description": "",
"probe_ttl": 10000,
"ip_v4_addr": "9.151.140.51",
"name": null,
"node_index": 1,
"SFP_Temperature_Deg_C": "27.23",
"system_interface_port_number": 2,
"ip_v6_addr": null,
"RX_power_high_Warning_THLD_mW": "0.7943",
"model": "unknown"
},
{
"connection_speed": 100000000,
"state_description": "",
"ip_v6_netmask": "00:00:00:00:00:00:ff:ff:ff:ff:ff:ff:ff:ff",
"sfp_type": null,
"ip_v4_broadcast": "9.151.140.1",
"link_state": "UNKNOWN",
"TX_power_low_Warning_THLD_mW": null,
"port_number": 3,
"id": 3,
"sfp_model": null,
"SFP_Voltage_Volt": null,
"laser_RX_power_mW": null,
"firmware": null,
"state": "OK",
"role": "INTERNAL",
"TX_power_high_Warning_THLD_mW": null,
"media_type": "optics",
"hw_addr": "b8:ca:3a:5d:03:ea",
"laser_power_level_state": null,
"SFP_Laser_Bias_Current_mA": null,
"vendor": "Intel Corporation",
"last_probe_timestamp": 1390254049000,
"RX_power_low_Warning_THLD_mW": null,
"max_speed": 1000000000,
"laser_TX_power_mW": null,
"ip_v4_netmask": "255.255.255.0",
"laser_power_level_state_description": null,
"probe_ttl": 10000,
"ip_v4_addr": "9.151.140.1",
"name": null,
"node_index": 1,
"SFP_Temperature_Deg_C": null,
"system_interface_port_number": 3,
"ip_v6_addr": "00:00:00:00:00:00:fe:80:00:00:00:00:00:00",
"RX_power_high_Warning_THLD_mW": null,
"model": "Ethernet Controller 10 Gigabit X540-AT2"
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Ib Port
| Description |
Return Ib port by id
|
| API Endpoint |
GET api/rest/components/nodes/{id}/ib_ports/{ib} |
| URL Parameters |
| id |
String |
ID of the node |
| ib |
int |
ID of the ethernet port |
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"state_description": "",
"vendor": "Mellanox Technologies",
"last_probe_timestamp": 1423056722000,
"firmware": "2.31.5050",
"probe_ttl": 15000,
"node_index": 1,
"link_state": "UP",
"state": "OK",
"model": "MT27500 Family [ConnectX-3]",
"id": 1,
"link_layer": "InfiniBand"
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Ib Ports
| Description |
Return Ib ports for a node
|
| API Endpoint |
GET api/rest/components/nodes/{id}/ib_ports |
| URL Parameters |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Get Node Drives
| Description |
Get drives of a node.
|
| API Endpoint |
GET api/rest/components/nodes/{id}/drives |
| URL Parameters |
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 8,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"state_description": "[]",
"drive_index": 1,
"vendor": "[]",
"last_probe_timestamp": 0,
"firmware": "[]",
"probe_ttl": null,
"node_index": 1,
"wearout": "[]",
"state": "[]",
"serial_number": "[]",
"model": "[]",
"type": "OS",
"id": 1
},
{
"state_description": "[]",
"drive_index": 2,
"vendor": "[]",
"last_probe_timestamp": 0,
"firmware": "[]",
"probe_ttl": null,
"node_index": 1,
"wearout": "[]",
"state": "[]",
"serial_number": "[]",
"model": "[]",
"type": "OS",
"id": 2
},
{
"state_description": "[]",
"drive_index": 3,
"vendor": "[]",
"last_probe_timestamp": 0,
"firmware": "[]",
"probe_ttl": null,
"node_index": 1,
"wearout": "[]",
"state": "[]",
"serial_number": "[]",
"model": "[]",
"type": "OS",
"id": 3
},
{
"state_description": "[]",
"drive_index": 4,
"vendor": "[]",
"last_probe_timestamp": 0,
"firmware": "[]",
"probe_ttl": null,
"node_index": 1,
"wearout": "[]",
"state": "[]",
"serial_number": "[]",
"model": "[]",
"type": "OS",
"id": 4
},
{
"state_description": "[]",
"drive_index": 5,
"vendor": "[]",
"last_probe_timestamp": 0,
"firmware": "[]",
"probe_ttl": null,
"node_index": 1,
"wearout": "[]",
"state": "[]",
"serial_number": "[]",
"model": "[]",
"type": "OS",
"id": 5
},
{
"state_description": "[]",
"drive_index": 6,
"vendor": "[]",
"last_probe_timestamp": 0,
"firmware": "[]",
"probe_ttl": null,
"node_index": 1,
"wearout": "[]",
"state": "[]",
"serial_number": "[]",
"model": "[]",
"type": "OS",
"id": 6
},
{
"state_description": "[]",
"drive_index": 7,
"vendor": "[]",
"last_probe_timestamp": 0,
"firmware": "[]",
"probe_ttl": null,
"node_index": 1,
"wearout": "[]",
"state": "[]",
"serial_number": "[]",
"model": "[]",
"type": "OS",
"id": 7
},
{
"state_description": "[]",
"drive_index": 8,
"vendor": "[]",
"last_probe_timestamp": 0,
"firmware": "[]",
"probe_ttl": null,
"node_index": 1,
"wearout": "[]",
"state": "[]",
"serial_number": "[]",
"model": "[]",
"type": "OS",
"id": 8
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Pg
| Description |
Return pgs port by id
|
| API Endpoint |
GET api/rest/components/nodes/{id}/pgs/{pg} |
| URL Parameters |
| id |
String |
ID of the node |
| pg |
int |
ID of the port |
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
|
| Errors |
| INTERFACE_NOT_FOUND |
HTTP 404 |
Invalid interface ID |
|
Get Pgs
| Description |
Return pgs ports for a node
|
| API Endpoint |
GET api/rest/components/nodes/{id}/pgs |
| URL Parameters |
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"hw_addr": "00:50:56:99:76:6b",
"state_description": "",
"ip_v4_broadcast": null,
"vendor": "unknown",
"name": "tali",
"ip_v6_netmask": "ffff:ffff:ffff:ffff::",
"last_probe_timestamp": 1436436797000,
"firmware": "",
"probe_ttl": 10000,
"node_index": 1,
"state": "OK",
"role": "PG",
"ip_v4_netmask": null,
"ip_v6_addr": "fe80::250:56ff:fe99:766b%tali",
"ip_v4_addr": null,
"model": "Port-Group Master with slaves: eth-data1 eth-data2",
"id": 1,
"connection_speed": null,
"system_interface_port_number": 1
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Rack Node by ID
| Description |
Return node by id
|
| API Endpoint |
GET api/rest/components/nodes/{id} |
| URL Parameters |
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"state_description": "",
"bios.state": "OK",
"protecting_bbu": 3,
"pgs": [
{
"hw_addr": "00:50:56:99:76:6b",
"state_description": "",
"ip_v4_broadcast": null,
"vendor": "unknown",
"name": "tali",
"ip_v6_netmask": "ffff:ffff:ffff:ffff::",
"last_probe_timestamp": 1436436797000,
"firmware": "",
"probe_ttl": 10000,
"node_index": 1,
"state": "OK",
"role": "PG",
"ip_v4_netmask": null,
"ip_v6_addr": "fe80::250:56ff:fe99:766b%tali",
"ip_v4_addr": null,
"model": "Port-Group Master with slaves: eth-data1 eth-data2",
"id": 1,
"connection_speed": null,
"system_interface_port_number": 1
}
],
"id": 1,
"firmware": "",
"probe_ttl": 60000,
"state": "PHASING_IN",
"ntp.state_description": "",
"connectivity_status": {
"eth_switches": [
"UP"
],
"pdu": [
"UP",
"UP"
],
"bbu": [
{
"state_description": "",
"state": "OK"
},
{
"state_description": "",
"state": "OK"
},
{
"state_description": "",
"state": "OK"
}
],
"enclosures": [
"UP",
"UP"
],
"support_appliances": [
"UP"
]
},
"vendor": "Dell",
"power": 0.0,
... TRUNCATED ...
|
| Errors |
| ILLEGAL_NODE_ID |
HTTP 404 |
Illegal node ID 0. Legal values 1 |
|
Get the Rack Nodes
| Description |
Get the rack’s nodes.
|
| API Endpoint |
GET api/rest/components/nodes/ |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"state_description": null,
"bios.state": null,
"protecting_bbu": 1,
"pgs": [],
"id": 1,
"firmware": "",
"probe_ttl": 60000,
"state": "PHASING_IN",
"ntp.state_description": null,
"connectivity_status": {
"eth_switches": [],
"pdu": [],
"bbu": [],
"enclosures": [
"UNKNOWN",
"UNKNOWN",
"UNKNOWN",
"UNKNOWN",
"UNKNOWN",
"UNKNOWN",
"UNKNOWN",
"UNKNOWN"
],
"support_appliances": []
},
"vendor": "Dell",
"power": 0.0,
"last_probe_timestamp": 0,
"drives": [
{
"state_description": "",
"drive_index": 1,
"vendor": null,
"last_probe_timestamp": 0,
"firmware": "N/A",
"probe_ttl": 1600000,
"node_index": 1,
"wearout": null,
"state": "UNKNOWN",
"serial_number": null,
"model": null,
"type": "OS",
"id": 1
},
{
"state_description": "",
"drive_index": 2,
"vendor": null,
"last_probe_timestamp": 0,
"firmware": "N/A",
"probe_ttl": 1600000,
"node_index": 1,
"wearout": null,
... TRUNCATED ...
|
| Errors |
See general list of error codes.
|
Phase In Node
| Description |
Phase in node by id
|
| API Endpoint |
POST api/rest/components/nodes/{id}/phase_in |
| URL Parameters |
|
| Roles |
INFINIDAT,
TECHNICIAN
|
| System States |
ACTIVE
|
| JSON Data |
none
|
| Returns |
|
| Errors |
| ILLEGAL_NODE_STATE |
HTTP 409 |
Operation PHASE_IN cannot be executed on node-1 when in state PHASING_IN |
| NODE_ACTIVATION_FAILED |
HTTP 409 |
Node 1 activation failed |
| TPM_MISSING_FOR_ACTIVATION |
HTTP 409 |
TPM module is missing from node 1, this node can't be activated while the system is in FIPS mode. |
| NODE_SECURITY_MODE_MISMATCH |
HTTP 409 |
Node 1 could not be activated due to a security mode mismatch. Reason: General error occurred |
|
Phase Out Node
| Description |
Phase out node by id
|
| Approval required |
This is a dangerous operation
Deactivating node 'nodeName' may lead to a degradation in system performance and resiliency
|
| API Endpoint |
POST api/rest/components/nodes/{id}/phase_out |
| URL Parameters |
| id |
String |
ID of the node |
| approved |
boolean |
|
|
| Roles |
INFINIDAT,
TECHNICIAN
|
| System States |
ACTIVE
|
| JSON Data |
none
|
| Returns |
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Deactivating node 'node-1' may lead to a degradation in system performance and resiliency |
| ILLEGAL_NODE_STATE |
HTTP 409 |
Operation PHASE_OUT cannot be executed on node-1 when in state PHASING_IN |
|
Notification
Get Protocols
| Description |
Get a list of all supported protocols
|
| API Endpoint |
GET api/rest/notifications/protocols |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 3,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
"SNMP",
"SMTP",
"SYSLOG"
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Test
| Description |
Test the validity notification target settings
|
| API Endpoint |
POST api/rest/notifications/test-target |
| URL Parameters |
none
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Notification Rule
Create Notification Rule
| Description |
Create a new notification rule.
|
| API Endpoint |
POST api/rest/notifications/rules |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"exclude_events": [
"CLUSTER_MAPPED",
"CLUSTER_RENAMED"
],
"event_level": [
"CRITICAL",
"ERROR"
],
"name": "auto-filter_sort_-f82776f8",
"target_id": 2831,
"include_events": [
"VOLUME_RESIZED",
"VOLUME_RESTORED"
],
"event_visibility": []
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"exclude_events": [
"CLUSTER_MAPPED",
"CLUSTER_RENAMED"
],
"event_code": null,
"event_level": [
"CRITICAL",
"ERROR"
],
"name": "auto-filter_sort_-f82776f8",
"target_parameters": {},
"target_id": 2831,
"include_events": [
"VOLUME_RESTORED",
"VOLUME_RESIZED"
],
"event_visibility": [],
"id": 2832
},
"error": null
}
|
| Errors |
| WRONG_PARAMETER |
HTTP 400 |
The value (null) of parameter 'exclude_events' does not meet a condition: 'may not be null' |
| MISSING_FIELD |
HTTP 400 |
A field ('target_parameters.recipients') is missing in an object passed |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('target_parameters.recipients') |
| EMAIL_INVALID_RECIPIENT |
HTTP 400 |
Invalid email address: 'not an email address' |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('target_parameters.recipients') could not be translated to an expected type |
| NOTIFICATION_RULE_EVENT_FORBIDDEN |
HTTP 403 |
The event 'NOTIFICATION_TARGET_UNAVAILABLE' cannot be used in notification rules |
| NOTIFICATION_RULE_VISIBILITY_FORBIDDEN |
HTTP 403 |
The notification target is visible by all users |
| NOTIFICATION_TARGET_NOT_FOUND |
HTTP 404 |
Notification target not found |
| EMAIL_NOT_ALLOWED_FOR_NOTIFICATION |
HTTP 409 |
support@infinidat.com cannot be used for event notifications. Enter an email address monitored by your system administrators |
| EMAIL_RULE_NO_RECIPIENTS |
HTTP 409 |
Notification rule must have at least one recipient |
| INCLUDE_EXCLUDE_EVENTS_COUNT_LIMIT |
HTTP 409 |
The notification rule cannot be created as the maximum number of included and/or excluded event was exceeded |
| ILLEGAL_NOTIFICATION_RULE_DATA |
HTTP 409 |
Illegal notification rule data: At least one of the following fields must not be empty: 'event_code', 'event_level', 'include_events' |
| NOTIFICATION_RULE_NAME_CONFLICT |
HTTP 409 |
A notification rule with this name already exists |
| NOTIFICATION_RULES_COUNT_LIMIT |
HTTP 409 |
Notification rules count has reached the limit of 2 |
| NOTIFICATION_RULE_TARGET_NOT_APPLICABLE |
HTTP 409 |
Notification rule cannot be applied to an Infinidat target |
|
Delete a Notification Rule
| Description |
Delete a notification rule.
|
| Approval required |
This is a dangerous operation
Deleting event rule 'event_rule' will stop this event from sending alerts to mail / SNMP recipients
|
| API Endpoint |
DELETE api/rest/notifications/rules/{id} |
| URL Parameters |
| id |
long |
The entity id of the rule |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"exclude_events": [
"CLUSTER_MAPPED",
"CLUSTER_RENAMED"
],
"event_code": null,
"event_level": [
"ERROR",
"CRITICAL"
],
"name": "syslog-rule1",
"target_parameters": {},
"target_id": 5542,
"include_events": [
"VOLUME_RESIZED",
"VOLUME_RESTORED"
],
"event_visibility": [],
"id": 5543
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting event rule 'syslog-rule1' will stop this event from sending alerts to mail / SNMP recipients |
| NOTIFICATION_RULE_NOT_FOUND |
HTTP 404 |
Notification rule not found |
|
Get a Notification Rule
| Description |
Get a notification rule by its ID.
|
| API Endpoint |
GET api/rest/notifications/rules/{id} |
| URL Parameters |
| id |
long |
The entity id of the rule |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"exclude_events": [
"CLUSTER_MAPPED",
"CLUSTER_RENAMED"
],
"event_code": null,
"event_level": [
"CRITICAL"
],
"name": "syslog-rule1",
"target_parameters": {},
"target_id": 4942,
"include_events": [
"VOLUME_RESIZED",
"VOLUME_RESTORED"
],
"event_visibility": [],
"id": 4943
},
"error": null
}
|
| Errors |
| NOTIFICATION_RULE_NOT_FOUND |
HTTP 404 |
Notification rule not found |
|
Get the Notification Rules
| Description |
Get the notification rules that are defined in the InfiniBox. Filterable and Sortable fields:event_code,event_level,event_visibility,exclude_events,id,include_events,name. |
| API Endpoint |
GET api/rest/notifications/rules |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 4,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"exclude_events": [],
"event_code": null,
"event_level": [
"CRITICAL",
"WARNING",
"ERROR"
],
"name": "default-infinidat-rule",
"target_parameters": {
"recipients": [
"callhome@infinidat.com"
]
},
"target_id": 2813,
"include_events": [],
"event_visibility": [
"INFINIDAT"
],
"id": 2815
},
{
"exclude_events": [],
"event_code": "HEARTBEAT",
"event_level": [],
"name": "heartbeat-infinidat-rule",
"target_parameters": {
"recipients": [
"callhome@infinidat.com"
]
},
"target_id": 2813,
"include_events": [
"HPT_HEARTBEAT",
"SYSTEM_SENSORS",
"INFINIMETRICS_HEARTBEAT",
"SA_HARDWARE_COLLECTOR",
"SYSTEM_METADATA",
"DRIVES_PHY_MONITOR",
"ECOSYSTEM_TOOLS_HEARTBEAT",
"HEARTBEAT",
"TEMPERATURE_STATS"
],
"event_visibility": [
"INFINIDAT"
],
"id": 2816
},
{
"exclude_events": [
"CLUSTER_MAPPED",
"CLUSTER_RENAMED"
],
"event_code": null,
"event_level": [
"CRITICAL",
"ERROR"
],
"name": "auto-syslog-rule1-3b1b9194",
"target_parameters": {},
"target_id": 2831,
"include_events": [
"VOLUME_RESIZED",
"VOLUME_RESTORED"
],
"event_visibility": [],
"id": 2833
},
{
"exclude_events": [
"CLUSTER_MAPPED",
"CLUSTER_RENAMED"
],
"event_code": null,
"event_level": [
"CRITICAL",
"ERROR"
],
"name": "auto-syslog-rule2-5aa157e7",
"target_parameters": {},
"target_id": 2831,
"include_events": [
"VOLUME_RESIZED",
"VOLUME_RESTORED"
],
"event_visibility": [],
"id": 2834
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Update a Notification Rule Attribute
| Description |
Update an attribute of the notification rule.
|
| API Endpoint |
PUT api/rest/notifications/rules/{id} |
| URL Parameters |
| id |
long |
The entity id of the rule |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"target_id": 4902
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"exclude_events": [
"CLUSTER_MAPPED",
"CLUSTER_RENAMED"
],
"event_code": null,
"event_level": [
"CRITICAL"
],
"name": "syslog-rule1",
"target_parameters": {},
"target_id": 4942,
"include_events": [
"VOLUME_RESIZED",
"VOLUME_RESTORED"
],
"event_visibility": [],
"id": 4943
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('target_parameters.foo') |
| EMAIL_INVALID_RECIPIENT |
HTTP 400 |
Invalid email address: 'not an email address' |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('target_parameters.recipients') could not be translated to an expected type |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| MISSING_FIELD |
HTTP 400 |
A field ('target_parameters.recipients') is missing in an object passed |
| NOTIFICATION_RULE_VISIBILITY_FORBIDDEN |
HTTP 403 |
The notification target is visible by all users |
| NOTIFICATION_RULE_NOT_FOUND |
HTTP 404 |
Notification rule not found |
| EMAIL_RULE_NO_RECIPIENTS |
HTTP 409 |
Notification rule must have at least one recipient |
| ILLEGAL_NOTIFICATION_RULE_DATA |
HTTP 409 |
Illegal notification rule data: A notification rule cannot both include and exclude the same event |
| INCLUDE_EXCLUDE_EVENTS_COUNT_LIMIT |
HTTP 409 |
The notification rule cannot be created as the maximum number of included and/or excluded event was exceeded |
|
Notification Target
Create a Notification Target
| Description |
Create a notification target.
|
| API Endpoint |
POST api/rest/notifications/targets |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"protocol": "SYSLOG",
"name": "syslog",
"facility": "LOCAL7",
"visibility": "CUSTOMER",
"id": 0,
"host": "ubuntu-ubuntu",
"port": 1521,
"transport": "UDP"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"protocol": "SYSLOG",
"name": "syslog",
"facility": "LOCAL7",
"visibility": "CUSTOMER",
"id": 3281,
"host": "ubuntu-ubuntu",
"port": 1521,
"transport": "UDP"
},
"error": null
}
|
| Errors |
| INVALID_PASSWORD |
HTTP 400 |
Password length must be between 1 and 32 characters |
| MISSING_FIELD |
HTTP 400 |
A field ('authProtocol') is missing in an object passed |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
| WRONG_PARAMETER |
HTTP 400 |
The value (DfNlEApylLAhfGVsHuOjJGiefcyKNkEVtwCmqcmavsmMXqxrtjXjHIkOqoXQuWUINwFBcyABYWuQhYmWphvqsMQPUNcTodIeuNlXssjPwyvJibFPGwqFHlcwlYGUkfVsSpjKJttlxebXRLUrDpqsmsliCvyEtyyLELnFEhhHWFRYQRPcGtoYaXaBacBpMyUSJXMayJAvBkWhTWBRjsdHYQJprQVNXunYfflNOmXFuTuhyDOCTUhXUmYtAvKxxHflIoLxYbboQKVcfTyQHFhbOgjILlBATVhYPbMfpANvYaee.com) of parameter 'host' does not meet a condition: 'size must be between 3 and 255' |
| NOTIFICATION_TARGET_CONFLICT |
HTTP 409 |
A Notification Target SNMP with host 'abc' and port 8080 already exists |
| NOTIFICATION_TARGET_NAME_CONFLICT |
HTTP 409 |
A Notification Target with this name already exists |
| NOTIFICATION_TARGET_NOT_APPLICABLE |
HTTP 409 |
User not authorized to perform Infinidat target related operations |
| SMTP_TARGET_CREATE_NOT_ALLOWED |
HTTP 409 |
Creating a new SMTP target is not allowed |
| NOTIFICATION_TARGETS_COUNT_LIMIT |
HTTP 409 |
Notification targets count has reached the limit of 2 |
|
Delete a Notification Target
| Description |
Delete a notification target
|
| Approval required |
This is a dangerous operation
Deleting Syslog server 'syslog_server' will stop all logs from being sent to this host
|
| API Endpoint |
DELETE api/rest/notifications/targets/{id} |
| URL Parameters |
| id |
long |
ID of the notification target |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"username": null,
"engine": null,
"protocol": "SNMP",
"name": "target1",
"private_protocol": null,
"visibility": "INFINIDAT",
"id": 8888,
"auth_protocol": null,
"host": "abc",
"version": "SNMPV2C",
"community": null,
"auth_type": "NOAUTHNOPRIV",
"port": 8080
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting Syslog server 'auto-syslog-host-378f293a-' will stop all logs from being sent to this host |
| NOTIFICATION_TARGET_ACTIVE |
HTTP 403 |
Notification target 'target1' cannot be deleted because it is used by notification rules |
| NOTIFICATION_TARGET_NOT_FOUND |
HTTP 404 |
Notification target not found |
| SMTP_TARGET_DELETE_NOT_ALLOWED |
HTTP 409 |
Deleting an SMTP target is not allowed |
| NOTIFICATION_TARGET_NOT_APPLICABLE |
HTTP 409 |
User not authorized to perform Infinidat target related operations |
|
Get a Notification Target
| Description |
Get a notification target.
|
| API Endpoint |
GET api/rest/notifications/targets/{id} |
| URL Parameters |
| id |
long |
ID of the notification target |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"protocol": "SYSLOG",
"name": "target1",
"facility": "LOCAL7",
"visibility": "CUSTOMER",
"id": 5542,
"host": "auto-syslog-host-54012d71-",
"port": 8080,
"transport": "TCP"
},
"error": null
}
|
| Errors |
| NOTIFICATION_TARGET_NOT_FOUND |
HTTP 404 |
Notification target not found |
| NOTIFICATION_TARGET_NOT_APPLICABLE |
HTTP 409 |
User not authorized to perform Infinidat target related operations |
|
Get Notification Targets
| Description |
Get all of the notification targets in the system. Filterable and Sortable fields:host,id,name,port,protocol,visibility. |
| API Endpoint |
GET api/rest/notifications/targets |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 2,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"protocol": "SYSLOG",
"name": "auto-syslog-target-e267aae",
"facility": "LOCAL7",
"visibility": "CUSTOMER",
"id": 1962,
"host": "auto-syslog-host-d10fd444-",
"port": 8080,
"transport": "TCP"
},
{
"protocol": "SYSLOG",
"name": "auto-syslog-target-4259f7e",
"facility": "LOCAL7",
"visibility": "CUSTOMER",
"id": 1963,
"host": "auto-syslog-host-614745d0-",
"port": 8080,
"transport": "TCP"
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Testing the Notification Target After Creating It
| Description |
Test the notification target by sending a dummy event.
|
| API Endpoint |
POST api/rest/notifications/targets/{id}/test |
| URL Parameters |
| id |
long |
ID of the notification target |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"r": "a@b.com"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": true,
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('target_parameters.recipients') could not be translated to an expected type |
| EMAIL_INVALID_RECIPIENT |
HTTP 400 |
Invalid email address: 'aaaa' |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('target_parameters.r') |
| MISSING_FIELD |
HTTP 400 |
A field ('target_parameters.recipients') is missing in an object passed |
| EMAIL_NOT_ALLOWED_FOR_NOTIFICATION |
HTTP 409 |
support@infinidat.com cannot be used for event notifications. Enter an email address monitored by your system administrators |
|
Testing the Notification Target Before Creating It
| Description |
Test the notification target by sending a dummy event.
|
| API Endpoint |
POST api/rest/notifications/targets/test |
| URL Parameters |
none
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Update a Notification Target Attribute
| Description |
Update the attributes of a notification target.
|
| API Endpoint |
PUT api/rest/notifications/targets/{id} |
| URL Parameters |
| id |
long |
ID of the notification target |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"host": "FErnueBPSVjaCFBmaSyhRIUgJuBjgUiLiLyJGJkprdNYUJxyfJURoUNNhMsowXbVBGywJNFLITILKoLSmLxcrMEdNQmyMbYvdmNeadwLBlPeVwukWvDYIKdtHxTygRomYumyPRkLdvjpmsWdjbTbpvHbnjlgqLxHAbNSSKQDNDpifPMDJhSIexuJJhuYPpjAbhGSkPcJvLBEfHPPxftKRKHvnypQJeuVmvvgXUHFPGemkXYnoOrdBDUdUNCHRiTrmqrPfptypAmhUTfMCpQrBWRjVGEjXqmruQufemKRbLxM.com"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"protocol": "SYSLOG",
"name": "syslog-target1",
"facility": "LOCAL7",
"visibility": "CUSTOMER",
"id": 8792,
"host": "syslog.infinidat.com",
"port": 8080,
"transport": "TCP"
},
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('transport') could not be translated to an expected type |
| WRONG_PARAMETER |
HTTP 400 |
The value (FErnueBPSVjaCFBmaSyhRIUgJuBjgUiLiLyJGJkprdNYUJxyfJURoUNNhMsowXbVBGywJNFLITILKoLSmLxcrMEdNQmyMbYvdmNeadwLBlPeVwukWvDYIKdtHxTygRomYumyPRkLdvjpmsWdjbTbpvHbnjlgqLxHAbNSSKQDNDpifPMDJhSIexuJJhuYPpjAbhGSkPcJvLBEfHPPxftKRKHvnypQJeuVmvvgXUHFPGemkXYnoOrdBDUdUNCHRiTrmqrPfptypAmhUTfMCpQrBWRjVGEjXqmruQufemKRbLxM.com) of parameter 'host' does not meet a condition: 'size must be between 3 and 255' |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('protocol') |
| UPDATE_SNMP_VERSION |
HTTP 400 |
Updating the SNMP target version is not allowed. Delete the target and create a new one |
| INVALID_PARAMETER_LENGTH |
HTTP 400 |
Parameter ('subject_prefix') length must be between 0 and 255 characters. Actual: 256 |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| NOTIFICATION_TARGET_CONFLICT |
HTTP 409 |
A Notification Target SNMP with host 'abc' and port 8080 already exists |
| NOTIFICATION_TARGET_NAME_CONFLICT |
HTTP 409 |
A Notification Target with this name already exists |
|
Update Notification Target Entity
| Description |
Update multiple attributes of a notification target
|
| API Endpoint |
POST api/rest/notifications/targets/{id}/update_entity |
| URL Parameters |
| id |
long |
ID of the notification target |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"host": "new-host-name",
"name": "target-new-name",
"port": 8081
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"username": "username",
"engine": null,
"protocol": "SNMP",
"name": "target-new-name",
"private_protocol": null,
"visibility": "CUSTOMER",
"id": 8773,
"auth_protocol": null,
"host": "new-host-name",
"version": "SNMPV2C",
"community": null,
"auth_type": null,
"port": 8081
},
"error": null
}
|
| Errors |
| WRONG_PARAMETER |
HTTP 400 |
The value (*********************************************************************************************************************************) of parameter 'password' does not meet a condition: 'size must be between 0 and 128' |
| UPDATE_SNMP_VERSION |
HTTP 400 |
Updating the SNMP target version is not allowed. Delete the target and create a new one |
| NOTIFICATION_TARGET_CONFLICT |
HTTP 409 |
A Notification Target SNMP with host 'snmp-host' and port 8080 already exists |
|
Pool
Create a Pool
| Description |
Create a new pool.
|
| API Endpoint |
POST api/rest/pools |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"virtual_capacity": 1000000000000,
"max_extend": -1,
"name": "auto-pool--649215cf-6e7e-4",
"physical_capacity": 1000000000000
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"non_reducible_host_written_data": null,
"host_written_data": null,
"standard_entities_count": 0,
"updated_at": 1774519016172,
"standard_filesystem_snapshots_count": 0,
"standard_snapshots_count": 0,
"max_extend": -1,
"free_virtual_space": 1000000192512,
"volumes_count": 0,
"allocated_physical_space": 0,
"fs_used_default_critical": 100,
"non_reducible_data_reduction_ratio": null,
"id": 1000,
"reserved_capacity": 100000000000,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"s3_buckets_count": 0,
"standard_filesystems_count": 0,
"non_reducible_data_percents": null,
"reducible_data_reduction_ratio": null,
"vvol_entities_count": 0,
"snapshots_count": 0,
"state": "NORMAL",
"tenant_id": 1,
"fs_used_default_warning": 100,
"type": "STANDARD",
"free_physical_space": 1000000192512,
"data_reduction_ratio": 1.0,
"total_disk_usage": null,
"filesystems_count": 0,
"reducible_data_disk_usage_capacity": null,
"vvol_snapshots_count": 0,
"s3_bound": false,
"thin_capacity_savings": null,
"zeros_capacity": null,
"entities_count": 0,
"physical_capacity_critical": 90,
"standard_volumes_count": 0,
"internal_entities_count": null,
"reducible_host_written_data": null,
"owners": [],
"vvol_volumes_count": 0,
"capacity_savings": null,
"name": "auto-pool--649215cf-6e7e-4",
"virtual_capacity": 1000000192512,
"allocated_internal_physical_space": 0,
"created_at": 1774519016172,
"filesystem_snapshots_count": 0,
"compression_enabled": true,
"qos_policies": [],
"physical_capacity_warning": 80,
"physical_capacity": 1000000192512,
"thick_capacity_savings": null
},
"error": null
}
|
| Errors |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'auto-invalid*name-693da69b' |
| MISSING_FIELD |
HTTP 400 |
A field ('physical_capacity') is missing in an object passed |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('fs_used_default_warning') for S3 type pool |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('physical_capacity') could not be translated to an expected type |
| ILLEGAL_THRESHOLD_VALUE |
HTTP 400 |
Illegal threshold value: 101 |
| WRONG_PARAMETER |
HTTP 400 |
The value (-2) of parameter 'max_extend' does not meet a condition: 'greater or equals -1' |
| USER_NOT_FOUND |
HTTP 404 |
User not found |
| TENANT_NOT_FOUND |
HTTP 404 |
Tenant not found |
| S3_FEATURE_NOT_ENABLED |
HTTP 409 |
This operation cannot be completed because the S3-Compatible Object Storage feature is not enabled |
| SET_VIRTUAL_CAPACITY_S3_POOL_NOT_ALLOWED |
HTTP 409 |
An S3 pool cannot have a virtual capacity |
| ILLEGAL_POOL_CAPACITY |
HTTP 409 |
The requested capacity is not allowed. Reason: Pool size is not aligned with integral units of 512. Wrong capacity value: 1000GB |
| ILLEGAL_POOL_ADMIN |
HTTP 409 |
A non-POOL_ADMIN user cannot be assigned as a pool admin |
| S3_POOL_SET_UNLIMITED_EMERGENCY_BUFFER_NOT_ALLOWED |
HTTP 409 |
An S3 pool cannot have an unlimited emergency buffer |
| POOL_NAME_CONFLICT |
HTTP 409 |
An entity with this name already exists |
| ILLEGAL_WARNING_OR_CRITICAL_VALUE |
HTTP 409 |
Illegal value 90. Critical value (75) must be greater than warning value (90) |
| POOL_COUNT_LIMIT |
HTTP 409 |
Pool cannot be created as the maximum number of pools exceeded |
| SYSTEM_VIRTUAL_CAPACITY |
HTTP 409 |
Used virtual space reached system virtual capacity |
|
Delete a Pool
| Description |
Delete a pool.
|
| Approval required |
This is a dangerous operation
Deleting pool 'pool_name' might prevent the pool's administrator from creating new datasets
|
| API Endpoint |
DELETE api/rest/pools/{id} |
| URL Parameters |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"non_reducible_host_written_data": null,
"host_written_data": null,
"standard_entities_count": 0,
"updated_at": 1774519019824,
"standard_filesystem_snapshots_count": 0,
"standard_snapshots_count": 0,
"max_extend": -1,
"free_virtual_space": 1000000192512,
"volumes_count": 0,
"allocated_physical_space": 0,
"fs_used_default_critical": 100,
"non_reducible_data_reduction_ratio": null,
"id": 1000,
"reserved_capacity": 100000000000,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"s3_buckets_count": 0,
"standard_filesystems_count": 0,
"non_reducible_data_percents": null,
"reducible_data_reduction_ratio": null,
"vvol_entities_count": 0,
"snapshots_count": 0,
"state": "NORMAL",
"tenant_id": 1,
"fs_used_default_warning": 100,
"type": "STANDARD",
"free_physical_space": 1000000192512,
"data_reduction_ratio": 1.0,
"total_disk_usage": null,
"filesystems_count": 0,
"reducible_data_disk_usage_capacity": null,
"vvol_snapshots_count": 0,
"s3_bound": false,
"thin_capacity_savings": null,
"zeros_capacity": null,
"entities_count": 0,
"physical_capacity_critical": 90,
"standard_volumes_count": 0,
"internal_entities_count": null,
"reducible_host_written_data": null,
"owners": [],
"vvol_volumes_count": 0,
"capacity_savings": null,
"name": "auto-pool--c22db753-0f1e-4",
"virtual_capacity": 1000000192512,
"allocated_internal_physical_space": 0,
"created_at": 1774519019824,
"filesystem_snapshots_count": 0,
"compression_enabled": true,
"qos_policies": [],
"physical_capacity_warning": 80,
"physical_capacity": 1000000192512,
"thick_capacity_savings": null
},
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting pool 'auto-pool--32c5e041-57d6-4' might prevent the pool's administrator from creating new datasets |
| POOL_NOT_FOUND |
HTTP 404 |
Pool not found |
| S3_POOL_DELETE_WITH_ACCOUNT_NOT_ALLOWED |
HTTP 409 |
S3 pool 's3pool1' cannot be deleted because it is associated with S3 account 's3account1' |
| POOL_NOT_EMPTY |
HTTP 409 |
Pool is not empty |
| POOL_HAS_CG |
HTTP 409 |
Pool has consistency groups |
| POOL_HAS_RG |
HTTP 409 |
Pool has replication groups |
|
Get a Pool
| Description |
Get a pool.
|
| API Endpoint |
GET api/rest/pools/{id} |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"non_reducible_host_written_data": null,
"host_written_data": null,
"standard_entities_count": 1,
"updated_at": 1774519023852,
"standard_filesystem_snapshots_count": 0,
"standard_snapshots_count": 0,
"max_extend": -1,
"free_virtual_space": 327680,
"volumes_count": 1,
"allocated_physical_space": 0,
"fs_used_default_critical": 100,
"non_reducible_data_reduction_ratio": null,
"id": 1000,
"reserved_capacity": 100000000000,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"s3_buckets_count": 0,
"standard_filesystems_count": 0,
"non_reducible_data_percents": null,
"reducible_data_reduction_ratio": null,
"vvol_entities_count": 0,
"snapshots_count": 0,
"state": "NORMAL",
"tenant_id": 1,
"fs_used_default_warning": 100,
"type": "STANDARD",
"free_physical_space": 1000000192512,
"data_reduction_ratio": 1.0,
"total_disk_usage": null,
"filesystems_count": 0,
"reducible_data_disk_usage_capacity": null,
"vvol_snapshots_count": 0,
"s3_bound": false,
"thin_capacity_savings": null,
"zeros_capacity": null,
"entities_count": 1,
"physical_capacity_critical": 90,
"standard_volumes_count": 1,
"internal_entities_count": null,
"reducible_host_written_data": null,
"owners": [],
"vvol_volumes_count": 0,
"capacity_savings": null,
"name": "auto-pool--dce1e4ba-1773-4",
"virtual_capacity": 2000000385024,
"allocated_internal_physical_space": 0,
"created_at": 1774519023852,
"filesystem_snapshots_count": 0,
"compression_enabled": true,
"qos_policies": [],
"physical_capacity_warning": 80,
"physical_capacity": 1000000192512,
"thick_capacity_savings": null
},
"error": null
}
|
| Errors |
| POOL_NOT_FOUND |
HTTP 404 |
Pool not found |
|
Get a Pool Attribute
| Description |
Get an attribute of a pool.
|
| API Endpoint |
GET api/rest/pools/{id}/{attribute} |
| URL Parameters |
| id |
long |
ID of the pool |
| attribute |
String |
The name of the attribute to return |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
2782
],
"error": null
}
|
| Errors |
| ATTRIBUTE_NOT_FOUND |
HTTP 404 |
Attribute not found: 'nonExisting' |
| POOL_NOT_FOUND |
HTTP 404 |
Pool not found |
|
Get all Pools
| Description |
Get all of the pools. Filterable and Sortable fields:compression_enabled,created_at,fs_used_default_critical,fs_used_default_warning,id,name,ssd_enabled,type,updated_at. Filterable only fields:reducible_data_percents,reducible_data_reduction_ratio. |
| API Endpoint |
GET api/rest/pools |
| URL Parameters |
| include_data_reduction_hist |
boolean |
Show the effective capacity histogram and reserve fields |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"non_reducible_host_written_data": null,
"host_written_data": null,
"standard_entities_count": 0,
"updated_at": 1774519399310,
"standard_filesystem_snapshots_count": 0,
"standard_snapshots_count": 0,
"max_extend": -1,
"free_virtual_space": 1000000192512,
"volumes_count": 0,
"allocated_physical_space": 0,
"fs_used_default_critical": 100,
"non_reducible_data_reduction_ratio": null,
"id": 1000,
"reserved_capacity": 100000000000,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"s3_buckets_count": 0,
"standard_filesystems_count": 0,
"non_reducible_data_percents": null,
"reducible_data_reduction_ratio": null,
"vvol_entities_count": 0,
"snapshots_count": 0,
"state": "NORMAL",
"tenant_id": 1,
"fs_used_default_warning": 100,
"type": "STANDARD",
"free_physical_space": 1000000192512,
"data_reduction_ratio": 1.0,
"total_disk_usage": null,
"filesystems_count": 0,
"reducible_data_disk_usage_capacity": null,
"vvol_snapshots_count": 0,
"s3_bound": false,
"thin_capacity_savings": null,
"zeros_capacity": null,
"entities_count": 0,
"physical_capacity_critical": 90,
"standard_volumes_count": 0,
"internal_entities_count": null,
"reducible_host_written_data": null,
"owners": [],
"vvol_volumes_count": 0,
"capacity_savings": null,
"name": "auto-pool--bf7d1f82-f5a3-4",
"virtual_capacity": 1000000192512,
"allocated_internal_physical_space": 0,
"created_at": 1774519399310,
"filesystem_snapshots_count": 0,
"compression_enabled": true,
"qos_policies": [],
"physical_capacity_warning": 80,
"physical_capacity": 1000000192512,
"thick_capacity_savings": null
}
],
"error": null
}
|
| Errors |
| UNSUPPORTED_FILTER_RELATION |
HTTP 400 |
The filtering operator 'ALLOF' is not supported by this resource |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('abcd') could not be translated to an expected type |
| NOT_FILTERABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be filtered: ('state') |
| WRONG_PARAMETER |
HTTP 400 |
The value (-1) of parameter 'page' does not meet a condition: 'int >= 1' |
| MAX_PAGE_SIZE_VIOLATION |
HTTP 400 |
Requested page size 1001 exceeds range 1..1000 for command 'GetAllPoolsFiltered' |
| AUTHENTICATION_REQUIRED |
HTTP 401 |
The operation requires authentication |
|
Get My Pools
| Description |
Get a list of pools that are owned by the current user.
|
| API Endpoint |
GET api/rest/pools/administered_pools |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"non_reducible_host_written_data": null,
"host_written_data": null,
"standard_entities_count": 0,
"updated_at": 1774519599441,
"standard_filesystem_snapshots_count": 0,
"standard_snapshots_count": 0,
"max_extend": -1,
"free_virtual_space": 1000000192512,
"volumes_count": 0,
"allocated_physical_space": 0,
"fs_used_default_critical": 100,
"non_reducible_data_reduction_ratio": null,
"id": 1000,
"reserved_capacity": 100000000000,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"s3_buckets_count": 0,
"standard_filesystems_count": 0,
"non_reducible_data_percents": null,
"reducible_data_reduction_ratio": null,
"vvol_entities_count": 0,
"snapshots_count": 0,
"state": "NORMAL",
"tenant_id": 1,
"fs_used_default_warning": 100,
"type": "STANDARD",
"free_physical_space": 1000000192512,
"data_reduction_ratio": 1.0,
"total_disk_usage": null,
"filesystems_count": 0,
"reducible_data_disk_usage_capacity": null,
"vvol_snapshots_count": 0,
"s3_bound": false,
"thin_capacity_savings": null,
"zeros_capacity": null,
"entities_count": 0,
"physical_capacity_critical": 90,
"standard_volumes_count": 0,
"internal_entities_count": null,
"reducible_host_written_data": null,
"owners": [
3789
],
"vvol_volumes_count": 0,
"capacity_savings": null,
"name": "auto-pool--2d1cb979-8fc8-4",
"virtual_capacity": 1000000192512,
"allocated_internal_physical_space": 0,
"created_at": 1774519599006,
"filesystem_snapshots_count": 0,
"compression_enabled": true,
"qos_policies": [],
"physical_capacity_warning": 80,
"physical_capacity": 1000000192512,
"thick_capacity_savings": null
}
],
"error": null
}
|
| Errors |
| MAX_PAGE_SIZE_VIOLATION |
HTTP 400 |
Requested page size 1001 exceeds range 1..1000 for command 'GetMyPools' |
| WRONG_PARAMETER |
HTTP 400 |
The value (0) of parameter 'page_size' does not meet a condition: 'int >= 1' |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('abcd') could not be translated to an expected type |
| NOT_FILTERABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be filtered: ('free_physical_space') |
| AUTHENTICATION_REQUIRED |
HTTP 401 |
The operation requires authentication |
|
Get Pool Administrators
| Description |
Get a list of pool administrators for a pool.
|
| API Endpoint |
GET api/rest/pools/{id}/all_admins |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 4,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
-2,
-1,
4396,
4397
],
"error": null
}
|
| Errors |
| POOL_NOT_FOUND |
HTTP 404 |
Pool not found |
|
Lock a Pool
| Description |
Lock the pool for writes.
|
| Approval required |
This is a dangerous operation
Locking a pool prevents any changes to existing datasets, as well as creating new ones
|
| API Endpoint |
POST api/rest/pools/{id}/lock |
| URL Parameters |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Locking a pool prevents any changes to existing datasets, as well as creating new ones |
| POOL_NOT_FOUND |
HTTP 404 |
Pool not found |
|
Unlock Pool
| Description |
Unlock the pool, allow writing into its entities.
|
| API Endpoint |
POST api/rest/pools/{id}/unlock |
| URL Parameters |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
|
| Errors |
| POOL_NOT_FOUND |
HTTP 404 |
Pool not found |
|
Update a Pool Attribute
| Description |
Update an attribute of a pool. For example: set the pool capacity to be compressed by setting the value of compression_enabled to yes
|
| API Endpoint |
PUT api/rest/pools/{id} |
| URL Parameters |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"virtual_capacity": 1000000000000
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"non_reducible_host_written_data": null,
"host_written_data": null,
"standard_entities_count": 0,
"updated_at": 1774519504115,
"standard_filesystem_snapshots_count": 0,
"standard_snapshots_count": 0,
"max_extend": -1,
"free_virtual_space": 1000000192512,
"volumes_count": 0,
"allocated_physical_space": 0,
"fs_used_default_critical": 100,
"non_reducible_data_reduction_ratio": null,
"id": 1000,
"reserved_capacity": 100000000000,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"s3_buckets_count": 0,
"standard_filesystems_count": 0,
"non_reducible_data_percents": null,
"reducible_data_reduction_ratio": null,
"vvol_entities_count": 0,
"snapshots_count": 0,
"state": "NORMAL",
"tenant_id": 1,
"fs_used_default_warning": 100,
"type": "STANDARD",
"free_physical_space": 1000000192512,
"data_reduction_ratio": 1.0,
"total_disk_usage": null,
"filesystems_count": 0,
"reducible_data_disk_usage_capacity": null,
"vvol_snapshots_count": 0,
"s3_bound": false,
"thin_capacity_savings": null,
"zeros_capacity": null,
"entities_count": 0,
"physical_capacity_critical": 90,
"standard_volumes_count": 0,
"internal_entities_count": null,
"reducible_host_written_data": null,
"owners": [],
"vvol_volumes_count": 0,
"capacity_savings": null,
"name": "auto-pool--55f0fece-96c3-4",
"virtual_capacity": 1000000192512,
"allocated_internal_physical_space": 0,
"created_at": 1774519503808,
"filesystem_snapshots_count": 0,
"compression_enabled": true,
"qos_policies": [],
"physical_capacity_warning": 80,
"physical_capacity": 1000000192512,
"thick_capacity_savings": null
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('entities_count') |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('name') could not be translated to an expected type |
| SET_MISSING_ATTRIBUTE |
HTTP 400 |
Attribute not found: 'nonExistingAttribute' |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'auto-invalid*name-d001aa59' |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
| MISSING_CONTENT |
HTTP 400 |
The request is empty |
| WRONG_PARAMETER |
HTTP 400 |
The value (null) of parameter 'owner' does not meet a condition: 'must be a valid owner' |
| NOT_SUPPORTED_MULTIPLE_UPDATE |
HTTP 400 |
This resource does not support updating multiple fields in one request |
| ILLEGAL_THRESHOLD_VALUE |
HTTP 400 |
Illegal threshold value: 0 |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for [POOL_ADMIN] |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-f902b5d1-5' is forbidden to modify pool 'pool2' |
| USER_NOT_FOUND |
HTTP 404 |
User not found |
| POOL_NOT_FOUND |
HTTP 404 |
Pool not found |
| ILLEGAL_POOL_CAPACITY |
HTTP 409 |
The requested capacity is not allowed. Reason: Pool size is not aligned with integral units of 512. Wrong capacity value: 1000GB |
| SET_FS_THRESHOLDS_POOL_TYPE_MISMATCH |
HTTP 409 |
Filesystem capacity alert thresholds can be configured for STANDARD pools only |
| S3_POOL_SET_UNLIMITED_EMERGENCY_BUFFER_NOT_ALLOWED |
HTTP 409 |
An S3 pool cannot have an unlimited emergency buffer |
| ILLEGAL_POOL_PHYSICAL_CAPACITY |
HTTP 409 |
The requested physical capacity is not allowed |
| ILLEGAL_WARNING_OR_CRITICAL_VALUE |
HTTP 409 |
Illegal value 91. Critical value (90) must be greater than warning value (91) |
| POOL_NAME_CONFLICT |
HTTP 409 |
An entity with this name already exists |
| ILLEGAL_POOL_ADMIN |
HTTP 409 |
A non-POOL_ADMIN user cannot be assigned as a pool admin |
| SYSTEM_VIRTUAL_CAPACITY |
HTTP 409 |
Used virtual space reached system virtual capacity |
| SET_VIRTUAL_CAPACITY_S3_POOL_NOT_ALLOWED |
HTTP 409 |
An S3 pool cannot have a virtual capacity |
|
Quality of Service
The QoS policy is a logical entity that groups performance capping levels. The capping level are imposed on entities (pools or individual datasets) that are assigned to the policy. The performance capping levels are comprised of the following:
- Max IOPS - the maximum number of IOPS / FOPS (IOPS for volumes, FOPS for filesystems) that are allowed for a volume / filesystem
- Max MBPS - the maximum bandwidth that is assigned to a volume / filesystem
- Burst - a time-limited increase in performance, related to the MAX IOPS and Max MBPS that are specified in the policy
- Burst factor - the factor of increased performance during the burst. The burst cannot exceed this factor
- Burst duration - the maximum amount of time the burst can last
To apply performance capping to an entity:
- Create a policy
- Assign an entity to a policy
Assign an Entity to a QoS Policy
| Description |
Once you defined a QoS Policy, you can assign entities to it. User approval will be required in each, or both cases: 1. When moving an entity from one QoS policy to another 2. When consequent to this operation, the limits of any entity's shared policy will be lower than those of its direct policy.
|
| Approval required |
This is a dangerous operation
You are trying to assign entityType 'entityName' to a QoS policy it is already assigned to: 'qosPolicyName'
|
| API Endpoint |
POST api/rest/qos/policies/{qos_policy_id}/assign |
| URL Parameters |
| qos_policy_id |
long |
ID of the QoS Policy |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"entity_id": 1000
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"entity_id": 1000,
"qos_policy_id": 1001,
"entity_name": "auto-pool--41efad72-771e-4",
"entity_type": "POOL",
"created_at": 1774519615494,
"updated_at": 1774519615494,
"id": 3904
},
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('entity_id') could not be translated to an expected type |
| APPROVAL_REQUIRED |
HTTP 403 |
You are trying to assign volume 'auto-volume--d2faa1c4-1994' to a QoS policy it is already assigned to: 'auto-QoSPolicy4Test-114510' |
| QOS_POLICY_NOT_FOUND |
HTTP 404 |
QoS policy with ID 1001 was not found |
| REPLICA_UNSUPPORTED_FEATURE |
HTTP 409 |
Replication feature not yet supported: Assigning an active-active replicated entity to a QoS policy |
| QOS_EXPECTED_ENTITY_NOT_FOUND |
HTTP 409 |
The expected QoS entity of type VOLUME was not found |
| QOS_RESOURCE_ADD_FAIL |
HTTP 409 |
Failed to assign volume 'auto-volume--4ba263a7-8092' to QoS policy 'auto-QoSPolicy4Test-67990d' |
| QOS_ASSIGNED_PER_POLICY_COUNT_LIMIT |
HTTP 409 |
QoS assigned entities per policy count limit reached |
|
Create a QoS Policy
| Description |
Create a QoS Policy
|
| API Endpoint |
POST api/rest/qos/policies/ |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"name": "auto-QoSPolicy4Test-12cee9",
"max_ops": 10000,
"burst_enabled": true,
"max_bps": 262144000,
"burst_factor": 1.1,
"type": "POOL_VOLUME"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "auto-QoSPolicy4Test-12cee9",
"max_ops": 10000,
"created_at": 1774519615186,
"burst_enabled": true,
"updated_at": 1774519615186,
"max_bps": 262144000,
"burst_factor": 1.1,
"burst_duration_seconds": 60,
"type": "POOL_VOLUME",
"id": 1001
},
"error": null
}
|
| Errors |
| MISSING_FIELD |
HTTP 400 |
A field ('name') is missing in an object passed |
| WRONG_PARAMETER |
HTTP 400 |
The value (null) of parameter 'type' does not meet a condition: 'may not be null' |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('type') could not be translated to an expected type |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'bad<:name;>' |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| FEATURE_NOT_ENABLED |
HTTP 409 |
QoS for filesystem feature is not enabled |
| QOS_POLICY_COUNT_LIMIT |
HTTP 409 |
QoS policy count limit reached |
| QOS_POLICY_INVALID_BURST_PARAMETER |
HTTP 409 |
The burst_factor must be between 1.1 and 10.0. A valid input needs to be no more than 1 decimal point. The value: 10.01 is invalid |
| QOS_POLICY_INVALID_MAX_LIMIT |
HTTP 409 |
The max_ops limit must be between 1000 and 10000000. The value: 10000001 is invalid |
| QOS_POLICY_NAME_CONFLICT |
HTTP 409 |
A QoS policy with this name 'auto-QoSPolicy4Test-6d1dce' already exists |
| QOS_POLICY_MAX_LIMIT_NOT_DEFINED |
HTTP 409 |
QoS policy 'auto-QoSPolicy4Test-eaa4ad' is missing at least one defined limit: Max OPS or Max BPS |
|
Delete a QoS Policy
| Description |
Delete a QoS Policy
|
| Approval required |
This is a dangerous operation
Deleting a QoS policy with assigned entities will affect the performance of these entities
|
| API Endpoint |
DELETE api/rest/qos/policies/{id} |
| URL Parameters |
| id |
long |
ID of the QoS Policy |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "auto-QoSPolicy4Test-470abc",
"max_ops": 1000,
"created_at": 1774521924925,
"burst_enabled": true,
"updated_at": 1774521924925,
"max_bps": 52428800,
"burst_factor": 1.1,
"burst_duration_seconds": 60,
"type": "VOLUME",
"id": 1000
},
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting a QoS policy with assigned entities will affect the performance of these entities |
| QOS_POLICY_NOT_FOUND |
HTTP 404 |
QoS policy with ID 9999999 was not found |
|
Enable QoS
| Description |
Enable QoS
|
| API Endpoint |
POST api/rest/qos/enable |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": true,
"error": null
}
|
| Errors |
See general list of error codes.
|
Get a QoS Assigned Entity by ID
| Description |
Return a single QoS Assigned Entity by ID
|
| API Endpoint |
GET api/rest/qos/assigned_entities/{id} |
| URL Parameters |
| id |
long |
ID of the QoS Assigned Entity |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"entity_id": 1004,
"qos_policy_id": 1000,
"entity_name": "auto-volume--ce219585-400b",
"entity_type": "VOLUME",
"created_at": 1774520644294,
"updated_at": 1774520644294,
"id": 9305
},
"error": null
}
|
| Errors |
| QOS_ASSIGNED_ENTITY_NOT_FOUND |
HTTP 404 |
QoS assigned entity with ID 10304 was not found |
|
Get a QoS Policy
| Description |
Return a single QoS Policy
|
| API Endpoint |
GET api/rest/qos/policies/{id} |
| URL Parameters |
| id |
long |
ID of the QoS Policy |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "auto-QoSPolicy4Test-ba905a",
"max_ops": 10000,
"created_at": 1774520621020,
"burst_enabled": true,
"updated_at": 1774520621020,
"max_bps": 262144000,
"burst_factor": 1.1,
"burst_duration_seconds": 60,
"type": "POOL_VOLUME",
"id": 1004
},
"error": null
}
|
| Errors |
| QOS_POLICY_NOT_FOUND |
HTTP 404 |
QoS policy with ID 1000 was not found |
|
Get all QoS Assigned Entities
| Description |
Return all QoS Assigned Entities
|
| API Endpoint |
GET api/rest/qos/assigned_entities |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 5,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"entity_id": 1006,
"qos_policy_id": 1001,
"entity_name": "auto-volume--9f85218a-ed62",
"entity_type": "VOLUME",
"created_at": 1774520568763,
"updated_at": 1774520568763,
"id": 8865
},
{
"entity_id": 1005,
"qos_policy_id": 1001,
"entity_name": "auto-volume--2892b757-e09d",
"entity_type": "VOLUME",
"created_at": 1774520568596,
"updated_at": 1774520568596,
"id": 8864
},
{
"entity_id": 1004,
"qos_policy_id": 1001,
"entity_name": "auto-volume--6a4bc615-1866",
"entity_type": "VOLUME",
"created_at": 1774520568437,
"updated_at": 1774520568437,
"id": 8863
},
{
"entity_id": 1003,
"qos_policy_id": 1001,
"entity_name": "auto-volume--9c2baf26-8341",
"entity_type": "VOLUME",
"created_at": 1774520568289,
"updated_at": 1774520568289,
"id": 8862
},
{
"entity_id": 1002,
"qos_policy_id": 1001,
"entity_name": "auto-volume--02acb613-37b1",
"entity_type": "VOLUME",
"created_at": 1774520568012,
"updated_at": 1774520568012,
"id": 8861
}
],
"error": null
}
|
| Errors |
| UNSUPPORTED_FILTER_RELATION |
HTTP 400 |
The filtering operator 'LT' is not supported by this resource |
|
Get all QoS Policies
| Description |
Return all QoS Policies Filterable and Sortable fields:burst_enabled,burst_factor,created_at,id,max_bps,max_ops,name,type,updated_at. |
| API Endpoint |
GET api/rest/qos/policies/ |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 4,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"name": "auto-QoSPolicy4Test-2685f1",
"max_ops": 1000,
"created_at": 1774521908893,
"burst_enabled": true,
"updated_at": 1774521908893,
"max_bps": 52428800,
"burst_factor": 1.1,
"burst_duration_seconds": 60,
"type": "VOLUME",
"id": 1000
},
{
"name": "auto-QoSPolicy4Test-2524b0",
"max_ops": 1000,
"created_at": 1774521908962,
"burst_enabled": false,
"updated_at": 1774521908962,
"max_bps": 52428800,
"burst_factor": null,
"burst_duration_seconds": null,
"type": "VOLUME",
"id": 1001
},
{
"name": "auto-QoSPolicy4Test-a9485b",
"max_ops": 1000,
"created_at": 1774521909019,
"burst_enabled": true,
"updated_at": 1774521909019,
"max_bps": 52428800,
"burst_factor": 1.1,
"burst_duration_seconds": 60,
"type": "VOLUME",
"id": 1002
},
{
"name": "auto-QoSPolicy4Test-85cc45",
"max_ops": 1000,
"created_at": 1774521909076,
"burst_enabled": false,
"updated_at": 1774521909076,
"max_bps": 52428800,
"burst_factor": null,
"burst_duration_seconds": null,
"type": "VOLUME",
"id": 1003
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get an Entity Assigned to a QoS Policy
| Description |
Get an entity that is assigned to a QoS Policy
|
| API Endpoint |
GET api/rest/qos/policies/{qos_policy_id}/assigned_entities/{id} |
| URL Parameters |
| qos_policy_id |
long |
ID of the QoS Policy |
| id |
long |
ID of the QoS Assigned Entity |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"entity_id": 1002,
"qos_policy_id": 1000,
"entity_name": "auto-volume--d2faa1c4-1994",
"entity_type": "VOLUME",
"created_at": 1774520571527,
"updated_at": 1774520571527,
"id": 8884
},
"error": null
}
|
| Errors |
| QOS_POLICY_NOT_FOUND |
HTTP 404 |
QoS policy with ID 1001 was not found |
| QOS_ASSIGNED_ENTITY_NOT_FOUND |
HTTP 404 |
QoS assigned entity with ID 8952 was not found |
|
Get Entities Assigned to a QoS Policy
| Description |
Get entities that are assigned to a QoS Policy
|
| API Endpoint |
GET api/rest/qos/policies/{qos_policy_id}/assigned_entities |
| URL Parameters |
| qos_policy_id |
long |
ID of the QoS Policy |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 0,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get QoS Status
| Description |
Query the QoS status
|
| API Endpoint |
GET api/rest/qos/state |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"is_enabled": true
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Unassign an Entity by ID from a QoS Policy
| Description |
Unassign an entity by id from a QoS Policy
|
| API Endpoint |
POST api/rest/qos/policies/{qos_policy_id}/unassign |
| URL Parameters |
| qos_policy_id |
long |
ID of the QoS Policy |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"entity_id": 2000
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"entity_id": 1001,
"qos_policy_id": 1000,
"entity_name": "auto-pool--76b0d8cc-c0a6-4",
"entity_type": "POOL",
"created_at": 1774520584088,
"updated_at": 1774520584088,
"id": 8952
},
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('entity_id') could not be translated to an expected type |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| QOS_ENTITY_NOT_FOUND |
HTTP 404 |
QoS policy 'auto-QoSPolicy4Test-1bcbfb' does not have an entity with ID 2000 assigned to it |
|
Update a QoS Policy
| Description |
Update a QoS Policy
|
| API Endpoint |
PUT api/rest/qos/policies/{id} |
| URL Parameters |
| id |
long |
ID of the QoS Policy |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"name": null
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "auto-QoSPolicy4Test-424b6e",
"max_ops": 1000,
"created_at": 1774521866268,
"burst_enabled": true,
"updated_at": 1774521866562,
"max_bps": 52428800,
"burst_factor": 1.1,
"burst_duration_seconds": 60,
"type": "VOLUME",
"id": 1000
},
"error": null
}
|
| Errors |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'bad<:name;>' |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('type') could not be translated to an expected type |
| WRONG_PARAMETER |
HTTP 400 |
The value (1.1) of parameter 'burst_factor' does not meet a condition: 'must be empty if burst is not enabled' |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| QOS_POLICY_INVALID_MAX_LIMIT |
HTTP 409 |
The max_ops limit must be between 1000 and 10000000. The value: 10000001 is invalid |
| FEATURE_NOT_ENABLED |
HTTP 409 |
QoS for filesystem feature is not enabled |
| QOS_POLICY_MAX_LIMIT_NOT_DEFINED |
HTTP 409 |
QoS policy 'auto-QoSPolicy4Test-73ab5c' is missing at least one defined limit: Max OPS or Max BPS |
| QOS_POLICY_TYPE_MODIFY_WITH_ENTITIES_NOT_ALLOWED |
HTTP 409 |
Modifying the type of a QoS policy with assigned entities is not allowed |
| QOS_POLICY_INVALID_BURST_PARAMETER |
HTTP 409 |
The burst_factor must be between 1.1 and 10.0. A valid input needs to be no more than 1 decimal point. The value: 10.01 is invalid |
| QOS_POLICY_NAME_CONFLICT |
HTTP 409 |
A QoS policy with this name 'auto-QoSPolicy4Test-61091c' already exists |
|
Rack
Get Rack
| Description |
Get Default Rack
|
| API Endpoint |
GET api/rest/components/ |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"enclosures_number": 2,
"patch_panels": [
{
"component_id": "system.racks[1].patch_panels[1]",
"vendor": "INFINIDAT",
"serial_no": "",
"location": 1,
"frames": [
{
"color": "red",
"label": "Node-1",
"location": 1,
"component_id": "system.racks[1].patch_panels[1].frames[1]",
"ports": [
{
"connection_speed": 8000000000,
"hw_addr": "57:42:b0:f0:00:04:7e:11",
"component_id": "system.racks[1].patch_panels[1].frames[1].ports[1]",
"sfp_type": "",
"conn_port_comp_id": "N1FC1",
"port_num": 1,
"label": "",
"link_state": "UP",
"state": "OK",
"conn_port_uuid": "8d308a80-ecbd-4917-9c29-97ff05d08af1",
"media_type": "fiber",
"type": "FC"
},
{
"connection_speed": 8000000000,
"hw_addr": "57:42:b0:f0:00:04:7e:12",
"component_id": "system.racks[1].patch_panels[1].frames[1].ports[2]",
"sfp_type": "",
"conn_port_comp_id": "N1FC2",
"port_num": 2,
"label": "",
"link_state": "UP",
"state": "OK",
... TRUNCATED ...
|
| Errors |
See general list of error codes.
|
Remote Api
Delete Remote With Host
| Description |
Send a command to a remote box
|
| API Endpoint |
DELETE api/rest/remote/{remoteHost}/{resource: .*} |
| URL Parameters |
| remoteHost |
String |
Remote host name or IP address |
| resource |
String |
Remote API to invoke |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Delete Remote With Link ID
| Description |
Send a command to a remote box
|
| API Endpoint |
DELETE api/rest/remote/{linkId: [0-9]+}/{resource: .*} |
| URL Parameters |
| linkId |
int |
Remote machine link ID |
| resource |
String |
Remote API to invoke |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
|
| Errors |
| LINK_NOT_FOUND |
HTTP 404 |
Link 999 to remote system was not found |
|
Get Remote With Host
| Description |
Send a command to a remote box
|
| API Endpoint |
GET api/rest/remote/{remoteHost}/{resource: .*} |
| URL Parameters |
| remoteHost |
String |
Remote host name or IP address |
| resource |
String |
Remote API to invoke |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Get Remote With Link ID
| Description |
Send a command to a remote box
|
| API Endpoint |
GET api/rest/remote/{linkId: [0-9]+}/{resource: .*} |
| URL Parameters |
| linkId |
int |
Remote machine link ID |
| resource |
String |
Remote API to invoke |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
|
| Errors |
| LINK_NOT_FOUND |
HTTP 404 |
Link 999 to remote system was not found |
| REPLICA_INVALID_LINK |
HTTP 409 |
The link is detached |
| LINK_IO_ERROR |
HTTP 409 |
I/O error when trying to communicate with remote system 'fred' |
|
Post Remote With Host
| Description |
Send a command to a remote box
|
| API Endpoint |
POST api/rest/remote/{remoteHost}/{resource: .*} |
| URL Parameters |
| remoteHost |
String |
Remote host name or IP address |
| resource |
String |
Remote API to invoke |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Post Remote With Link ID
| Description |
Send a command to a remote box
|
| API Endpoint |
POST api/rest/remote/{linkId: [0-9]+}/{resource: .*} |
| URL Parameters |
| linkId |
int |
Remote machine link ID |
| resource |
String |
Remote API to invoke |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
{}
|
| Returns |
|
| Errors |
| LINK_NOT_FOUND |
HTTP 404 |
Link 999 to remote system was not found |
|
Put Remote With Host
| Description |
Send a command to a remote box
|
| API Endpoint |
PUT api/rest/remote/{remoteHost}/{resource: .*} |
| URL Parameters |
| remoteHost |
String |
Remote host name or IP address |
| resource |
String |
Remote API to invoke |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Put Remote With Link ID
| Description |
Send a command to a remote box
|
| API Endpoint |
PUT api/rest/remote/{linkId: [0-9]+}/{resource: .*} |
| URL Parameters |
| linkId |
int |
Remote machine link ID |
| resource |
String |
Remote API to invoke |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
{}
|
| Returns |
|
| Errors |
| LINK_NOT_FOUND |
HTTP 404 |
Link 999 to remote system was not found |
|
Replica
Change Replica Role
| Description |
Change replica role.
|
| Approval required |
This is a dangerous operation
Changing this replicated dataset's role from source to target will restore this dataset from the last replicated snapshot created. The dataset will become write-disabled. Other replicas of the dataset may become auto-suspended
|
| API Endpoint |
POST api/rest/replicas/{id}/change_role |
| URL Parameters |
| id |
long |
ID of the replica |
| retain_staging_area |
boolean |
Determines whether to retain the staging area of the replica |
| keep_datasets_write_protected |
boolean |
Determines whether to keep the datasets write protected when changing the replica role to SOURCE |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"async_mode": null,
"state_description": null,
"local_cg_id": null,
"_assigned_remote_ip": "2.2.2.2",
"remote_cg_id": null,
"rpo_state": null,
"temporary_failure_retry_count": 100,
"remote_replica_id": 1774520683138,
"domino": null,
"updated_at": 1774520683625,
"link_id": 7179,
"remote_entity_id": 66539,
"pending_job_count": 0,
"started_at": null,
"id": 7188,
"reserved_for_infinisafe": false,
"snapshots_retention": null,
"_is_internal_source": null,
"_management_configuration_version": "f7643c00-20bc-49fc-8f90-7a7b156e95da",
"state_reason": null,
"local_pool_id": 1001,
"permanent_failure_wait_interval": 1200000,
"_assigned_sync_remote_ips": null,
"entity_type": "VOLUME",
"_dataset_configuration_version": "a817c73e-b3e8-44d9-8b14-e3f9c0392a23",
"job_state": null,
"concurrent_replica": false,
"remote_entity_name": "auto-volume--05170e76-2097",
"state": null,
"sync_interval": 240000,
"role": "TARGET",
"suspended_from_local": null,
"remote_cg_name": null,
"_enabled": false,
"is_initial": null,
"_assigned_local_ip_index": 0,
"local_pool_name": "auto-pool--2a7adaba-c051-4",
"jobs": [],
"description": "auto-Replica--af5b7f43-6d7",
"mobility_source": null,
"sync_state": null,
"staging_area_allocated_size": null,
"_replica_configuration_version": "89743973-10a0-4501-9df1-c2031d77f2da",
"next_job_start_time": null,
"last_synchronized": null,
"restore_point": 1234567890,
"remote_pool_name": "auto-pool--2a7adaba-c051-4",
"_local_reclaimed_sg_id": null,
... TRUNCATED ...
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Changing this replicated dataset's role from source to target will restore this dataset from the last replicated snapshot created. The dataset will become write-disabled. Other replicas of the dataset may become auto-suspended |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-dbf4bbc6-7' is forbidden to modify pool 'auto-pool--75b97988-5f27-4' |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges for using 'keep_datasets_write_protected' flag |
| REPLICA_INCONSISTENT_DATASETS |
HTTP 409 |
Changing role cannot be completed because at least one dataset has not reached a consistent state |
| DATASET_COUNT_LIMIT |
HTTP 409 |
The request exceeds the dataset count limit |
| REPLICA_UNSUPPORTED_FEATURE |
HTTP 409 |
Replication feature not yet supported: Only async replicas can keep the datasets write protected |
| REPLICA_OPERATION_NOT_ALLOWED_ON_SOURCE_AND_TARGET |
HTTP 409 |
This operation cannot be performed on entity 'auto-volume--e891a46b-6a52' which is both a replication source and target |
| REPLICA_ONLY_ALLOWED_WHEN_SUSPENDED |
HTTP 409 |
Changing the replica role from source to target is only allowed when replica is suspended |
| REPLICATED_CG_IS_EMPTY |
HTTP 409 |
change-role is not allowed when the replicated consistency group is empty |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Changing a filesystem replica's role with retain_staging_area is not supported |
| REPLICA_IS_RESERVED_FOR_INFINISAFE |
HTTP 409 |
Replica is reserved for infinisafe, changing the replica role is not allowed |
| OPERATION_CANNOT_BE_DONE_ON_ACTIVE_ACTIVE_REPLICA |
HTTP 409 |
Change Role failed because it is not supported for active-active replica |
| OPERATION_CANNOT_BE_DONE_ON_CONCURRENT_ASYNC_REPLICA |
HTTP 409 |
Change Role failed because it is not supported for concurrent async replica |
| REPLICA_INVALID_LINK |
HTTP 409 |
The link is detached |
| CHANGE_ROLE_WORM_FILESYSTEM_REPLICA |
HTTP 409 |
Cannot change the role of a WORM filesystem replica |
|
Change Replica Type to Async
| Description |
Change replica type to async
|
| Approval required |
This is a dangerous operation
Changing the replica to asynchronous type will periodically send the data to the remote system
|
| API Endpoint |
POST api/rest/replicas/{id}/change_type_to_async |
| URL Parameters |
| id |
long |
ID of the replica |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"async_mode": null,
"state_description": null,
"local_cg_id": null,
"_assigned_remote_ip": "2.2.2.2",
"remote_cg_id": null,
"rpo_state": null,
"temporary_failure_retry_count": 100,
"remote_replica_id": 1774521981817,
"domino": null,
"updated_at": 1774521982272,
"link_id": 15998,
"remote_entity_id": 66539,
"pending_job_count": 0,
"started_at": null,
"id": 16007,
"reserved_for_infinisafe": false,
"snapshots_retention": null,
"_is_internal_source": null,
"_management_configuration_version": "cae28cd4-bded-4023-86cf-f09a5404b660",
"state_reason": null,
"local_pool_id": 1001,
"permanent_failure_wait_interval": 1200000,
"_assigned_sync_remote_ips": null,
"entity_type": "VOLUME",
"_dataset_configuration_version": "19240a06-0089-4c5c-ba76-a80a42c5d30f",
"job_state": null,
"concurrent_replica": false,
"remote_entity_name": "auto-volume--ca8eed43-5a62",
"state": "UNKNOWN",
"sync_interval": 4000,
"role": "SOURCE",
"suspended_from_local": null,
"remote_cg_name": null,
"_enabled": true,
"is_initial": null,
"_assigned_local_ip_index": 0,
"local_pool_name": "auto-pool--5b86f7b3-e74c-4",
"jobs": [],
"description": "auto-Replica--b3e5834f-7c9",
"mobility_source": null,
"sync_state": null,
"staging_area_allocated_size": null,
"_replica_configuration_version": "13e32fdd-fc9c-4007-bab4-cb62b775b5cd",
"next_job_start_time": null,
"last_synchronized": null,
"restore_point": 1234567890,
"remote_pool_name": "auto-pool--5b86f7b3-e74c-4",
"_local_reclaimed_sg_id": null,
... TRUNCATED ...
|
| Errors |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-50e7b2b4-b' is forbidden to modify pool 'auto-pool--5b86f7b3-e74c-4' |
| APPROVAL_REQUIRED |
HTTP 403 |
Changing the replica to asynchronous type will periodically send the data to the remote system |
| REPLICA_NOT_FOUND |
HTTP 404 |
Replica not found |
| REPLICA_NOT_ALLOWED_ON_TARGET |
HTTP 409 |
This operation can only be performed on the source side of the replica |
| OPERATION_CANNOT_BE_DONE_ON_ACTIVE_ACTIVE_REPLICA |
HTTP 409 |
Changing the replica type to async failed because it is not supported for active-active replica |
| REPLICA_CANNOT_CHANGE_TYPE_DURING_INITIALIZATION |
HTTP 409 |
Wait for the replica to reach Synchronized state before changing the replication type |
|
Change Replica Type to Sync
| Description |
Change replica type to sync
|
| Approval required |
This is a dangerous operation
Changing the replica to synchronous type will continuously send data to the remote system
|
| API Endpoint |
POST api/rest/replicas/{id}/change_type_to_sync |
| URL Parameters |
| id |
long |
ID of the replica |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"async_mode": null,
"state_description": null,
"local_cg_id": null,
"_assigned_remote_ip": "2.2.2.2",
"remote_cg_id": null,
"rpo_state": null,
"temporary_failure_retry_count": 100,
"remote_replica_id": 1774521457118,
"domino": null,
"updated_at": 1774521457250,
"link_id": 14048,
"remote_entity_id": 66540,
"pending_job_count": 0,
"started_at": null,
"id": 14057,
"reserved_for_infinisafe": false,
"snapshots_retention": null,
"_is_internal_source": null,
"_management_configuration_version": "b09c5fe3-ac79-464d-a03f-0e8b9997e592",
"state_reason": null,
"local_pool_id": 1002,
"permanent_failure_wait_interval": 1200000,
"_assigned_sync_remote_ips": [
"2.2.2.5",
"2.2.2.6",
"2.2.2.7"
],
"entity_type": "VOLUME",
"_dataset_configuration_version": "406cfcd2-412d-481c-9799-1a0249acbe21",
"job_state": null,
"concurrent_replica": false,
"remote_entity_name": "auto-volume--91a6d93f-1ab4",
"state": "UNKNOWN",
"sync_interval": null,
"role": "SOURCE",
"suspended_from_local": null,
"remote_cg_name": null,
"_enabled": true,
"is_initial": null,
"_assigned_local_ip_index": 0,
"local_pool_name": "auto-pool--cac7e8e7-b12d-4",
"jobs": [],
"description": "auto-Replica--616d3692-c18",
"mobility_source": null,
"sync_state": null,
"staging_area_allocated_size": null,
"_replica_configuration_version": "ed309e6d-1bac-4861-9f1e-6c5a1e85740d",
"next_job_start_time": null,
"last_synchronized": null,
"restore_point": null,
"remote_pool_name": "auto-pool--cac7e8e7-b12d-4",
... TRUNCATED ...
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Changing the replica to synchronous type will continuously send data to the remote system |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-fac80a08-1' is forbidden to modify pool 'auto-pool--8cd16a1a-de63-4' |
| REPLICA_NOT_FOUND |
HTTP 404 |
Replica not found |
| REPLICA_NOT_ALLOWED_ON_TARGET |
HTTP 409 |
This operation can only be performed on the source side of the replica |
| REPLICA_INVALID_LINK |
HTTP 409 |
The link remote network space does not support this replication type |
| OPERATION_CANNOT_BE_DONE_ON_ACTIVE_ACTIVE_REPLICA |
HTTP 409 |
Changing the replica type to sync failed because it is not supported for active-active replica |
| OPERATION_CANNOT_BE_DONE_ON_MULTI_TARGET_REPLICA |
HTTP 409 |
Changing the replica type to sync failed because it is not supported for multi target replica |
| REPLICA_UNSUPPORTED_FEATURE |
HTTP 409 |
Replication feature not yet supported: Only block datasets can be SYNC replicated |
| REPLICATION_SNAPSHOTS_SIZE_MISMATCH |
HTTP 409 |
Due to a volume resize operation the volume should undergo a sync job before changing the replica type |
| OPERATION_CANNOT_BE_DONE_ON_REPLICATE_SNAPSHOTS_REPLICA |
HTTP 409 |
Changing the replica type to sync failed because it is not supported for replicas with snapshot replication |
| OPERATION_CANNOT_BE_DONE_ON_CONCURRENT_ASYNC_REPLICA |
HTTP 409 |
Changing the replica type to sync failed because it is not supported for concurrent async replica |
| REPLICA_CANNOT_CHANGE_TYPE_DURING_INITIALIZATION |
HTTP 409 |
Wait for the replica to reach Synchronized state before changing the replication type |
|
Create a Replica
| Description |
Create a new replica
|
| API Endpoint |
POST api/rest/replicas |
| URL Parameters |
| remote_members_suffix |
String |
The suffix that will be given to remote replicated cg members names |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"description": "auto-Replica--5346c70e-641",
"mobility_source": true,
"entity_type": "VOLUME",
"replication_type": "ACTIVE_ACTIVE",
"link_id": 3983,
"entity_pairs": [
{
"local_entity_id": 1002,
"remote_base_action": "CREATE"
}
],
"remote_pool_id": 1234
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"async_mode": null,
"state_description": null,
"local_cg_id": null,
"_assigned_remote_ip": "2.2.2.2",
"remote_cg_id": null,
"rpo_state": null,
"temporary_failure_retry_count": 100,
"remote_replica_id": 1774520202016,
"domino": null,
"updated_at": 1774520201902,
"link_id": 3983,
"remote_entity_id": 66539,
"pending_job_count": 0,
"started_at": null,
"id": 3992,
"reserved_for_infinisafe": false,
"snapshots_retention": null,
"_is_internal_source": null,
"_management_configuration_version": "086edf50-41c6-4503-af79-b2a0e75c17d8",
"state_reason": null,
"local_pool_id": 1001,
"permanent_failure_wait_interval": 1200000,
"_assigned_sync_remote_ips": [
"2.2.2.5",
"2.2.2.6",
"2.2.2.7"
],
"entity_type": "VOLUME",
"_dataset_configuration_version": "217f90cc-f271-4183-8e26-60c08c8415f7",
"job_state": null,
"concurrent_replica": false,
"remote_entity_name": "sourceVolume",
"state": "UNKNOWN",
"sync_interval": null,
"role": null,
"suspended_from_local": null,
"remote_cg_name": null,
"_enabled": true,
"is_initial": null,
"_assigned_local_ip_index": 0,
"local_pool_name": "auto-pool--a8462ef1-34ca-4",
"jobs": [],
"description": "auto-Replica--5346c70e-641",
"mobility_source": true,
"sync_state": null,
"staging_area_allocated_size": null,
"_replica_configuration_version": "6b31bde5-74a1-488c-90db-c265c447af4d",
"next_job_start_time": null,
"last_synchronized": null,
"restore_point": null,
"remote_pool_name": "auto-pool--a8462ef1-34ca-4",
... TRUNCATED ...
|
| Errors |
| WRONG_PARAMETER |
HTTP 400 |
The value () of parameter 'remote_snapshot_suffix' does not meet a condition: 'size must be between 1 and 255' |
| UNSUPPORTED_VALUE |
HTTP 400 |
The request contains an unsupported value (false) for field ('mobility_source') |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('rpo_value') |
| MISSING_FIELD |
HTTP 400 |
A field ('local_entity_id') is missing in an object passed |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| REMOTE_PERMISSION_REQUIRED |
HTTP 403 |
The operation failed as it requires permission on the remote system |
| VERSION_MISMATCH |
HTTP 403 |
The target system does not support creating a multi target replica |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-56ae4275-4' is forbidden to modify pool 'auto-pool--7cf4ff5e-b569-4' |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for TECHNICIAN |
| ENTITY_NOT_FOUND |
HTTP 404 |
Error on 'fred': Prepare phase error response |
| CG_NOT_FOUND |
HTTP 404 |
Consistency group not found |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
| DATASET_NOT_FOUND |
HTTP 404 |
Dataset not found |
| REPLICA_INCONSISTENT_PAIR_BASE |
HTTP 409 |
A replication pair with action BASE must contain both an entity ID and a base entity ID |
| SYSTEM_CANNOT_SUPPORT_ISCSI_AA |
HTTP 409 |
Active-Active Replication and ISCSI network space cannot exist on same system. Please contact INFINIDAT support for further information |
| REPLICA_BASE_ACTION_NOT_ALLOWED_FOR_ACTIVE_ACTIVE_CG |
HTTP 409 |
The base action NO_BASE_DATA is not allowed for an active-active cg replica |
| CANNOT_REPLICATE_CG_SNAPSHOT |
HTTP 409 |
A replicated consistency group cannot be created from a snapshot |
| REPLICA_CREATE_FAILED |
HTTP 409 |
Failed to create the replica, please try later |
| ACTIVE_ACTIVE_REPLICA_CANNOT_BE_WRITE_PROTECTED |
HTTP 409 |
An active-active replicated entity 'auto-volume--c7db1fb0-5a69' cannot be write-protected |
| INVALID_LOCK_DURATION |
HTTP 409 |
Lock expiry cannot exceed 365 days |
| REPLICA_MISSING_PAIR_POOL |
HTTP 409 |
If CREATE is specified or implied in replica creation, a target pool ID must also be specified |
| REPLICA_CREATE_EXISTING_INCONSISTENT_PARAM |
HTTP 409 |
A replica created from existing remote entity cannot contain a remote entity name |
| REPLICA_LIMIT |
HTTP 409 |
A new replica cannot be created. The system has reached the maximum number of replicas |
| REPLICA_OPERATION_NOT_MEMBER_OF_CG |
HTTP 409 |
Dataset id 1004 is not a member of the CG to be replicated |
| REPLICA_INCONSISTENT_PAIR_SAME_BASE |
HTTP 409 |
A BASE entity for replication must be a snapshot of the main entity |
| REPLICA_INCONSISTENT_PAIR_BASE_ACTION |
HTTP 409 |
A replication pair with base action NO_BASE_DATA (or CREATE) for one system must specify NO_BASE_DATA (or CREATE on target) for the other |
| OPERATION_CANNOT_BE_DONE_ON_MULTI_TARGET_REPLICA |
HTTP 409 |
Creating a replica with an empty CG failed because it is not supported for multi target replica |
| FILESYSTEM_IS_SUSPENDED |
HTTP 409 |
The operation cannot be performed as the filesystem is suspended ('auto-filesystem--a5adab78-') |
| MULTI_TARGET_REPLICAS_COUNT_LIMIT |
HTTP 409 |
The maximum number of Async replicas allowed per entity has been reached |
| REPLICA_INCONSISTENT_ENTITY_TYPE |
HTTP 409 |
The type of entity (FILESYSTEM) is not compatible with replica type (VOLUME) |
| NVME_OF_VOLUME_CANNOT_USE_ACTIVE_ACTIVE |
HTTP 409 |
Configuring active-active replication for volume 'auto-volume--d4395e33-df6b' failed because the volume is mapped to hosts or clusters that contain NVMe-oF ports |
| EMPTY_ACTIVE_ACTIVE_CG_REPLICA |
HTTP 409 |
The creation of an empty active-active cg replica is not allowed |
| REPLICA_ENTITY_IS_ACTIVE_ACTIVE_PEER |
HTTP 409 |
Entity 'auto-volume--1a2a88bb-6437' is a replication active active peer. Cannot use it as a member of another replication |
| REPLICA_MISSING_LINK |
HTTP 409 |
A non-existent link ID was supplied for replica creation |
| REPLICA_INCONSISTENT_BASE_ACTION |
HTTP 409 |
All consistency group members must have the same base action |
| REPLICA_NOT_ALLOWED_ON_SNAPSHOT |
HTTP 409 |
Replica source cannot be a snapshot |
| MULTI_TARGET_REPLICA_INTERVAL_TOO_LOW |
HTTP 409 |
Multi-target replicas of FILESYSTEM 'auto-filesystem--26823213-' must have an interval of at least 8 seconds. Ensure that the intervals of other replicas of this FILESYSTEM are at least 8 seconds |
| REPLICA_BASE_ACTION_NOT_ALLOWED_FOR_WORM_FILESYSTEM |
HTTP 409 |
WORM filesystems cannot be replicated using existing snapshots as a base |
| REPLICA_BASE_ACTION_NOT_ALLOWED_FOR_FILESYSTEM |
HTTP 409 |
The base action TAKE_SNAP is not allowed for filesystems |
| INVALID_LOCK_DURATION_EXCEEDS_SNAPSHOT_RETENTION |
HTTP 409 |
A replicated snapshot's lock duration cannot be longer than the snapshot's retention |
| REPLICA_CREATE_NEW_INCONSISTENT_PARAM |
HTTP 409 |
A replica created with a new remote entity cannot contain a remote entity ID |
| REPLICA_ENTITY_IS_SOURCE |
HTTP 409 |
Entity 'auto-volume--63e587ea-3974' is a replication source. Cannot use it as a member of another replication |
| REPLICA_UNSUPPORTED_FEATURE |
HTTP 409 |
Replication feature not yet supported: Only block datasets can be ACTIVE_ACTIVE replicated |
| REPLICA_INCONSISTENT_BASE_SIZE |
HTTP 409 |
The BASE entity auto-volume--695d8081-65fc has bigger size than the main entity auto-volume--c5010f8d-e28f |
| REPLICA_INCONSISTENT_PAIR_CG_COUNT |
HTTP 409 |
The number of entities in the consistency group didn't match the number of entity pairs in the replica |
| CANNOT_REPLICATE_CG_DATASET |
HTTP 409 |
A dataset that is a member of a consistency group cannot be replicated on its own |
| CG_BASE_SNAPSHOT_NOT_FOUND |
HTTP 409 |
Can't find base snapshots for all cg members of consistency group auto-cg_-ccee1fd6-ddb0-4df |
| REPLICA_INCONSISTENT_PAIR_NO_BASE |
HTTP 409 |
A replication pair with action NO_BASE_DATA or TAKE_SNAP must contain an entity ID and must not contain a base entity ID |
| REPLICA_INVALID_LINK |
HTTP 409 |
The link remote network space does not support this replication type |
| UNSUPPORTED_REMOTE_SNAPSHOT_SUFFIX |
HTTP 409 |
The 'remote_snapshot_suffix' field can only be set for replicas with snapshot replication |
| INVALID_LOCK_EXPIRY |
HTTP 409 |
Lock expiry date has to be in the future |
| UNSUPPORTED_LOCK_REMOTE_SNAPSHOT_RETENTION |
HTTP 409 |
The 'lock_remote_snapshot_retention' field can only be set for replicas with snapshot replication |
| MISSING_SNAPSHOTS_RETENTION |
HTTP 409 |
The 'snapshots_retention' field must be set for replicas with snapshot replication |
| REPLICA_ENTITY_IS_SOURCE_AND_TARGET |
HTTP 409 |
Entity 'auto-volume--dd84c77c-f477' is both a replication source and target. Cannot use it as a member of another replication |
| UNSUPPORTED_SNAPSHOTS_RETENTION |
HTTP 409 |
The 'snapshots_retention' field can only be set for replicas with snapshot replication |
| REPLICATED_DATASETS_LIMIT |
HTTP 409 |
The system has reached the maximum number of replicated datasets |
| REPLICA_PARTIAL_FAILURE |
HTTP 409 |
Replica(s) creation failed, replica(s) status is unknown. User intervention is required. |
| REPLICA_INCONSISTENT_POOL |
HTTP 409 |
All entities in the replica on one system, must be in the same pool |
| REPLICA_ENTITY_IS_TARGET |
HTTP 409 |
Entity 'auto-replica-vol--54b02ad1' is a replication target. Cannot use it as a member of another replication |
|
Delete a Replica
| Description |
Delete a replica
|
| Approval required |
This is a dangerous operation
Force delete will delete the replica locally only, the remote replica will not be deleted
|
| API Endpoint |
DELETE api/rest/replicas/{id} |
| URL Parameters |
| id |
long |
ID of the replica |
| retain_staging_area |
boolean |
Determines whether to retain the staging area of the replica |
| keep_serial_on_local |
Boolean |
Allows keeping or resetting the external identification data of the local replica volume/s |
| force_if_no_remote_credentials |
Boolean |
Allow this operation even if a login error is returned by the remote system |
| force_if_remote_error |
Boolean |
Allow this operation even if an error is returned by the remote system |
| force_on_target |
Boolean |
Allow one-sided operation on the target |
| force_on_local |
Boolean |
Allow one-sided operation |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"async_mode": null,
"state_description": null,
"local_cg_id": null,
"_assigned_remote_ip": "2.2.2.2",
"remote_cg_id": null,
"rpo_state": null,
"temporary_failure_retry_count": 100,
"remote_replica_id": 1774520598535,
"domino": null,
"updated_at": 1774520598502,
"link_id": 6618,
"remote_entity_id": 66539,
"pending_job_count": 0,
"started_at": null,
"id": 6627,
"reserved_for_infinisafe": false,
"snapshots_retention": null,
"_is_internal_source": null,
"_management_configuration_version": "023a7e48-ec08-4ba4-87b8-2120bbfb6939",
"state_reason": null,
"local_pool_id": 1001,
"permanent_failure_wait_interval": 1200000,
"_assigned_sync_remote_ips": [
"2.2.2.5",
"2.2.2.6",
"2.2.2.7"
],
"entity_type": "VOLUME",
"_dataset_configuration_version": "bf0750b5-3a29-4bd2-afa8-8379c5a89763",
"job_state": null,
"concurrent_replica": false,
"remote_entity_name": "auto-volume--2f7f7977-cd6f",
"state": "UNKNOWN",
"sync_interval": null,
"role": null,
"suspended_from_local": null,
"remote_cg_name": null,
"_enabled": true,
"is_initial": null,
"_assigned_local_ip_index": 0,
"local_pool_name": "auto-pool--94ea2244-ee80-4",
"jobs": [],
"description": "auto-Replica--3625f766-0ee",
"mobility_source": null,
"sync_state": null,
"staging_area_allocated_size": null,
"_replica_configuration_version": "59926400-3728-47b2-aea7-b7da209c0458",
"next_job_start_time": null,
"last_synchronized": null,
"restore_point": 1234567890,
"remote_pool_name": "auto-pool--94ea2244-ee80-4",
... TRUNCATED ...
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('keep_serial_on_local') |
| APPROVAL_REQUIRED |
HTTP 403 |
Force delete will delete the replica locally only, the remote replica will not be deleted |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-dbf4bbc6-7' is forbidden to modify pool 'auto-pool--75b97988-5f27-4' |
| REPLICA_INCONSISTENT_PAIR |
HTTP 409 |
The entities in the consistency groups are different on source and target |
| REPLICA_OPERATION_DIFFERENT_REPLICATION_TYPES |
HTTP 409 |
Cannot delete the replica due to a replication type mismatch. Change the replication type and retry |
| ACTIVE_ACTIVE_CONCURRENT_REPLICA_CANNOT_BE_DELETED |
HTTP 409 |
auto-cg_-edc15ca9-858f-46c has both active-active replica and async replica. Please delete the async replica before deleting the active-active replica |
| LINK_IO_ERROR |
HTTP 409 |
I/O error when trying to communicate with remote system '{host}' |
| DATASET_COUNT_LIMIT |
HTTP 409 |
The request exceeds the dataset count limit |
| POOL_PHYSICAL_CAPACITY |
HTTP 409 |
Cannot perform the operation because the pool does not have enough physical capacity |
| REPLICA_OPERATION_NOT_ALLOWED |
HTTP 409 |
This operation can only be performed on the non lagging side of the replica |
| MAX_FAMILY_SIZE |
HTTP 409 |
The volume family whose root is 'auto-volume--546a7b98-6147' now has 0 snapshots, which is the maximum allowed. New snapshots for this family can only be created after other snapshots are deleted |
| REPLICA_INVALID_LINK |
HTTP 409 |
Error on 'ibox012-mock-no-bbu': The link is detached |
| SG_CG_COUNT_LIMIT |
HTTP 409 |
A new snapshot group cannot be created. The consistency group has reached the maximum number of snapshot groups |
| DELETE_WORM_FILESYSTEM_REPLICA_NO_RETAIN_SNAPSHOTS |
HTTP 409 |
WORM filesystem snapshots used for replication are not retained when the replica is deleted. To remove the replica, disable the retain_staging_area feature |
| REPLICA_IS_RESERVED_FOR_INFINISAFE |
HTTP 409 |
Replica is reserved for infinisafe, deleting the replica is not allowed |
| REMOTE_REPLICA_REACHABLE |
HTTP 409 |
Force-deleting the local Active-Active replica is forbidden, as the remote replica is reachable |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Please try to suspend the replica again, deleting an Active Active replica which is not consistent is not supported |
| LINK_IS_NOT_ACTIVE |
HTTP 409 |
Error on 'fred': The link is not active, please refresh the link and try again |
| REPLICA_DELETION_NOT_ALLOWED_ON_TARGET |
HTTP 409 |
Replica deletion is allowed on the target system when the link to source is down |
| ACTIVE_ACTIVE_REPLICA_CANNOT_BE_DELETED_ON_LOCAL_SYSTEM |
HTTP 409 |
Deleting a suspended active-active replica cannot be done from the lagging side |
| REPLICA_DELETION_ERROR |
HTTP 409 |
Replica deletion failed. I/O error when trying to communicate with remote system '{host}' |
| REPLICA_PARTIAL_FAILURE |
HTTP 409 |
Replica(s) deletion failed, replica(s) status is unknown. User intervention is required. An operation with service 'core' failed |
|
Expose Last Consistent Snapshot
| Description |
Expose the last consistent staging area as a snapshot. The ID of the snapshot is returned in the _local_reclaimed_snapshot field
|
| API Endpoint |
POST api/rest/replicas/{id}/expose_last_consistent_snapshot |
| URL Parameters |
| id |
Long |
ID of the replica |
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"async_mode": null,
"state_description": null,
"local_cg_id": null,
"_assigned_remote_ip": "2.2.2.2",
"remote_cg_id": null,
"rpo_state": null,
"temporary_failure_retry_count": 100,
"remote_replica_id": 1774521191801,
"domino": null,
"updated_at": 1774521191754,
"link_id": 9607,
"remote_entity_id": 66540,
"pending_job_count": 0,
"started_at": null,
"id": 9616,
"reserved_for_infinisafe": false,
"snapshots_retention": null,
"_is_internal_source": null,
"_management_configuration_version": "bb31c783-48ab-45db-ade8-16d82c36a09e",
"state_reason": null,
"local_pool_id": 1002,
"permanent_failure_wait_interval": 1200000,
"_assigned_sync_remote_ips": null,
"entity_type": "FILESYSTEM",
"_dataset_configuration_version": "c9ac49a9-7dc2-4747-810e-4d129484b77c",
"job_state": null,
"concurrent_replica": false,
"remote_entity_name": "auto-filesystem--637b4fac-",
"state": null,
"sync_interval": 240000,
"role": "SOURCE",
"suspended_from_local": null,
"remote_cg_name": null,
"_enabled": true,
"is_initial": null,
"_assigned_local_ip_index": 0,
"local_pool_name": "auto-pool--11546b93-77ff-4",
"jobs": [],
"description": "auto-Replica--fe6f75fb-6cd",
"mobility_source": null,
"sync_state": null,
"staging_area_allocated_size": null,
"_replica_configuration_version": "90d371b7-70f2-41b6-a82b-9d094ee4417d",
"next_job_start_time": null,
"last_synchronized": null,
"restore_point": 1234567890,
"remote_pool_name": "auto-pool--11546b93-77ff-4",
"_local_reclaimed_sg_id": null,
... TRUNCATED ...
|
| Errors |
| NO_RMR_SNAPSHOT_FOUND |
HTTP 404 |
No replication snapshots found |
| MAX_FAMILY_SIZE |
HTTP 409 |
The volume family whose root is 'vol_d4e6a693-e4dd-4843-a340-4a6a9ba0eca6_replica' now has 0 snapshots, which is the maximum allowed. New snapshots for this family can only be created after other snapshots are deleted |
| OPERATION_CANNOT_BE_DONE_ON_ACTIVE_ACTIVE_REPLICA |
HTTP 409 |
Expose last consistent snapshot failed because it is not supported for active-active replica |
|
Get a Replica
| Description |
Get a replica.
|
| API Endpoint |
GET api/rest/replicas/{id} |
| URL Parameters |
| id |
long |
ID of the replica |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN,
READ_ONLY,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"async_mode": null,
"state_description": null,
"local_cg_id": null,
"_assigned_remote_ip": "2.2.2.2",
"remote_cg_id": null,
"rpo_state": null,
"temporary_failure_retry_count": 100,
"remote_replica_id": 1774520202016,
"domino": null,
"updated_at": 1774520201902,
"link_id": 3983,
"remote_entity_id": 66539,
"pending_job_count": 0,
"started_at": null,
"id": 3992,
"reserved_for_infinisafe": false,
"snapshots_retention": null,
"_is_internal_source": null,
"_management_configuration_version": "086edf50-41c6-4503-af79-b2a0e75c17d8",
"state_reason": null,
"local_pool_id": 1001,
"permanent_failure_wait_interval": 1200000,
"_assigned_sync_remote_ips": [
"2.2.2.5",
"2.2.2.6",
"2.2.2.7"
],
"entity_type": "VOLUME",
"_dataset_configuration_version": "217f90cc-f271-4183-8e26-60c08c8415f7",
"job_state": null,
"concurrent_replica": false,
"remote_entity_name": "sourceVolume",
"state": "UNKNOWN",
"sync_interval": null,
"role": null,
"suspended_from_local": null,
"remote_cg_name": null,
"_enabled": true,
"is_initial": null,
"_assigned_local_ip_index": 0,
"local_pool_name": "auto-pool--a8462ef1-34ca-4",
"jobs": [],
"description": "auto-Replica--5346c70e-641",
"mobility_source": true,
"sync_state": null,
"staging_area_allocated_size": 10,
"_replica_configuration_version": "6b31bde5-74a1-488c-90db-c265c447af4d",
"next_job_start_time": null,
"last_synchronized": null,
"restore_point": null,
"remote_pool_name": "auto-pool--a8462ef1-34ca-4",
... TRUNCATED ...
|
| Errors |
| REPLICA_NOT_FOUND |
HTTP 404 |
Replica not found |
|
Get a Replicas Jobs
| Description |
Get the replica sync jobs that are currently active.
|
| API Endpoint |
GET api/rest/replicas/{id}/jobs |
| URL Parameters |
| id |
long |
ID of the replica |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN,
READ_ONLY,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"start_time": 1424084198470,
"state": "PAUSED",
"end_time": null,
"is_initial": false,
"type": "SCHEDULED",
"id": 1
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get all Replicas
| Description |
Get all replicas Filterable and Sortable fields:_assigned_local_ip_index,concurrent_replica,_consistent_guid,restore_point,created_at,_dataset_configuration_version,description,domino,_enabled,entity_type,id,including_snapshots,is_preferred,local_cg_name,local_entity_id,local_entity_name,local_pool_id,local_pool_name,_local_reclaimed_sg_id,lock_remote_snapshot_retention,_management_configuration_version,mobility_source,permanent_failure_wait_interval,remote_cg_id,remote_cg_name,remote_entity_id,remote_entity_name,remote_pool_id,remote_pool_name,_remote_reclaimed_sg_id,remote_replica_id,remote_snapshot_suffix,_replica_configuration_version,rpo_type,rpo_value,replication_type,reserved_for_infinisafe,_snapshot_guid,_snapshot_time,snapshots_retention,suspended_from_local,sync_interval,temporary_failure_retry_count,temporary_failure_retry_interval,updated_at. Filterable only fields:state,sync_state. |
| API Endpoint |
GET api/rest/replicas |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN,
READ_ONLY,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 6,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"async_mode": null,
"state_description": null,
"local_cg_id": null,
"_assigned_remote_ip": "2.2.2.2",
"remote_cg_id": null,
"rpo_state": null,
"temporary_failure_retry_count": 10,
"remote_replica_id": 1774520551791,
"domino": null,
"updated_at": 1774520552021,
"link_id": 6307,
"remote_entity_id": 1234,
"pending_job_count": 0,
"started_at": null,
"id": 6315,
"reserved_for_infinisafe": false,
"snapshots_retention": null,
"_is_internal_source": null,
"_management_configuration_version": "53039e4d-9a12-4de0-96f0-914ed9f0d5eb",
"state_reason": null,
"local_pool_id": 1001,
"permanent_failure_wait_interval": 40000,
"_assigned_sync_remote_ips": null,
"entity_type": "VOLUME",
"_dataset_configuration_version": null,
"job_state": null,
"concurrent_replica": false,
"remote_entity_name": "auto-volume--d66eade0-f41c",
"state": null,
"sync_interval": 10000,
"role": "TARGET",
"suspended_from_local": null,
"remote_cg_name": null,
"_enabled": true,
"is_initial": null,
"_assigned_local_ip_index": 0,
"local_pool_name": "auto-pool--87108d05-59b0-4",
"jobs": [],
"description": "auto-Replica--924eb743-dc1",
"mobility_source": null,
"sync_state": null,
"staging_area_allocated_size": null,
"_replica_configuration_version": "0059e484-d8bb-4b85-897b-cdede976dc98",
... TRUNCATED ...
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('1') could not be translated to an expected type |
| NOT_SORTABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be sortable: ('entity_pairs') |
| UNSUPPORTED_SORTABLE_FIELDS_MIX |
HTTP 400 |
The request contains a combination of sortable fields that cannot be processed together. Please adjust your sorting criteria |
|
Resume a Replica
| Description |
Resume a replica from a suspended state.
|
| API Endpoint |
POST api/rest/replicas/{id}/resume |
| URL Parameters |
| id |
long |
ID of the replica |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"async_mode": null,
"state_description": null,
"local_cg_id": null,
"_assigned_remote_ip": "2.2.2.2",
"remote_cg_id": null,
"rpo_state": null,
"temporary_failure_retry_count": 100,
"remote_replica_id": 1774520703006,
"domino": null,
"updated_at": 1774520703395,
"link_id": 8284,
"remote_entity_id": 66539,
"pending_job_count": 0,
"started_at": null,
"id": 8293,
"reserved_for_infinisafe": false,
"snapshots_retention": null,
"_is_internal_source": null,
"_management_configuration_version": "bd51f5fc-820d-49cb-a321-a5b5d4308529",
"state_reason": null,
"local_pool_id": 1001,
"permanent_failure_wait_interval": 1200000,
"_assigned_sync_remote_ips": [
"2.2.2.5",
"2.2.2.6",
"2.2.2.7"
],
"entity_type": "VOLUME",
"_dataset_configuration_version": "b48aa223-6855-4833-aaa2-8108ac01b2d7",
"job_state": null,
"concurrent_replica": false,
"remote_entity_name": "auto-volume--92762465-17b5",
"state": "UNKNOWN",
"sync_interval": null,
"role": null,
"suspended_from_local": null,
"remote_cg_name": null,
"_enabled": true,
"is_initial": null,
"_assigned_local_ip_index": 0,
"local_pool_name": "auto-pool--b37abfe3-110f-4",
"jobs": [],
"description": "auto-Replica--cedccf8d-f2e",
"mobility_source": null,
"sync_state": null,
"staging_area_allocated_size": null,
"_replica_configuration_version": "d17f9047-d384-4521-bdec-605abc3ae087",
"next_job_start_time": null,
"last_synchronized": null,
"restore_point": 1234567890,
"remote_pool_name": "auto-pool--b37abfe3-110f-4",
... TRUNCATED ...
|
| Errors |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Please try to suspend the replica again, resuming an Active Active replica which is not consistent is not supported |
| CANNOT_RESUME_REPLICA_WITH_MIXED_ROLES |
HTTP 409 |
Cannot resume a replica of a local dataset or CG that has both source and target roles |
| LINK_IO_ERROR |
HTTP 409 |
I/O error when trying to communicate with remote system '{host}' |
| REPLICATED_CG_IS_EMPTY |
HTTP 409 |
Resumption is not allowed when the replicated consistency group is empty |
| ACTIVE_ACTIVE_REPLICA_CANNOT_BE_RESUMED_ON_LOCAL_SYSTEM |
HTTP 409 |
Resuming an active-active replica cannot be done from the lagging side |
| REPLICA_PARTIAL_FAILURE |
HTTP 409 |
Replica(s) resumption failed, replica(s) status is unknown. User intervention is required. |
|
Reverse Entity Pairs
| Description |
For internal use (of SRM): Prepare entity_pairs for supplying as consistency anchors to change_role
|
| API Endpoint |
POST api/rest/replicas/reverse_entity_pairs |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"entity_pairs": [
{
"local_entity_id": 1344,
"_local_reclaimed_snapshot_id": 567,
"remote_entity_id": 1003,
"_remote_reclaimed_snapshot_id": 527
}
]
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": [
{
"local_base_action": null,
"local_entity": {
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"created_by_snapshot_policy_id": null,
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 0,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": null,
"qos_policy_name": null,
"serial": null,
"non_reducible_data_reduction_ratio": null,
"id": 1003,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": null,
"pool_name": null,
"parent_id": 0,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"num_blocks": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"size": null,
"type": null,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": 1.0,
"has_internal_children": false,
"snapshot_policy_id": null,
"created_by_schedule_id": null,
"mobility_source": null,
"tree_allocated": null,
"reducible_data_disk_usage_capacity": null,
"has_children": false,
"zeros_capacity": null,
"dataset_type": "VOLUME",
"replica_ids": [],
"snapshot_policy_name": null,
"is_internal": false,
"reducible_host_written_data": null,
"nguid": null,
"provtype": null,
"capacity_savings_per_entity": null,
"cg_id": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": null,
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 0,
"snapshot_expires_at": null,
"pool_id": null,
"compression_enabled": null,
"family_id": null,
"depth": 0,
"qos_policy_id": null,
"write_protected": null,
"mapped": false,
"created_by_snapshot_policy_name": null,
"allocated": null,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"lock_expires_at": null
},
"local_base_entity_id": null,
"_local_base_diffable_id": null,
"duration": null,
"remote_entity_name": null,
"_local_pair_guid": null,
"replica_id": null,
"_report_system_serial_number": null,
"_remote_base_diffable_id": null,
"_report_entity_id": null,
"id": null,
"_remote_reclaimed_snapshot_id": 567,
"progress": null,
"_reclaimed_snapshot_time": null,
"is_initial": null,
"_cg_guid": null,
"_local_reclaimed_snapshot_id": 527,
"_session_snapshots_id": 0,
"_sync_job_committed": null,
"_active_active_port_bit": null,
"last_synchronized": null,
"_consistent_guid": null,
"remote_pair_id": null,
"_cg_consistent_guid": null,
"remote_base_action": null,
"_next_consistent_guid": null,
"local_entity_name": null,
"remote_entity_id": 1344,
"_reclaimed_snapshot_guid": null,
"local_entity_id": 1003,
"_target_old_ro_state": false,
"restore_point": null,
"remote_base_entity_id": null
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Suspend a Replica
| Description |
Suspend a replica
|
| Approval required |
This is a dangerous operation
Suspending an Active-Active replica will cause the remote side to become offline. If hosts access the volumes in the replica in non-uniform storage access (i.e. only on the peer system), they will lose access to the volumes.
|
| API Endpoint |
POST api/rest/replicas/{id}/suspend |
| URL Parameters |
| id |
long |
ID of the replica |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"async_mode": null,
"state_description": null,
"local_cg_id": null,
"_assigned_remote_ip": "2.2.2.2",
"remote_cg_id": null,
"rpo_state": null,
"temporary_failure_retry_count": 100,
"remote_replica_id": 1774520640767,
"domino": null,
"updated_at": 1774520640919,
"link_id": 7892,
"remote_entity_id": 66539,
"pending_job_count": 0,
"started_at": null,
"id": 7903,
"reserved_for_infinisafe": false,
"snapshots_retention": null,
"_is_internal_source": null,
"_management_configuration_version": "8bb07392-1251-4259-98f6-1381d6f4a84d",
"state_reason": null,
"local_pool_id": 1001,
"permanent_failure_wait_interval": 1200000,
"_assigned_sync_remote_ips": [
"2.2.2.5",
"2.2.2.6",
"2.2.2.7"
],
"entity_type": "VOLUME",
"_dataset_configuration_version": "42772cf3-0a8e-4992-9c76-889df4d5deac",
"job_state": null,
"concurrent_replica": false,
"remote_entity_name": "remoteDatasetName",
"state": "SUSPENDED",
"sync_interval": null,
"role": null,
"suspended_from_local": true,
"remote_cg_name": null,
"_enabled": false,
"is_initial": null,
"_assigned_local_ip_index": 0,
"local_pool_name": "auto-pool--20d56f34-ba35-4",
"jobs": [],
"description": "auto-Replica--2ee2799e-ccf",
"mobility_source": null,
"sync_state": "SYNC_STALLED",
"staging_area_allocated_size": null,
"_replica_configuration_version": "0b695a42-2c87-48be-9999-5d13903e5135",
"next_job_start_time": null,
"last_synchronized": null,
"restore_point": 1234567890,
... TRUNCATED ...
|
| Errors |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-559d86de-1' is forbidden to modify replica 'replica auto-volume--0d9e35a3-0c01 <-> auto-volume--0d9e35a3-0c01' |
| APPROVAL_REQUIRED |
HTTP 403 |
Suspending an Active-Active replica will cause the remote side to become offline. If hosts access the volumes in the replica in non-uniform storage access (i.e. only on the peer system), they will lose access to the volumes. |
| ACTIVE_ACTIVE_REPLICA_CANNOT_BE_SUSPENDED_WITH_CONCURRENT_REPLICATION |
HTTP 409 |
Suspending an active-active replica cannot be done if there is an additional async replica defined on the entity |
| LINK_IO_ERROR |
HTTP 409 |
I/O error when trying to communicate with remote system '{host}' |
| ACTIVE_ACTIVE_REPLICA_CANNOT_BE_SUSPENDED_DURING_INITIALIZATION |
HTTP 409 |
Wait for the replica to reach Synchronized state before suspending it |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Suspending a mobility replica is not supported |
| ACTIVE_ACTIVE_REPLICA_CANNOT_BE_SUSPENDED_ON_LOCAL_SYSTEM |
HTTP 409 |
Suspending an active-active replica cannot be done from the lagging side |
| REPLICATED_CG_IS_EMPTY |
HTTP 409 |
Suspension is not allowed when the replicated consistency group is empty |
| REPLICA_PARTIAL_FAILURE |
HTTP 409 |
Replica(s) suspension failed, replica(s) status is unknown. User intervention is required. |
|
Switch Replica Role
| Description |
Switch replica role
|
| Approval required |
This is a dangerous operation
Switching the roles of replicated datasets changes the source to target and the target to source. Note that when the source switches to target, it becomes write-protected
|
| API Endpoint |
POST api/rest/replicas/{id}/switch_role |
| URL Parameters |
| id |
long |
ID of the replica |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"async_mode": null,
"state_description": null,
"local_cg_id": null,
"_assigned_remote_ip": "2.2.2.2",
"remote_cg_id": null,
"rpo_state": null,
"temporary_failure_retry_count": 100,
"remote_replica_id": 1774521986289,
"domino": null,
"updated_at": 1774521986539,
"link_id": 16030,
"remote_entity_id": 34567,
"pending_job_count": 0,
"started_at": null,
"id": 16039,
"reserved_for_infinisafe": false,
"snapshots_retention": null,
"_is_internal_source": null,
"_management_configuration_version": "008e9367-84f6-484c-93a7-433cb6c14b79",
"state_reason": null,
"local_pool_id": 1001,
"permanent_failure_wait_interval": 1200000,
"_assigned_sync_remote_ips": [
"2.2.2.5",
"2.2.2.6",
"2.2.2.7"
],
"entity_type": "VOLUME",
"_dataset_configuration_version": "020f00f4-dee7-4f2c-a08c-656a19f49ca2",
"job_state": null,
"concurrent_replica": false,
"remote_entity_name": "remoteDatasetName",
"state": null,
"sync_interval": null,
"role": "TARGET",
"suspended_from_local": null,
"remote_cg_name": null,
"_enabled": true,
"is_initial": null,
"_assigned_local_ip_index": 0,
"local_pool_name": "auto-pool--dd031a75-c3f1-4",
"jobs": [],
"description": "auto-Replica--de23e91f-114",
"mobility_source": null,
"sync_state": null,
"staging_area_allocated_size": null,
"_replica_configuration_version": "be1ea3ba-3279-4baa-92b3-a8f9793decc0",
"next_job_start_time": null,
"last_synchronized": null,
"restore_point": null,
"remote_pool_name": "auto-pool--dd031a75-c3f1-4",
... TRUNCATED ...
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Switching the roles of replicated datasets changes the source to target and the target to source. Note that when the source switches to target, it becomes write-protected |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-27e88d53-3' is forbidden to modify pool 'auto-pool--561067de-a558-4' |
| REPLICA_NOT_FOUND |
HTTP 404 |
Replica not found |
| NON_SYNCHRONIZED_REPLICA_CANNOT_SWITCH_ROLE |
HTTP 409 |
The replica has to be in Synchronized state in order to allow a role switch |
| REPLICA_UNSUPPORTED_FEATURE |
HTTP 409 |
Replication feature not yet supported: Switching Async replica role |
| OPERATION_CANNOT_BE_DONE_ON_ACTIVE_ACTIVE_REPLICA |
HTTP 409 |
Switching replica role failed because it is not supported for active-active replica |
| REPLICA_NOT_ALLOWED_ON_TARGET |
HTTP 409 |
This operation can only be performed on the source side of the replica |
|
Sync Now
| Description |
Start a sync job
|
| API Endpoint |
POST api/rest/replicas/{id}/sync |
| URL Parameters |
| id |
long |
ID of the replica |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": null,
"error": null
}
|
| Errors |
| OPERATION_CANNOT_BE_DONE_ON_ACTIVE_ACTIVE_REPLICA |
HTTP 409 |
Sync now failed because it is not supported for active-active replica |
| REPLICA_NOT_ALLOWED_WHEN_SUSPENDED |
HTTP 409 |
sync now is not allowed when replica is suspended |
| REPLICA_INVALID_REPLICATION_TYPE |
HTTP 409 |
This operation cannot be performed on SYNC replica |
| REPLICA_SYNC_JOB_INVALID_POOL_STATE |
HTTP 409 |
A new sync job cannot be started while the corresponding pool is locked |
| REPLICATED_CG_IS_EMPTY |
HTTP 409 |
sync now is not allowed when the replicated consistency group is empty |
|
Update a Replica
| Description |
Update a replica
|
| Approval required |
This is a dangerous operation
Replica is reserved for infinisafe, operation may increase the rpo
|
| API Endpoint |
PUT api/rest/replicas/{id} |
| URL Parameters |
| id |
long |
ID of the replica |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"mobility_source": true
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"async_mode": null,
"state_description": null,
"local_cg_id": null,
"_assigned_remote_ip": "2.2.2.2",
"remote_cg_id": null,
"rpo_state": null,
"temporary_failure_retry_count": 100,
"remote_replica_id": 1774520991549,
"domino": null,
"updated_at": 1774520992008,
"link_id": 9161,
"remote_entity_id": 66539,
"pending_job_count": 0,
"started_at": null,
"id": 9170,
"reserved_for_infinisafe": false,
"snapshots_retention": null,
"_is_internal_source": null,
"_management_configuration_version": "96009166-4b62-4a06-a06f-4ca760544c91",
"state_reason": null,
"local_pool_id": 1001,
"permanent_failure_wait_interval": 1200000,
"_assigned_sync_remote_ips": null,
"entity_type": "VOLUME",
"_dataset_configuration_version": "ba765046-f509-4009-932a-6fd381dea2a6",
"job_state": null,
"concurrent_replica": false,
"remote_entity_name": "auto-volume--1f16991c-6177",
"state": "UNKNOWN",
"sync_interval": 10000,
"role": "SOURCE",
"suspended_from_local": null,
"remote_cg_name": null,
"_enabled": true,
"is_initial": null,
"_assigned_local_ip_index": 0,
"local_pool_name": "auto-pool--840e765e-6b9b-4",
"jobs": [],
"description": "auto-Replica--d1d74bd7-64a",
"mobility_source": null,
"sync_state": null,
"staging_area_allocated_size": null,
"_replica_configuration_version": "68197f2e-3e86-4c72-b1a8-a3df95556820",
"next_job_start_time": null,
"last_synchronized": null,
"restore_point": null,
"remote_pool_name": "auto-pool--840e765e-6b9b-4",
"_local_reclaimed_sg_id": null,
"_remote_ip_addresses": null,
... TRUNCATED ...
|
| Errors |
| CANNOT_CHANGE_ENTITY_TYPE |
HTTP 400 |
Error on 'fred': Cannot change type of entity from {currentType} to {targetType} |
| UNSUPPORTED_VALUE |
HTTP 400 |
The request contains an unsupported value (null) for field ('description') |
| WRONG_PARAMETER |
HTTP 400 |
The value (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) of parameter 'description' does not meet a condition: 'size must be between 0 and 255' |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('mobility_source') |
| INVALID_PARAMETER_LENGTH |
HTTP 400 |
Parameter ('remote_snapshot_suffix') length must be between 1 and 255 characters. Actual: 0 |
| APPROVAL_REQUIRED |
HTTP 403 |
Replica is reserved for infinisafe, changing the replica's sync interval may increase the rpo |
| VERSION_MISMATCH |
HTTP 403 |
The target system does not support 'remote_snapshot_suffix' attribute |
| REPLICA_INVALID_RPO_VALUE |
HTTP 409 |
The RPO value (239s) must be either 0, or greater than or equal to the sync interval value (240s) |
| SET_PREFERRED_AA_REPLICA_FROM_LAGGING_SIDE |
HTTP 409 |
The preferred system settings for active-active replica auto-volume--31051f2c-2db7 cannot be modified from the lagging side |
| REPLICA_INVALID_SYNC_INTERVAL |
HTTP 409 |
The replica interval has to be zero or between 4 seconds and 24 hours |
| REPLICA_INVALID_INTERVAL_VALUE |
HTTP 409 |
The sync interval value (86400s) must be either 0, or less than or equal to the RPO value (86400s) |
| INVALID_LOCK_EXPIRY |
HTTP 409 |
Lock expiry date has to be in the future |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
The preferred system settings for Active Active replica cannot be modified while the replica is not consistent. Please try to suspend the replica again is not supported |
| REPLICA_NOT_ALLOWED_ON_TARGET |
HTTP 409 |
This operation can only be performed on the source side of the replica |
| REPLICA_PARTIAL_FAILURE |
HTTP 409 |
Replica(s) update failed, replica(s) status is unknown. User intervention is required. |
| INVALID_LOCK_DURATION |
HTTP 409 |
Lock expiry cannot exceed 365 days |
| SET_PREFERRED_ACTIVE_AA_REPLICA |
HTTP 409 |
The preferred system settings for active-active replica auto-volume--55c1b8d3-68cb cannot be modified when the replica is active. Suspend the replica before updating the preferred system settings |
| REPLICA_NOT_ALLOWED_TWO_SOURCES |
HTTP 409 |
This action cannot be performed when both sides of the replication are sources |
| INVALID_LOCK_DURATION_EXCEEDS_SNAPSHOT_RETENTION |
HTTP 409 |
A replicated snapshot group's lock duration cannot be longer than the snapshot group's retention |
| MISSING_SNAPSHOTS_RETENTION |
HTTP 409 |
The 'snapshots_retention' field must be set for replicas with snapshot replication |
| OPERATION_CANNOT_BE_DONE_ON_ACTIVE_ACTIVE_REPLICA |
HTTP 409 |
Update replica failed because it is not supported for active-active replica |
| UNSUPPORTED_SNAPSHOTS_RETENTION |
HTTP 409 |
The 'snapshots_retention' field can only be set for replicas with snapshot replication |
|
Replication Group
Create Replication Group
| Description |
Creates a replication group.
|
| API Endpoint |
POST api/rest/replication_groups |
| URL Parameters |
none
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"name": "auto-RG-258c00af-c3b7-4c4d",
"pool_id": 1001
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"members_count": 0,
"name": "auto-RG-258c00af-c3b7-4c4d",
"created_at": 1774518619888,
"updated_at": 1774518619888,
"pool_id": 1001,
"is_replicated": false,
"type": "MASTER",
"id": 1002,
"uuid": "6742b0f0-0000-0013-0000-0000000003ea"
},
"error": null
}
|
| Errors |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'replication-group-*' |
| WRONG_PARAMETER |
HTTP 400 |
The value (null) of parameter 'pool_id' does not meet a condition: 'may not be null' |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-7058f17c-a' is forbidden to modify pool 'auto-pool--dc51ddab-72ac-4' |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| POOL_NOT_FOUND |
HTTP 404 |
Pool not found |
| REPLICATION_GROUP_NAME_CONFLICT |
HTTP 409 |
A replication group with this name 'group' already exists |
| RG_COUNT_LIMIT |
HTTP 409 |
Replication group count limit reached |
|
Delete Replication Group
| Description |
Deletes a single replication group.
|
| API Endpoint |
DELETE api/rest/replication_groups/{id} |
| URL Parameters |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"members_count": 0,
"name": "group",
"created_at": 1774518795489,
"updated_at": 1774518795489,
"pool_id": 1001,
"is_replicated": false,
"type": "MASTER",
"id": 1002,
"uuid": "6742b0f0-0000-0013-0000-0000000003ea"
},
"error": null
}
|
| Errors |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-5777dac2-2' is forbidden to modify 'com.infinidat.mgmt.application.replication_group.model.ManagedReplicationGroup@323259e5' |
| REPLICATION_GROUP_NOT_FOUND |
HTTP 404 |
Replication group not found |
| REPLICATED_REPLICATION_GROUP_CANNOT_BE_DELETED |
HTTP 409 |
A replicated replication group cannot be deleted |
|
Get all Replication Groups
| Description |
Returns replication groups according to filter and sort parameters. Filterable and Sortable fields:created_at,id,name,pool_id,type,updated_at. |
| API Endpoint |
GET api/rest/replication_groups |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"members_count": 0,
"name": "group",
"created_at": 1774518795489,
"updated_at": 1774518795489,
"pool_id": 1001,
"is_replicated": false,
"type": "MASTER",
"id": 1002,
"uuid": "6742b0f0-0000-0013-0000-0000000003ea"
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Replication Group by ID
| Description |
Returns a replication group by ID.
|
| API Endpoint |
GET api/rest/replication_groups/{id} |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"members_count": 0,
"name": "auto-RG-b7025c10-eb7c-4e79",
"created_at": 1774518685232,
"updated_at": 1774518685232,
"pool_id": 1002,
"is_replicated": true,
"type": "MASTER",
"id": 1003,
"uuid": "6742b0f0-0000-0013-0000-0000000003eb"
},
"error": null
}
|
| Errors |
| REPLICATION_GROUP_NOT_FOUND |
HTTP 404 |
Replication group not found |
|
Remove Member
| Description |
Removes a member from a replication group.
|
| Approval required |
This is a dangerous operation
Removing a member from a replication group will stop replicating it, and the target member will be deleted.
|
| API Endpoint |
DELETE api/rest/replication_groups/{id}/members/{vvol_id} |
| URL Parameters |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"members_count": 0,
"name": "auto-RG-c3002038-994a-4aad",
"created_at": 1774518804184,
"updated_at": 1774518804184,
"pool_id": 1002,
"is_replicated": true,
"type": "MASTER",
"id": 1003,
"uuid": "6742b0f0-0000-0013-0000-0000000003eb"
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Removing a member from a replication group will stop replicating it, and the target member will be deleted. |
| RG_VVOL_NOT_FOUND |
HTTP 404 |
vVol is not a member of the replication group |
| REPLICATION_GROUP_NOT_FOUND |
HTTP 404 |
Replication group not found |
| REMOVE_MEMBER_NOT_ALLOWED_ON_NON_SOURCE_REPLICA |
HTTP 404 |
Remove member cannot be performed on a non source replica |
| VVOL_NOT_FOUND |
HTTP 404 |
vVol not found |
|
Update Replication Group
| Description |
Updates a replication group attributes with input map data.
|
| API Endpoint |
PUT api/rest/replication_groups/{id} |
| URL Parameters |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"name": "newRgName"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"members_count": 0,
"name": "newRgName",
"created_at": 1774518685232,
"updated_at": 1774518685705,
"pool_id": 1002,
"is_replicated": true,
"type": "MASTER",
"id": 1003,
"uuid": "6742b0f0-0000-0013-0000-0000000003eb"
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('uuid') |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'replication-group-*' |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-d8e5b9f8-2' is forbidden to modify pool 'auto-pool--6e24ad85-6649-4' |
| REPLICATION_GROUP_NOT_FOUND |
HTTP 404 |
Replication group not found |
| ATTRIBUTE_NOT_FOUND |
HTTP 404 |
Attribute not found: 'namee' |
| REPLICATION_GROUP_NAME_CONFLICT |
HTTP 409 |
A replication group with this name 'secondGroup' already exists |
|
Rg Replica
Create Rg Replica
| Description |
Creates a rg replica.
|
| API Endpoint |
POST api/rest/rg_replicas |
| URL Parameters |
none
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"replication_group_id": 1002,
"remote_replication_group_id": null,
"base_action": "NEW",
"replication_type": "ASYNC",
"sync_interval": null,
"link_id": 163,
"rpo_value": null,
"remote_pool_id": 234,
"remote_replication_group_name": null
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"state_description": null,
"replication_group_id": 1002,
"remote_replication_group_id": 0,
"rpo_state": null,
"updated_at": 1774518620300,
"link_id": 163,
"sync_job_id": null,
"jobs": [],
"id": 2,
"sync_interval": 4000,
"_vmware_user": "dnZvbF9yZXBsaWNhdGlvbl8xOV8zNDc4OjQxZGUxMTk5OGMwZWMxZGE=",
"base_action": "NEW",
"job_state": null,
"remote_replica_id": 1774518620171,
"state": null,
"replication_group_name": "auto-RG-258c00af-c3b7-4c4d",
"role": "SOURCE",
"progress": null,
"_enabled": true,
"remote_pool_id": 234,
"_assigned_local_ip_index": 0,
"_session_snapshots_id": 1073741826,
"state_reason": null,
"_replica_configuration_guid": "a61502d7-6d0d-4646-86a6-82c8b62df90e",
"last_synchronized": null,
"_consistent_guid": null,
"rpo_value": 0,
"allocated_size": null,
"_future_consistent_guid": null,
"replication_type": "ASYNC",
"created_at": 1774518620300,
"pool_id": 1001,
"throughput": null,
"_local_link_guid": "0b62138a-033f-4f43-9a87-58cfc7514d3f",
"remote_replication_group_name": "Replication group name"
},
"error": null
}
|
| Errors |
| REPLICATION_GROUP_NOT_FOUND |
HTTP 404 |
Replication group not found |
| REPLICATION_GROUP_ALREADY_REPLICATED |
HTTP 409 |
Replication group auto-Replication_Group-20e761ce-94e5-47ac-8 is already replicated |
| REPLICA_CREATE_EXISTING_INCONSISTENT_PARAM |
HTTP 409 |
A replica created from existing remote entity must contain a remote entity ID |
| REPLICA_LIMIT |
HTTP 409 |
A new replica cannot be created. The system has reached the maximum number of replicas |
| REPLICA_INVALID_SYNC_INTERVAL |
HTTP 409 |
The replica interval has to be zero or between 2 seconds and 4 seconds |
| REPLICA_UNSUPPORTED_FEATURE |
HTTP 409 |
Replication feature not yet supported: Creating a Vasa replica with EXISTING base action |
| REPLICA_MISSING_LINK |
HTTP 409 |
A non-existent link ID was supplied for replica creation |
| REPLICA_INVALID_LINK |
HTTP 409 |
The link is detached |
| LINK_IO_ERROR |
HTTP 409 |
I/O error when trying to communicate with remote system 'fred' |
| REPLICA_CREATE_NEW_INCONSISTENT_PARAM |
HTTP 409 |
A replica created with a new remote entity must contain a remote pool ID |
|
Delete Rg Replica
| Description |
Deletes a single rg replica.
|
| Approval required |
This is a dangerous operation
Deleting a replica will stop replicating the dataset(s)
|
| API Endpoint |
DELETE api/rest/rg_replicas/{id} |
| URL Parameters |
| id |
long |
|
| force |
Boolean |
Force this operation |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"state_description": null,
"replication_group_id": 1002,
"remote_replication_group_id": 543,
"rpo_state": null,
"updated_at": 1774518617665,
"link_id": 189,
"sync_job_id": null,
"jobs": [],
"id": 1,
"sync_interval": 240000,
"base_action": null,
"job_state": null,
"remote_replica_id": 1774518617066,
"state": null,
"replication_group_name": "Target replication group1774518616941",
"role": "TARGET",
"progress": null,
"_enabled": true,
"remote_pool_id": 34987,
"_assigned_local_ip_index": 0,
"_session_snapshots_id": 1073741825,
"state_reason": null,
"_replica_configuration_guid": "81efd123-0d0c-4bbd-89f9-d4ce9b7a7d49",
"last_synchronized": null,
"_consistent_guid": null,
"rpo_value": 300000,
"allocated_size": null,
"_future_consistent_guid": null,
"replication_type": "ASYNC",
"created_at": 1774518617665,
"pool_id": 1001,
"throughput": null,
"_local_link_guid": null,
"remote_replication_group_name": "Source replication group1774518616941"
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting a replica will stop replicating the dataset(s) |
| REMOTE_PERMISSION_REQUIRED |
HTTP 403 |
The operation failed as it requires permission on the remote system |
| REPLICA_NOT_FOUND |
HTTP 404 |
Replica not found |
| REPLICA_PARTIAL_FAILURE |
HTTP 409 |
Replica(s) deletion failed, replica(s) status is unknown. User intervention is required. com.infinidat.mgmt.functional_module.error.FmExternalException: FM service: core, command rc: FAIL, error_string: null, error_code: FM_DUMMY_CODE, error_description: |
| REPLICA_DELETION_ERROR |
HTTP 409 |
Replica deletion failed. Can not delete FAILEDOVER replica, please delete with force flag |
| REPLICA_DELETION_NOT_ALLOWED_ON_TARGET |
HTTP 409 |
Replica deletion is allowed on the target system when the link to source is down |
| LINK_IO_ERROR |
HTTP 409 |
I/O error when trying to communicate with remote system '{host}' |
|
Get all Rg Replicas
| Description |
Returns rg replicas according to filter and sort parameters. Filterable and Sortable fields:_assigned_local_ip_index,created_at,_enabled,id,link_id,pool_id,remote_pool_id,remote_replica_id,remote_replication_group_id,remote_replication_group_name,_replica_configuration_guid,replication_type,role,rpo_value,_session_snapshots_id,sync_interval,updated_at. |
| API Endpoint |
GET api/rest/rg_replicas |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 2,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"state_description": null,
"replication_group_id": 1002,
"remote_replication_group_id": 0,
"rpo_state": null,
"updated_at": 1774518685937,
"link_id": 559,
"sync_job_id": null,
"jobs": [],
"id": 3,
"sync_interval": 4000,
"base_action": null,
"job_state": null,
"remote_replica_id": 1774518685804,
"state": "UNKNOWN",
"replication_group_name": "auto-RG-ddf68cf8-5ebf-4a58",
"role": "SOURCE",
"progress": null,
"_enabled": true,
"remote_pool_id": 234,
"_assigned_local_ip_index": 0,
"_session_snapshots_id": 1073741827,
"state_reason": null,
"_replica_configuration_guid": "be7a33ee-d63b-420b-98dd-b02ccbb21f3a",
"last_synchronized": null,
"_consistent_guid": null,
"rpo_value": 0,
"allocated_size": null,
"_future_consistent_guid": null,
"replication_type": "ASYNC",
"created_at": 1774518685937,
"pool_id": 1001,
"throughput": null,
"_local_link_guid": null,
"remote_replication_group_name": "Replication group name"
},
{
"state_description": null,
"replication_group_id": 1004,
"remote_replication_group_id": 0,
"rpo_state": null,
"updated_at": 1774518686388,
"link_id": 559,
"sync_job_id": null,
"jobs": [],
"id": 4,
"sync_interval": 4000,
"base_action": null,
"job_state": null,
"remote_replica_id": 1774518686289,
"state": "UNKNOWN",
"replication_group_name": "auto-RG-27e07618-3b3d-4403",
"role": "SOURCE",
"progress": null,
"_enabled": true,
"remote_pool_id": 234,
"_assigned_local_ip_index": 1,
"_session_snapshots_id": 1073741828,
"state_reason": null,
"_replica_configuration_guid": "a75e089c-8168-4064-b5f4-d88f741c044e",
"last_synchronized": null,
"_consistent_guid": null,
"rpo_value": 0,
"allocated_size": null,
"_future_consistent_guid": null,
"replication_type": "ASYNC",
"created_at": 1774518686388,
"pool_id": 1003,
"throughput": null,
"_local_link_guid": null,
"remote_replication_group_name": "Replication group name"
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Rg Replica by ID
| Description |
Returns a rg replica by ID.
|
| API Endpoint |
GET api/rest/rg_replicas/{id} |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"state_description": "The vVols rg is failedover",
"replication_group_id": 1002,
"remote_replication_group_id": 543,
"rpo_state": null,
"updated_at": 1774518609408,
"link_id": 115,
"sync_job_id": null,
"jobs": [],
"id": 1,
"sync_interval": 240000,
"base_action": null,
"job_state": null,
"remote_replica_id": 1774518608836,
"state": "SUSPENDED",
"replication_group_name": "Target replication group1774518608732",
"role": "FAILEDOVER",
"progress": null,
"_enabled": true,
"remote_pool_id": 34987,
"_assigned_local_ip_index": 0,
"_session_snapshots_id": 1073741825,
"state_reason": "VASA_REPLICA_FAILEDOVER",
"_replica_configuration_guid": "049324c2-7bed-4ec5-853d-c82d741b0636",
"last_synchronized": null,
"_consistent_guid": null,
"rpo_value": 300000,
"allocated_size": 0,
"_future_consistent_guid": null,
"replication_type": "ASYNC",
"created_at": 1774518609408,
"pool_id": 1001,
"throughput": null,
"_local_link_guid": null,
"remote_replication_group_name": "Source replication group1774518608733"
},
"error": null
}
|
| Errors |
| REPLICA_NOT_FOUND |
HTTP 404 |
Replica not found |
|
Resume Rg Replica
| Description |
Resume a rg replica from a suspended state.
|
| API Endpoint |
POST api/rest/rg_replicas/{id}/resume |
| URL Parameters |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Suspend Rg Replica
| Description |
Suspend a rg replica.
|
| API Endpoint |
POST api/rest/rg_replicas/{id}/suspend |
| URL Parameters |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Sync Rg Replica
| Description |
Starts a sync job for a single rg replica.
|
| API Endpoint |
POST api/rest/rg_replicas/{id}/sync |
| URL Parameters |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"replication_group_id": 1002,
"point_in_timestamp": 1480336355617,
"lcs_id": 123,
"vvols": [],
"point_in_time_replica_id": 122,
"result": "MGMT_COMMAND_RESULT__SUCCESS",
"rmr_sync_job_id": 4
},
"error": null
}
|
| Errors |
| REPLICA_NOT_FOUND |
HTTP 404 |
Replica not found |
| REPLICA_SYNC_JOB_ALREADY_ACTIVE |
HTTP 409 |
A new sync job cannot be started while the previous one is active or queued |
| REPLICA_NOT_ALLOWED_ON_TARGET |
HTTP 409 |
This operation can only be performed on the source side of the replica |
| REPLICA_CANNOT_SYNC_WHILE_AUTO_SUSPENDED |
HTTP 409 |
A replication group cannot be synchronised when it is auto-suspended |
| REPLICA_SYNC_JOB_INVALID_POOL_STATE |
HTTP 409 |
A new sync job cannot be started while the corresponding pool is locked |
|
Update Rg Replica
| Description |
Update a rg replica.
|
| API Endpoint |
PUT api/rest/rg_replicas/{id} |
| URL Parameters |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"_enabled": false
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"state_description": null,
"replication_group_id": 1003,
"remote_replication_group_id": 0,
"rpo_state": null,
"updated_at": 1774518668943,
"link_id": 357,
"sync_job_id": 1,
"jobs": [
{
"start_time": 1424084198470,
"state": "PAUSED",
"end_time": null,
"is_initial": false,
"type": "MANUAL",
"id": 1
}
],
"id": 2,
"sync_interval": 4000,
"base_action": null,
"job_state": "PAUSED",
"remote_replica_id": 1774518668815,
"state": "SUSPENDED",
"replication_group_name": "auto-RG-a0adcef0-0425-4823",
"role": "SOURCE",
"progress": 100,
"_enabled": false,
"remote_pool_id": 234,
"_assigned_local_ip_index": 0,
"_session_snapshots_id": 1073741826,
"state_reason": null,
"_replica_configuration_guid": "7871bacc-cafd-48fb-8825-c2928967811d",
"last_synchronized": 1426012461222,
"_consistent_guid": "6f2c6c63-09b1-4e6d-9381-f363184981f9",
"rpo_value": 0,
"allocated_size": null,
"_future_consistent_guid": null,
"replication_type": "ASYNC",
"created_at": 1774518668943,
"pool_id": 1002,
"throughput": 0,
"_local_link_guid": null,
"remote_replication_group_name": "Replication group name"
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('_replica_configuration_guid') |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('_enabled') could not be translated to an expected type |
| NOT_SUPPORTED_MULTIPLE_UPDATE |
HTTP 400 |
This resource does not support updating multiple fields in one request |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-04a6d5d9-1' is forbidden to modify 'com.infinidat.mgmt.application.replica.model.ManagedVasaReplica@49e1524e' |
| REPLICA_NOT_ALLOWED_ON_TARGET |
HTTP 409 |
This operation can only be performed on the source side of the replica |
| LINK_IO_ERROR |
HTTP 409 |
I/O error when trying to communicate with remote system '{host}' |
| REPLICA_INVALID_SYNC_INTERVAL |
HTTP 409 |
The replica interval has to be zero or between 4 seconds and 24 hours |
|
S3 Account
Create an S3 Account
| Description |
Create a new S3 account
|
| API Endpoint |
POST api/rest/s3_accounts |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"name": "auto-s3Acct-d75edb51-efd2-",
"pool_id": 1000
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"buckets_count": 0,
"pool_name": "auto-pool--21fca1e6-ac91-4",
"pool_id": 1000,
"name": "auto-s3Acct-d75edb51-efd2-",
"tenant_id": 1,
"created_at": 1774519589353,
"enabled": true,
"updated_at": 1774519589353,
"id": 3713,
"credentials_count": 0,
"canonical_id": "f103a227fc15a2e9fd97db4cca8e9d06e062ba2af440a946390be5e5dd257cc7",
"location": null,
"capacity_consumed": null,
"users_count": 0,
"email": null
},
"error": null
}
|
| Errors |
| MISSING_FIELD |
HTTP 400 |
A field ('pool_id') is missing in an object passed |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 7 characters |
| EMAIL_INVALID_RECIPIENT |
HTTP 400 |
Invalid email address: 's3' |
| INVALID_PARAMETER_LENGTH |
HTTP 400 |
Parameter ('location') length must be between 1 and 7 characters. Actual: 9 |
| POOL_IS_NOT_S3 |
HTTP 409 |
The pool 'auto-pool--3fbe2591-c053-4' cannot be associated with an S3 account as it is not of type S3 |
| S3_ACCOUNT_COUNT_LIMIT |
HTTP 409 |
A new account cannot be created, The system has reached the maximum number of accounts |
| S3_ACCOUNT_NAME_CONFLICT |
HTTP 409 |
An account with this name already exists |
| S3_INVALID_CANONICAL_ID |
HTTP 409 |
The canonical ID must be a 64-character hexadecimal string |
| S3_POOL_ALREADY_ASSOCIATED_WITH_ACCOUNT |
HTTP 409 |
S3 pool 'auto-pool--958af96c-5d5a-4' is already associated with S3 account 'auto-account--62c367b0-bd9' |
| S3_CANONICAL_ID_CONFLICT |
HTTP 409 |
The canonical ID already exists |
|
Delete an S3 Account
| Description |
Delete an S3 account by ID
|
| Approval required |
This is a dangerous operation
Deleting account 's3AccountName' will also delete all users and credentials associated with this account
|
| API Endpoint |
DELETE api/rest/s3_accounts/{id} |
| URL Parameters |
| id |
long |
ID of the S3 account |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"buckets_count": 0,
"pool_name": "s3p1",
"pool_id": 1001,
"name": "My-S3-Account",
"tenant_id": 1,
"created_at": 1774522597649,
"enabled": true,
"updated_at": 1774522597649,
"id": 16214,
"credentials_count": 0,
"canonical_id": "6e606c1a46d30b5079b26a1d276d5b223b7b236455f220b11d9504fe84f0f197",
"location": null,
"capacity_consumed": null,
"users_count": 0,
"email": null
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting account 'auto-account--9ab3c2b8-584' will also delete all users and credentials associated with this account |
|
Get all S3 Accounts
| Description |
Get all S3 accounts Filterable and Sortable fields:canonical_id,created_at,email,enabled,id,location,name,updated_at. |
| API Endpoint |
GET api/rest/s3_accounts |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 3,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"buckets_count": 0,
"pool_name": "s3pool4",
"pool_id": 1003,
"name": "account4",
"tenant_id": 1,
"created_at": 1774519735958,
"enabled": true,
"updated_at": 1774519735958,
"id": 4754,
"credentials_count": 0,
"canonical_id": "1a282206a7700adaf1adf9d4d1f7990cb6a1a12abe3420edb130d0d9b9d17c34",
"location": "location",
"capacity_consumed": null,
"users_count": 0,
"email": "email@S3.com"
},
{
"buckets_count": 0,
"pool_name": "s3pool5",
"pool_id": 1004,
"name": "account5",
"tenant_id": 1,
"created_at": 1774519736097,
"enabled": true,
"updated_at": 1774519736097,
"id": 4755,
"credentials_count": 0,
"canonical_id": "1ffdd385536cb6a663bf93addeccf85a37564c9772a840b9c5bda4bf85dbff8d",
"location": "location",
"capacity_consumed": null,
"users_count": 0,
"email": "email@S3.com"
},
{
"buckets_count": 0,
"pool_name": "s3pool6",
"pool_id": 1005,
"name": "account6",
"tenant_id": 1,
"created_at": 1774519736210,
"enabled": true,
"updated_at": 1774519736210,
"id": 4756,
"credentials_count": 0,
"canonical_id": "4e6d0ba006a850f98eecf3aa93bf542f9dc1ed6989d299bb6ddf9203e31c3e92",
"location": "location",
"capacity_consumed": null,
"users_count": 0,
"email": "email@S3.com"
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get an S3 Account
| Description |
Get an S3 account by ID
|
| API Endpoint |
GET api/rest/s3_accounts/{id} |
| URL Parameters |
| id |
long |
ID of the S3 account |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"buckets_count": 0,
"pool_name": "auto-s3Pool-1f2d3f24-9903-",
"pool_id": 1001,
"name": "auto-s3Acct-3585bdc0-3035-",
"tenant_id": 1,
"created_at": 1774522098791,
"enabled": true,
"updated_at": 1774522098791,
"id": 17568,
"credentials_count": 0,
"canonical_id": "e5531a22b0c18a6a8ff7f5b3a5b1cb49efa715d759380db3dd3d7bfda36206f8",
"location": null,
"capacity_consumed": null,
"users_count": 1,
"email": null
},
"error": null
}
|
| Errors |
| S3_ACCOUNT_NOT_FOUND |
HTTP 404 |
S3 account not found |
|
Update an S3 Account
| Description |
Update an S3 account by ID
|
| Approval required |
This is a dangerous operation
Disabling account 's3AccountName' will prevent access to all buckets associated with this account
|
| API Endpoint |
PUT api/rest/s3_accounts/{id} |
| URL Parameters |
| id |
long |
ID of the S3 account |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"enabled": false
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"buckets_count": 0,
"pool_name": "s3p1",
"pool_id": 1001,
"name": "my-s3-account-1",
"tenant_id": 1,
"created_at": 1774521583651,
"enabled": false,
"updated_at": 1774521583733,
"id": 11010,
"credentials_count": 0,
"canonical_id": "f314139cfff65907371ffcf8744ac13597a6ec51a707bbc8d0bab0bd32cfb3ec",
"location": null,
"capacity_consumed": null,
"users_count": 0,
"email": null
},
"error": null
}
|
| Errors |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 7 characters |
| INVALID_PARAMETER_LENGTH |
HTTP 400 |
Parameter ('location') length must be between 1 and 8 characters. Actual: 9 |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('canonical_id') |
| EMAIL_INVALID_RECIPIENT |
HTTP 400 |
Invalid email address: 's3' |
| APPROVAL_REQUIRED |
HTTP 403 |
Disabling account 'auto-account--81f0010a-844' will prevent access to all buckets associated with this account |
| S3_ACCOUNT_NAME_CONFLICT |
HTTP 409 |
An account with this name already exists |
| S3_ACCOUNT_ALREADY_ENABLED |
HTTP 409 |
The S3 account 'auto-account--81f0010a-844' is already enabled |
| S3_ACCOUNT_ALREADY_DISABLED |
HTTP 409 |
The S3 account 'auto-account--81f0010a-844' is already disabled |
|
S3 Bucket
Update an S3 Bucket Attribute
| Description |
Update an attribute of an S3 bucket
|
| API Endpoint |
PUT api/rest/s3_buckets/{id} |
| URL Parameters |
| id |
long |
ID of the S3 bucket |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"tree_allocated": 1000
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"account_name": "s3acct1",
"object_count": 1,
"data_reduction_ratio": 1.0,
"ssd_enabled": false,
"capacity_savings": null,
"name": "s3bckt1",
"disk_usage": null,
"tree_allocated": 0,
"tenant_id": 1,
"created_at": 1774521156062,
"account_id": 10250,
"updated_at": 1774521156062,
"pool_id": 1001,
"compression_enabled": true,
"compression_suppressed": null,
"capacity_consumed": 0,
"allocated": 0,
"id": 10251,
"capacity_savings_per_entity": null
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('tree_allocated') |
| S3_BUCKET_COMPRESSION_ALREADY_ENABLED |
HTTP 409 |
Compression is already enabled for S3 bucket 's3bckt1' |
| S3_BUCKET_COMPRESSION_ALREADY_DISABLED |
HTTP 409 |
Compression is already disabled for S3 bucket 's3bckt1' |
| S3_BUCKET_SSD_CACHE_ALREADY_ENABLED |
HTTP 409 |
SSD Cache is already enabled for S3 bucket 's3bckt1' |
| S3_BUCKET_SSD_CACHE_ALREADY_DISABLED |
HTTP 409 |
SSH Cache is already disabled for S3 bucket 's3bckt1' |
|
Create an S3 Bucket
| Description |
Create a new S3 bucket
|
| API Endpoint |
POST api/rest/s3_buckets |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"name": "auto-bucket--cb020cfe-3ab8",
"account_id": 3713
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"object_count": null,
"data_reduction_ratio": 1.0,
"ssd_enabled": true,
"capacity_savings": null,
"name": "auto-bucket--cb020cfe-3ab8",
"disk_usage": null,
"tree_allocated": 0,
"tenant_id": 1,
"created_at": 1774519589488,
"account_name": "auto-s3Acct-d75edb51-efd2-",
"updated_at": 1774519589488,
"pool_id": 1000,
"compression_enabled": true,
"compression_suppressed": null,
"capacity_savings_per_entity": null,
"capacity_consumed": null,
"allocated": 0,
"id": 3714,
"account_id": 3713
},
"error": null
}
|
| Errors |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 3 and 63 characters |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'my-Bucket-2025.03.20' |
| MISSING_FIELD |
HTTP 400 |
A field ('account_id') is missing in an object passed |
| S3_BUCKET_COUNT_LIMIT |
HTTP 409 |
A new S3 bucket cannot be created. The system has reached the maximum number of S3 buckets |
| S3_ACCOUNT_IS_DISABLED |
HTTP 409 |
Your request cannot be completed because the S3 account 'my-s3-account-1' is disabled. |
| S3_BUCKET_NAME_CONFLICT |
HTTP 409 |
An S3 bucket with this name already exists |
|
Delete an S3 Bucket
| Description |
Delete an S3 bucket by ID
|
| Approval required |
This is a dangerous operation
Bucket 's3BucketName' will be deleted from account s3AccountName only if the bucket is empty
|
| API Endpoint |
DELETE api/rest/s3_buckets/{id} |
| URL Parameters |
| id |
long |
ID of the S3 bucket |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"object_count": 1,
"data_reduction_ratio": 1.0,
"ssd_enabled": true,
"capacity_savings": null,
"name": "s3bucket1",
"disk_usage": null,
"tree_allocated": 0,
"tenant_id": 1,
"created_at": 1774519719960,
"account_name": "s3account1",
"updated_at": 1774519719960,
"pool_id": 1000,
"compression_enabled": true,
"compression_suppressed": null,
"capacity_savings_per_entity": null,
"capacity_consumed": 0,
"allocated": 0,
"id": 4638,
"account_id": 4637
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Bucket 'my-s3-bucket-1' will be deleted from account My-S3-Account only if the bucket is empty |
| S3_BUCKET_NOT_EMPTY |
HTTP 409 |
S3 bucket 'my-s3.bucket-1' cannot be deleted because it is not empty |
|
Get all S3 Buckets
| Description |
Get all S3 buckets Filterable and Sortable fields:created_at,id,name,updated_at. Filterable only fields:capacity_consumed,object_count. |
| API Endpoint |
GET api/rest/s3_buckets |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN,
TECHNICIAN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 3,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"account_name": "s3acct1",
"object_count": 1,
"data_reduction_ratio": 1.0,
"ssd_enabled": true,
"capacity_savings": null,
"name": "s3bckt1",
"disk_usage": null,
"tree_allocated": 0,
"tenant_id": 1,
"created_at": 1774521290158,
"account_id": 10336,
"updated_at": 1774521290158,
"pool_id": 1001,
"compression_enabled": true,
"compression_suppressed": null,
"capacity_consumed": 0,
"allocated": 0,
"id": 10337,
"capacity_savings_per_entity": null
},
{
"account_name": "s3acct2",
"object_count": 1,
"data_reduction_ratio": 1.0,
"ssd_enabled": true,
"capacity_savings": null,
"name": "s3bckt2",
"disk_usage": null,
"tree_allocated": 0,
"tenant_id": 1,
"created_at": 1774521290549,
"account_id": 10338,
"updated_at": 1774521290549,
"pool_id": 1003,
"compression_enabled": true,
"compression_suppressed": null,
"capacity_consumed": 0,
"allocated": 0,
"id": 10339,
"capacity_savings_per_entity": null
},
{
"account_name": "s3acct3",
"object_count": 1,
"data_reduction_ratio": 1.0,
"ssd_enabled": true,
"capacity_savings": null,
"name": "s3bckt3",
"disk_usage": null,
"tree_allocated": 0,
"tenant_id": 1,
"created_at": 1774521290766,
"account_id": 10340,
"updated_at": 1774521290766,
"pool_id": 1005,
"compression_enabled": true,
"compression_suppressed": null,
"capacity_consumed": 0,
"allocated": 0,
"id": 10341,
"capacity_savings_per_entity": null
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get an S3 Bucket
| Description |
Get an S3 bucket by ID
|
| API Endpoint |
GET api/rest/s3_buckets/{id} |
| URL Parameters |
| id |
long |
ID of the S3 bucket |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN,
TECHNICIAN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"account_name": "s3acct1",
"object_count": 1,
"data_reduction_ratio": 1.0,
"ssd_enabled": true,
"capacity_savings": null,
"name": "s3bkt1",
"disk_usage": null,
"tree_allocated": 0,
"tenant_id": 1,
"created_at": 1774521334435,
"account_id": 10582,
"updated_at": 1774521334435,
"pool_id": 1001,
"compression_enabled": true,
"compression_suppressed": null,
"capacity_consumed": 0,
"allocated": 0,
"id": 10585,
"capacity_savings_per_entity": null
},
"error": null
}
|
| Errors |
| S3_BUCKET_NOT_FOUND |
HTTP 404 |
S3 bucket not found |
|
S3 Certificates
Generate S3 Csr
| Description |
Generate S3 CSR
|
| API Endpoint |
POST api/rest/system/s3_certificates/generate_csr |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"C": "IL",
"L": "Location",
"ST": "State"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "-----BEGIN CERTIFICATE REQUEST-----\nMIIC7jCCAdgCAQAwcTELMAkGA1UEBhMCSUwxDjAMBgNVBAgMBVN0YXRlMREwDwYD\nVQQHDAhMb2NhdGlvbjEYMBYGA1UECgwPSW5maW5pZGF0LCBMdGQuMSUwIwYDVQQD\nDBxpYm94MDEyLmxhYi5pbC5pbmZpbmlkYXQuY29tMIIBIjANBgkqhkiG9w0BAQEF\nAAOCAQ8AMIIBCgKCAQEA0ZYIgOq+7nIf17PCsa4CdY2XqNwncij6b9hPhVESi93Y\nWeK7B+J/x1EO9Ye5ekQI69AWsLmP12YOvqymioYjRJI2BsY+BzSgCiXex7fapuLa\n2tXYYuBRaeoHioJDSeDZDsYSafsDI8qnkJdxmlukNHz54MECuUFKI0BKvPcVc17H\nEoKHRTFyaLiMWLjrb/Hxp9Xlz6M8gQM55h+3sXsjU+4sIzzprAPkHFBp31Dw3ifI\nEXHpi3i4xLg42ezIYJmnQhjyEP7/Hms/S5xuy1CEUZcz9Vsxc8NI9iYNQ2qiDsja\nNTwdrVsBeyTRdvhd/N0jy1Qjgu5zUrPxDzbhn0HfpQIDAQABoDowOAYJKoZIhvcN\nAQkOMSswKTAnBgNVHREEIDAeghxpYm94MDEyLmxhYi5pbC5pbmZpbmlkYXQuY29t\nMAsGCSqGSIb3DQEBCwOCAQEAtc3ZT7kbJNWr5LIyykS+UVCARvoFv2SoN4yrAqFV\nL/9YB7nEkGsRs2vm9SuiXWJ6PJWLI27DhkJQL/54K8vHg578FNKL3vPFFPAV141Q\nM6Q5sCQFkF8HlGrtMYgdFslLGbPw1NECin35WI6QL01oYfRmA/DuPI756zBIVMC3\n+7mGwBf+3uT/rngqiRTHXyM1s0BNN1u8maRmga86dvI0AbQ/Qq52TLegkVG3GJej\nGxxXbXVBXcizahJg5VeZpAzHGo6Lbm+stC5kE8TcTlCEOjMRbNpzUMPRqSn0s4HF\n6Q62+DpBTEoDldxYtNPud8V/bM5SPoQ/xiwBLaEDyDPXng==\n-----END CERTIFICATE REQUEST-----\n",
"error": null
}
|
| Errors |
See general list of error codes.
|
Generate S3 Self Signed SSL Certificate
| Description |
Generate S3 self-signed certificate
|
| Approval required |
This is a dangerous operation
Using a self-signed certificated reduces the S3 server's security. Depending on your network policy, some applications might lose access
|
| API Endpoint |
POST api/rest/system/s3_certificates/generate_self_signed |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"public_key": {
"raw": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoLUHJKvu35uitjJZvUva\n3EzzEMd4VcOQKA2fDDqIbc9PBW5Y4TewyXvz3l0swFC/41YrMblUbg3h3d/2WrQ1\nCDNildtttURe9uCzX1WB5jlRDFPfvBQNoOe15hxi8G+961mhzevB3C4HXhy7eQe2\nFhXuz2jbTenpj4WTJrT1jbYg6+s8rPIsaaDE+bCgyo2o8edjoDCZx2iZKs5UaFOU\nVZHYG/gL/Xabe7bv2jP4b3tdErrt3BRG7YWSt1qbSCS6fGHUaVBwZ1HyB3u6gbrR\njTewqRVgMRgJYkFweAFnqXyCQXhpSLYy+udHjijZi/VsWUCnmyIBBhupDzJQrb3b\nhQIDAQAB\n-----END PUBLIC KEY-----\n",
"modulus": "A0B50724ABEEDF9BA2B63259BD4BDADC4CF310C77855C390280D9F0C3A886DCF4F056E58E137B0C97BF3DE5D2CC050BFE3562B31B9546E0DE1DDDFF65AB43508336295DB6DB5445EF6E0B35F5581E639510C53DFBC140DA0E7B5E61C62F06FBDEB59A1CDEBC1DC2E075E1CBB7907B61615EECF68DB4DE9E98F859326B4F58DB620EBEB3CACF22C69A0C4F9B0A0CA8DA8F1E763A03099C768992ACE546853945591D81BF80BFD769B7BB6EFDA33F86F7B5D12BAEDDC1446ED8592B75A9B4824BA7C61D46950706751F2077BBA81BAD18D37B0A91560311809624170780167A97C8241786948B632FAE7478E28D98BF56C5940A79B2201061BA90F3250ADBDDB85",
"algorithm": "RSA"
},
"id": "s3_service",
"certificate": {
"issued_to": {
"C": "US",
"CN": "ibox012.lab.il.infinidat.com",
"O": "Infinidat, Ltd."
},
"issued_on": 1774522216000,
"issued_by": {
"C": "US",
"CN": "ibox012.lab.il.infinidat.com",
"O": "Infinidat, Ltd."
},
"raw": "-----BEGIN CERTIFICATE-----\nMIIDQzCCAi2gAwIBAgIGAZ0pxC75MAsGCSqGSIb3DQEBCzBOMQswCQYDVQQGEwJV\nUzEYMBYGA1UECgwPSW5maW5pZGF0LCBMdGQuMSUwIwYDVQQDDBxpYm94MDEyLmxh\nYi5pbC5pbmZpbmlkYXQuY29tMB4XDTI2MDMyNjEwNTAxNloXDTI3MDQyNjA5NTAx\nNlowTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD0luZmluaWRhdCwgTHRkLjElMCMG\nA1UEAwwcaWJveDAxMi5sYWIuaWwuaW5maW5pZGF0LmNvbTCCASIwDQYJKoZIhvcN\nAQEBBQADggEPADCCAQoCggEBAKC1BySr7t+borYyWb1L2txM8xDHeFXDkCgNnww6\niG3PTwVuWOE3sMl7895dLMBQv+NWKzG5VG4N4d3f9lq0NQgzYpXbbbVEXvbgs19V\ngeY5UQxT37wUDaDnteYcYvBvvetZoc3rwdwuB14cu3kHthYV7s9o203p6Y+Fkya0\n9Y22IOvrPKzyLGmgxPmwoMqNqPHnY6AwmcdomSrOVGhTlFWR2Bv4C/12m3u279oz\n+G97XRK67dwURu2Fkrdam0gkunxh1GlQcGdR8gd7uoG60Y03sKkVYDEYCWJBcHgB\nZ6l8gkF4aUi2MvrnR44o2Yv1bFlAp5siAQYbqQ8yUK2924UCAwEAAaMrMCkwJwYD\nVR0RBCAwHoIcaWJveDAxMi5sYWIuaWwuaW5maW5pZGF0LmNvbTALBgkqhkiG9w0B\nAQsDggEBAF+hiwgtzXpVxEyk28xkiLtIlqrlNuhYjfISqoeZfppHVcDIC6sOFQ62\nslC7qDRX9w69xxBRj2L3GMIHv/xKw+YyDDW7JGsqEJtbAAIzSIYhC+59bixlNhrX\nZYth17YkA/gyPGM3W+mBvqxU/YelFRgxnji6NnH4t5kjya28w691VpyX9p4k5lkD\nx5RhLItegSc9FtERNvUIaZt2uDUGu4eZO3tC8EUZJBFGbgIw8ELzQswiQ3r8GG4t\nknTbcFQwtgBueRR1ZzyU+pZW88AAqkcyonrzR2EvIoqVeSiCM16Ui8DLiOPKMqgz\n4SGzAQMkgqIX1kOk8DQtkTLZ/s/UrNc=\n-----END CERTIFICATE-----\n",
"version": 3,
"signature_algorithm": "SHA256WITHRSA",
"serial_number": "19D29C42EF9",
"expired": false,
"expires_on": 1808733016000
}
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Using a self-signed certificated reduces the S3 server's security. Depending on your network policy, some applications might lose access |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
|
Get S3 SSL Certificate Info
| Description |
Get current S3 certificates info
|
| API Endpoint |
GET api/rest/system/s3_certificates |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"public_key": {
"raw": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtfzj7xb5vghZUlgHQFYR\n1z84Hf6SIU0aRYGE6qhMhHqB8sl0DAhaWv22+DqV/UtIZRHmz8Fw03yBzoWl2Vyj\niVT6AN6MYA3OIfHR1FBNSGlUlAl09kZw0kOT7SCL/7uNvaKsk1iaYVv4MH7lv99A\ngJJpJ8HFWSTo6QJXEgp0YPoTFRQ7MBmTT/8454U9FknWwMSb0LnnnA2Mg7ufpEg9\nMSOCUH5Hh9C2rT48h7QCbCNSe7sn4xCzSaHM42jzO7jK9Kx/QNrvqXwfqt9PT/3t\nPx1LuD4GhkyQ4kz5tARYQ80RseqNHZC28mzk9ezPfm+mBlhwS1qBB1grwqI6N+0l\n0QIDAQAB\n-----END PUBLIC KEY-----\n",
"modulus": "B5FCE3EF16F9BE0859525807405611D73F381DFE92214D1A458184EAA84C847A81F2C9740C085A5AFDB6F83A95FD4B486511E6CFC170D37C81CE85A5D95CA38954FA00DE8C600DCE21F1D1D4504D486954940974F64670D24393ED208BFFBB8DBDA2AC93589A615BF8307EE5BFDF4080926927C1C55924E8E90257120A7460FA1315143B3019934FFF38E7853D1649D6C0C49BD0B9E79C0D8C83BB9FA4483D312382507E4787D0B6AD3E3C87B4026C23527BBB27E310B349A1CCE368F33BB8CAF4AC7F40DAEFA97C1FAADF4F4FFDED3F1D4BB83E06864C90E24CF9B4045843CD11B1EA8D1D90B6F26CE4F5ECCF7E6FA60658704B5A8107582BC2A23A37ED25D1",
"algorithm": "RSA"
},
"id": "s3_service",
"certificate": {
"issued_to": {
"C": "US",
"CN": "mgmt.test.lab.gdc.il.infinidat.com",
"O": "Infinidat, Ltd."
},
"issued_on": 1747559421000,
"issued_by": {
"C": "US",
"CN": "mgmt.test.lab.gdc.il.infinidat.com",
"O": "Infinidat, Ltd."
},
"raw": "-----BEGIN CERTIFICATE-----\nMIIDvDCCAqSgAwIBAgIUSR0NGXwRsEr3JedBS6rMU+oUOJswDQYJKoZIhvcNAQEL\nBQAwVDELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD0luZmluaWRhdCwgTHRkLjErMCkG\nA1UEAwwibWdtdC50ZXN0LmxhYi5nZGMuaWwuaW5maW5pZGF0LmNvbTAgFw0yNTA1\nMTgwOTEwMjFaGA8yMDc1MDUxODA5MTAyMVowVDELMAkGA1UEBhMCVVMxGDAWBgNV\nBAoMD0luZmluaWRhdCwgTHRkLjErMCkGA1UEAwwibWdtdC50ZXN0LmxhYi5nZGMu\naWwuaW5maW5pZGF0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nALX84+8W+b4IWVJYB0BWEdc/OB3+kiFNGkWBhOqoTIR6gfLJdAwIWlr9tvg6lf1L\nSGUR5s/BcNN8gc6Fpdlco4lU+gDejGANziHx0dRQTUhpVJQJdPZGcNJDk+0gi/+7\njb2irJNYmmFb+DB+5b/fQICSaSfBxVkk6OkCVxIKdGD6ExUUOzAZk0//OOeFPRZJ\n1sDEm9C555wNjIO7n6RIPTEjglB+R4fQtq0+PIe0AmwjUnu7J+MQs0mhzONo8zu4\nyvSsf0Da76l8H6rfT0/97T8dS7g+BoZMkOJM+bQEWEPNEbHqjR2QtvJs5PXsz35v\npgZYcEtagQdYK8KiOjftJdECAwEAAaOBgzCBgDAdBgNVHQ4EFgQUEU38l3M8INqn\niyuCiVRIEhbZNdcwHwYDVR0jBBgwFoAUEU38l3M8INqniyuCiVRIEhbZNdcwDwYD\nVR0TAQH/BAUwAwEB/zAtBgNVHREEJjAkgiJtZ210LnRlc3QubGFiLmdkYy5pbC5p\nbmZpbmlkYXQuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQAJUBV6Un4sGSkcWC9cNLW8\n+/VCP4EmEhgL0zXKfUfozoTB3vxBsQ6WoQ3KHet5OgrsIwC49IBYNi3vaXI51w4v\nC4+QWbhZJitGBiF7YyR7jVJlsGAofIgn/DBSbsSDXMA3B9Mo27l/66Zv3TpxXDOd\nSoB/y2b3X++5Ketv+WEACN2wq5w2u6T3lxlGEV8WJ3FsESODezM6vXqZk23vsrOh\nRCzZvf+Q1dhtmHTIVD2VMtwcb6uIycfp6Sngn/H7WncplXTtAKz49ORLVjCPfHBT\n4cGZN6avKSxGUAY/AvTx+JtfcqOolbasIBsEqMtdugODNHAg+EAVXZR1gOr+KVVa\n-----END CERTIFICATE-----\n",
"version": 3,
"signature_algorithm": "SHA256withRSA",
"serial_number": "491D0D197C11B04AF725E7414BAACC53EA14389B",
"expired": false,
"expires_on": 3325396221000
}
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Upload S3 Csr
| Description |
Upload S3 CSR-signed certificate
|
| Approval required |
This is a dangerous operation
Uploading a new SSL certificate requires restarting the S3 service
|
| API Endpoint |
POST api/rest/system/s3_certificates/upload_csr |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
"--Boundary_1_1774841934_1774522208340\r\nContent-Type: application/octet-stream\r\nContent-Disposition: form-data; filename=\"upload\"; name=\"upload\"\r\n\r\n/tmp/jenkins/mgmt-tests/certificates/system_certificate_mock/localhost.crt1774519246782\r\n--Boundary_1_1774841934_1774522208340--\r\n"
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"public_key": {
"raw": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7O+AV6AWRXY4RCN+I7+O\n7w8lpedF7hmtzwvwzPS2Ui4USWuEkk06pazfwjfceff3JBUK328/1EeeOk1pZe/V\nrctG+z5Fs8Oo7E/D3N20TEeOuTWIXR3W+6LrdNJYOS22CyQpBD/uUFvjyXieFGAU\niPJ3fDOTWeF5ePsCeT3aMaum0vrCt6nsXPLAueEVszFwl/n23+Dg5x+zAJYNFF0r\njFC5MHWJ8FDxthESM0N3z/hm77cuglYsgVhkCG5L0wHGOuaNAfxTPMZdZUjjx+Lh\n09308yLASYJd8jxZle9No+xfF6Q66909+m8WqxzoyxslLVrMEJJKtdjt4EBVvwyx\niwIDAQAB\n-----END PUBLIC KEY-----\n",
"modulus": "ECEF8057A01645763844237E23BF8EEF0F25A5E745EE19ADCF0BF0CCF4B6522E14496B84924D3AA5ACDFC237DC79F7F724150ADF6F3FD4479E3A4D6965EFD5ADCB46FB3E45B3C3A8EC4FC3DCDDB44C478EB935885D1DD6FBA2EB74D258392DB60B2429043FEE505BE3C9789E14601488F2777C339359E17978FB02793DDA31ABA6D2FAC2B7A9EC5CF2C0B9E115B3317097F9F6DFE0E0E71FB300960D145D2B8C50B9307589F050F1B61112334377CFF866EFB72E82562C815864086E4BD301C63AE68D01FC533CC65D6548E3C7E2E1D3DDF4F322C049825DF23C5995EF4DA3EC5F17A43AEBDD3DFA6F16AB1CE8CB1B252D5ACC10924AB5D8EDE04055BF0CB18B",
"algorithm": "RSA"
},
"id": "s3_service",
"certificate": {
"issued_to": {
"C": "IL",
"ST": "State",
"CN": "ibox012.lab.il.infinidat.com",
"O": "Infinidat, Ltd.",
"L": "Location"
},
"issued_on": 1774522210000,
"issued_by": {
"C": "US",
"CN": "ca.com",
"O": "Infinidat, Ltd."
},
"raw": "-----BEGIN CERTIFICATE-----\nMIIEvjCCA6igAwIBAgIGAZ0pxBi8MAsGCSqGSIb3DQEBCzA4MQ8wDQYDVQQDDAZj\nYS5jb20xGDAWBgNVBAoMD0luZmluaWRhdCwgTHRkLjELMAkGA1UEBhMCVVMwHhcN\nMjYwMzI2MTA1MDEwWhcNMjcxMTE2MTA1MDEwWjBxMQswCQYDVQQGEwJJTDEOMAwG\nA1UECAwFU3RhdGUxETAPBgNVBAcMCExvY2F0aW9uMRgwFgYDVQQKDA9JbmZpbmlk\nYXQsIEx0ZC4xJTAjBgNVBAMMHGlib3gwMTIubGFiLmlsLmluZmluaWRhdC5jb20w\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDs74BXoBZFdjhEI34jv47v\nDyWl50XuGa3PC/DM9LZSLhRJa4SSTTqlrN/CN9x59/ckFQrfbz/UR546TWll79Wt\ny0b7PkWzw6jsT8Pc3bRMR465NYhdHdb7out00lg5LbYLJCkEP+5QW+PJeJ4UYBSI\n8nd8M5NZ4Xl4+wJ5Pdoxq6bS+sK3qexc8sC54RWzMXCX+fbf4ODnH7MAlg0UXSuM\nULkwdYnwUPG2ERIzQ3fP+Gbvty6CViyBWGQIbkvTAcY65o0B/FM8xl1lSOPH4uHT\n3fTzIsBJgl3yPFmV702j7F8XpDrr3T36bxarHOjLGyUtWswQkkq12O3gQFW/DLGL\nAgMBAAGjggGXMIIBkzAJBgNVHRMEAjAAMIIBMwYDVR0OBIIBKgSCASYwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDs74BXoBZFdjhEI34jv47vDyWl50Xu\nGa3PC/DM9LZSLhRJa4SSTTqlrN/CN9x59/ckFQrfbz/UR546TWll79Wty0b7PkWz\nw6jsT8Pc3bRMR465NYhdHdb7out00lg5LbYLJCkEP+5QW+PJeJ4UYBSI8nd8M5NZ\n4Xl4+wJ5Pdoxq6bS+sK3qexc8sC54RWzMXCX+fbf4ODnH7MAlg0UXSuMULkwdYnw\nUPG2ERIzQ3fP+Gbvty6CViyBWGQIbkvTAcY65o0B/FM8xl1lSOPH4uHT3fTzIsBJ\ngl3yPFmV702j7F8XpDrr3T36bxarHOjLGyUtWswQkkq12O3gQFW/DLGLAgMBAAEw\nTwYDVR0jBEgwRqE8pDowODEPMA0GA1UEAwwGY2EuY29tMRgwFgYDVQQKDA9JbmZp\nbmlkYXQsIEx0ZC4xCzAJBgNVBAYTAlVTggYBnSnEGLkwCwYJKoZIhvcNAQELA4IB\nAQAKWx7aa8AlGPUfmI0+iqaLoT6rdhzJrcfPsneb/ykDNJdKk/cKoerx8L7nG5dk\nLvDHXj/CmMOyjyjBctmAbKoAaK3ETvQRsvxl+ldiSbRsG+zP4tPT4EXBJQSUOOXT\nj9m8Y9Pj1M6/IeiL6ygvcJ6A/Cl24cWhfW8IrEPwFw94Q3SK4Y88mkEOL9LuWFno\n+4/uPkILsvFGrvZVWP2pSZZqoT5603gek1hEd05ZS2Jq19npGqDpXkvXZUtrV6bG\nkKJkAbeROzizX5BRlz9phS8xaYKC/mLnz646Q6+KamcpBjBeo6jQUaG/QGUteLR+\nQNiLhbYcNJmGNeqy5awK/BYR\n-----END CERTIFICATE-----\n",
"version": 3,
"signature_algorithm": "SHA256WITHRSA",
"serial_number": "19D29C418BC",
"expired": false,
"expires_on": 1826362210000
}
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Uploading a new SSL certificate requires restarting the S3 service |
| CSR_MISMATCH |
HTTP 409 |
The certificate provided does not match the certificate request generated previously |
|
Upload S3 SSL Certificate and Key
| Description |
Upload S3 certificate + key
|
| Approval required |
This is a dangerous operation
Uploading a new SSL certificate requires restarting the S3 service
|
| API Endpoint |
POST api/rest/system/s3_certificates |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
"--Boundary_8_2070154626_1774522210913\r\nContent-Type: application/octet-stream\r\nContent-Disposition: form-data; filename=\"upload\"; name=\"upload\"\r\n\r\n-----BEGIN CERTIFICATE-----\nMIIDQDCCAiigAwIBAgIGAZ0pxBpFMA0GCSqGSIb3DQEBCwUAMGExGTAXBgNVBAMM\nEHMzLmluZmluaWRhdC5jb20xCTAHBgNVBAsMADEJMAcGA1UECgwAMREwDwYDVQQH\nDAhMb2NhdGlvbjEOMAwGA1UECAwFU3RhdGUxCzAJBgNVBAYTAklMMB4XDTI2MDMy\nNjEwNTAxMFoXDTI3MDMyMTEwNTAxMFowYTEZMBcGA1UEAwwQczMuaW5maW5pZGF0\nLmNvbTEJMAcGA1UECwwAMQkwBwYDVQQKDAAxETAPBgNVBAcMCExvY2F0aW9uMQ4w\nDAYDVQQIDAVTdGF0ZTELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IB\nDwAwggEKAoIBAQCv1Fe/efOPBU/UZv54el3w0+J+tPHItXI9z8h0BqPV/MxooRVU\nNw66xo/x2lpLUcgoN4AgtRHjsXhkHeFBPDsW1APbNjvp8bGLYijRHGlqjo1Kp6zy\neDXD3eXmfWuL80RhyiVxKd/2vEgIygcy4cvEUcsqoUg2es0zV6rkcDj/nungOKiy\nClZJFuySMSGYrnm8RPzH4z/Yu4PivK3w+Zr1GMatCVSxXeaxrQOhV5ellE3P1qvE\ndIOr5yFnyKDc7kS80nc5MDB5EbNe/D0oh2YfQdwCnbu981gmaaxxMNy10sHWwdym\nndupfCovVu8VADTu7IkpJplE8KbjRKLXVn1hAgMBAAEwDQYJKoZIhvcNAQELBQAD\nggEBABK46aZ6Z2OPFkN/mfgts7MZuSDM4a+tzcmzeQwnZF6rp03qsJVCmLolMkoX\nJQBOUvQcpTFRhROaMhJZuJ9pqbJnFI/vJgpqDkrKwe7r3QlnN3Ty3lgCjX8hNm8a\n6fazb/i55UG9cEHs01yEyfgYlKj6dEQyb8crU/vQAXugifJjs9Ft0ScORW2usFut\nqLZifXv/UtZ8dE8wMLuBtQ//BQo4buvKjy41v5GkXQjZD7KDypx7jZqqAFMVZpu+\nU4v127pLBfmLnZTeLwhHFQ9f6idhUADAhuZBAZ/dot9pojVyY8Fs0kNraYfISuKk\nOAe5u09MXro48QQ4nrz58FPKVZ0=\n-----END CERTIFICATE-----\n\n-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEAr9RXv3nzjwVP1Gb+eHpd8NPifrTxyLVyPc/IdAaj1fzMaKEV\nVDcOusaP8dpaS1HIKDeAILUR47F4ZB3hQTw7FtQD2zY76fGxi2Io0Rxpao6NSqes\n8ng1w93l5n1ri/NEYcolcSnf9rxICMoHMuHLxFHLKqFINnrNM1eq5HA4/57p4Dio\nsgpWSRbskjEhmK55vET8x+M/2LuD4ryt8Pma9RjGrQlUsV3msa0DoVeXpZRNz9ar\nxHSDq+chZ8ig3O5EvNJ3OTAweRGzXvw9KIdmH0HcAp27vfNYJmmscTDctdLB1sHc\npp3bqXwqL1bvFQA07uyJKSaZRPCm40Si11Z9YQIDAQABAoIBAFL6apjOBC/kSVrL\nal9QHGJJlHPIj+xxGONr2kVLVulnXs4n6wlt3FEv4QG50vAFveig3KJS4YjrmY3h\n/gqL0rUAxHsg+qB6tBe78NhSyLsFYE+xlvBs4662W0dtvCH1YbmmrQndQblO/M3N\nDh2oqsHQ+gj5yTsQtCN9RYR+I6AaRjQMxUmt3BoKf4vvV1qRM0jw4dLOQaEPrck/\n5HLMA/kbduN4OsNagAbPPgJt9XHkZQ0v0q5hgQJj7wUURHq573Mq0vwvxOkLXW1I\nNeCDSNkCth3Is0EpLR0EJkrIVL9qjHWBwV6lezZ5NIwyeZQO3wO+Vnpx+K8fdC6R\nHDv+cQsCgYEA1CxmTAjeRNqogf6lri3L+Tochipmr3ut10yodCEBwO7BBKtlxIij\nQiKZMDpwt9wT+ztYBDQ/A0/f8/ahM+mKHvprO7IEbFRTIgoVM72597uaMzwGGHuU\nHUlA80D3GYVl4OD9glf6quqpHhIUvJMKixY2R/+pNy1k+tFbk/ucqIsCgYEA1CYY\nqlJX84S/9T58R9OeiysRjupUvjl+ATRGUDq/dyc0IPzAEmUzJZKFzLEgpDe4n88z\nlgKKMKWv2aGuOyJ+OSTFVZFe1d7f6Zb5Rz/1ZPvmeTtX11tZUEq3q+RF//7H1mKw\nPpNMNgn9bAsOkxTCcI80KBFJrLnvGEXdGWTuQ0MCgYEAopn4N9MgDCKKuz0dWfQM\n+s43J/b8xQWCv5onCwB0qJgQ4nQ8RLb2buu2/If89Fq8EXB0Tpx/ohknp37eIbub\nt4vwfEo8K40gPNj/UKzZBWsHjLY2cbLbWupV1VZ3SF68KfAjOC4Wk7/MpZfzvmTt\n0pPOO7VJyFiIp9OkXC+a6msCgYEAlhPlOwhJg9ITYdC0ZrOD4vuyziFjlbZiN0Pd\nwf/tVsN7EyL6VYkV56yBzs43QzTP/O29lo9xZvyvLAw+j0LVfGNQ3jmalz21tS/C\nZO8QEEJLRtP+TjEnO6+/w3AXPQPmJvllqL7XGRt0Fay0wMPc0Xfc88NXFUPrqoYx\n5TcLfrUCgYEAiKH5sftAXQWyoOa8fclSJ4xKskZw9LfYU8WAgzRLIiLKdGyeNr1S\nyen4r7HmzGcJjMBT1ZHV8h6qjpdB7IleaNbr9A+t6M4zw+i2T1KPZrn4L3/Kizbg\nHRnKTR1+SHvQ1QcTcxd1bW6Ntxftf+KgNwSMkiVZFEsWOjn1kHYh8Hc=\n-----END RSA PRIVATE KEY-----\n\r\n--Boundary_8_2070154626_1774522210913--\r\n"
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"public_key": {
"raw": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv0fiLEmFEELvm9tvCFka\nEXTY/4n64jrWfmK7Ym+OLWqV/Aq1/cK2buW06G/7viOXdXeUbolMbgWiwGUNswBc\neUKLzhtFuevxvlOvCe/b9AKfGvKJc29aweVGsnUFMimIPODMYQ7EVkzSKLcDZU+1\n8mcy3srLn/HK9WGehZb95khpE3pjA4Rqf0f3ae5zl5P4H4odtUfsCQrAyeV4e7V6\nZyExxuIP3Km+wIc4uxkZvVxq/9p+MgrbAtN1MS8wtYhEL+XlPGGoXtxY03WURLOE\nmMr06Wz5W8gPWX510VgPAueHH07lsPi+HskWnmjuowOF7yDyw7boa2vQbCLOttee\n1QIDAQAB\n-----END PUBLIC KEY-----\n",
"modulus": "BF47E22C49851042EF9BDB6F08591A1174D8FF89FAE23AD67E62BB626F8E2D6A95FC0AB5FDC2B66EE5B4E86FFBBE23977577946E894C6E05A2C0650DB3005C79428BCE1B45B9EBF1BE53AF09EFDBF4029F1AF289736F5AC1E546B275053229883CE0CC610EC4564CD228B703654FB5F26732DECACB9FF1CAF5619E8596FDE64869137A6303846A7F47F769EE739793F81F8A1DB547EC090AC0C9E5787BB57A672131C6E20FDCA9BEC08738BB1919BD5C6AFFDA7E320ADB02D375312F30B588442FE5E53C61A85EDC58D3759444B38498CAF4E96CF95BC80F597E75D1580F02E7871F4EE5B0F8BE1EC9169E68EEA30385EF20F2C3B6E86B6BD06C22CEB6D79ED5",
"algorithm": "RSA"
},
"id": "s3_service",
"certificate": {
"issued_to": {
"C": "US",
"CN": "ibox.infinidat.com",
"L": "TLV",
"O": "Infinidat LTD",
"DC": "infinidat; com",
"OU": "Infinidat LTD",
"ST": "TLV"
},
"issued_on": 1663775911000,
"issued_by": {
"C": "US",
"CN": "ibox.infinidat.com",
"L": "TLV",
"O": "Infinidat LTD",
"DC": "infinidat; com",
"OU": "Infinidat LTD",
"ST": "TLV"
},
"raw": "-----BEGIN CERTIFICATE-----\nMIIEHzCCAwegAwIBAgIUd5C53LqOS8s5zYOTTxfn0qBNuzswDQYJKoZIhvcNAQEL\nBQAwgaYxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANUTFYxDDAKBgNVBAgMA1RMVjEW\nMBQGA1UECgwNSW5maW5pZGF0IExURDEWMBQGA1UECwwNSW5maW5pZGF0IExURDEb\nMBkGA1UEAwwSaWJveC5pbmZpbmlkYXQuY29tMRkwFwYKCZImiZPyLGQBGRYJaW5m\naW5pZGF0MRMwEQYKCZImiZPyLGQBGRYDY29tMB4XDTIyMDkyMTE1NTgzMVoXDTMy\nMDkxODE1NTgzMVowgaYxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANUTFYxDDAKBgNV\nBAgMA1RMVjEWMBQGA1UECgwNSW5maW5pZGF0IExURDEWMBQGA1UECwwNSW5maW5p\nZGF0IExURDEbMBkGA1UEAwwSaWJveC5pbmZpbmlkYXQuY29tMRkwFwYKCZImiZPy\nLGQBGRYJaW5maW5pZGF0MRMwEQYKCZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv0fiLEmFEELvm9tvCFkaEXTY/4n64jrWfmK7\nYm+OLWqV/Aq1/cK2buW06G/7viOXdXeUbolMbgWiwGUNswBceUKLzhtFuevxvlOv\nCe/b9AKfGvKJc29aweVGsnUFMimIPODMYQ7EVkzSKLcDZU+18mcy3srLn/HK9WGe\nhZb95khpE3pjA4Rqf0f3ae5zl5P4H4odtUfsCQrAyeV4e7V6ZyExxuIP3Km+wIc4\nuxkZvVxq/9p+MgrbAtN1MS8wtYhEL+XlPGGoXtxY03WURLOEmMr06Wz5W8gPWX51\n0VgPAueHH07lsPi+HskWnmjuowOF7yDyw7boa2vQbCLOttee1QIDAQABo0MwQTAL\nBgNVHQ8EBAMCBDAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFDUaRTNa\nmKJ7KcjQncdxC8EHCGvUMA0GCSqGSIb3DQEBCwUAA4IBAQBaOriBlHM1w2SWPOVe\n9PxvDsUwZbI9+A6Ec/OoBEyCUdqq5yDUVPxYmDZmXvyTG0jIpUAljbObONYnL7L0\nJ98AcgC95N88xnZax11h1o0VRw5dO5hGzCA0wM72xgb/K9Pmir+vBCp5b+DEUb9z\nS+sip2skuqLodcVw4J8sEvVFg89GH1JI7OnZSF+4q/m/qrUG91jnw3bjPExP8UYH\nwrgd/CiqkkJ8F7RAPPbE89vRIHfj7vdzLCn8jBO8IW5cAkjY3fgssQ8urWNpPQut\ndbC+FPDecPx1x51mUsPd/qKCM66cwJPVTgXFOl8jNt72fmO7behwWEZ69A6+p1xZ\neOkf\n-----END CERTIFICATE-----\n",
"version": 3,
"signature_algorithm": "SHA256WITHRSA",
"serial_number": "7790B9DCBA8E4BCB39CD83934F17E7D2A04DBB3B",
"expired": false,
"expires_on": 1979135911000
}
},
"error": null
}
|
| Errors |
| INVALID_CERTIFICATE |
HTTP 400 |
Certificate is invalid. Reason: N/A |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| MALFORMED_KEY |
HTTP 400 |
The key provided is malformed or in unsupported format |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| APPROVAL_REQUIRED |
HTTP 403 |
Uploading a new SSL certificate requires restarting the S3 service |
|
S3 User Credential
Create S3 User Credential
| Description |
Create a new S3 user credential
|
| API Endpoint |
POST api/rest/s3_credentials |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"user_id": 17814
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"access_key": "tTlXnDKR2WARITOxZWkK",
"status": "ENABLED",
"user_id": 17814,
"description": null,
"last_used": null,
"tenant_id": 1,
"created_at": 1774522132116,
"updated_at": 1774522132116,
"account_name": "auto-s3Acct-95486a8d-29ad-",
"secret_key": "+MUd/E43ShMCPHL25g3+3GaBu6JaPHS+OkMZCO7u",
"user_name": "auto-s3User-c9b4",
"id": 17816
},
"error": null
}
|
| Errors |
| PARAMETER_CONFLICT |
HTTP 400 |
Parameter 'description' does not meet a condition: 'contains unsupported characters' |
| MISSING_FIELD |
HTTP 400 |
A field ('user_id') is missing in an object passed |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('user_id') could not be translated to an expected type |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for TECHNICIAN |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-01b3ad90-b' is forbidden to modify S3 account 'auto-s3Acct-3728d828-3e5e-' |
| S3_USER_NOT_FOUND |
HTTP 404 |
S3 user not found |
| S3_CREDENTIALS_PER_USER_COUNT_LIMIT |
HTTP 409 |
A new credential cannot be added to S3 user 'auto-s3User-b7fc' in account 'auto-s3Acct-8a7fc4da-0faf-'. The user already has the maximum number of credentials allowed |
| S3_ACCESS_KEY_TOO_LONG |
HTTP 409 |
The access key cannot contain more than 128 characters |
| S3_ACCESS_KEY_TOO_SHORT |
HTTP 409 |
The access key must contain at least 3 characters |
| S3_ACCESS_KEY_CONFLICT |
HTTP 409 |
Access key 'duplicateAccessKey' is already in use by user 'auto-s3User-0dbf' |
| S3_SECRET_KEY_INVALID_CHARACTERS |
HTTP 409 |
A secret key can only contain printable ASCII characters |
| S3_SECRET_KEY_TOO_LONG |
HTTP 409 |
The secret key cannot contain more than 64 characters |
| S3_SECRET_KEY_TOO_SHORT |
HTTP 409 |
The secret key must contain at least 10 characters |
| S3_ACCESS_KEY_INVALID_CHARACTERS |
HTTP 409 |
An access key can only contain lower and upper case letters, numbers, hyphen(-), plus(+), period(.), dollar($), hash(#) and underscore(_) characters |
| S3_DESCRIPTION_TOO_LONG |
HTTP 409 |
The description cannot be more than 256 characters |
|
Delete S3 User Credential
| Description |
Delete an S3 user credential by ID
|
| Approval required |
This is a dangerous operation
Deleting S3 credential 'accessKey' will cause applications using this credential to lose access to S3 buckets
|
| API Endpoint |
DELETE api/rest/s3_credentials/{id} |
| URL Parameters |
| id |
long |
ID of the S3 user credential |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"access_key": "kalwdRQUeFnpdHMcbekw",
"status": "ENABLED",
"user_id": 19629,
"description": "test description",
"last_used": 1774522281918,
"tenant_id": 1,
"created_at": 1774522281897,
"updated_at": 1774522281969,
"account_name": "auto-s3Acct-3728d828-3e5e-",
"user_name": "auto-s3User-ea18",
"id": 19631
},
"error": null
}
|
| Errors |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-01b3ad90-b' is forbidden to modify S3 user credential 'MOZmuhvNS3k+kpV+ViaI' |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting S3 credential 'myAccessKey' will cause applications using this credential to lose access to S3 buckets |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for TECHNICIAN |
| S3_CREDENTIAL_NOT_FOUND |
HTTP 404 |
S3 credential not found |
|
Get all S3 User Credentials
| Description |
Get all S3 user credential Filterable and Sortable fields:access_key,created_at,description,id,status,updated_at. |
| API Endpoint |
GET api/rest/s3_credentials |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN,
TECHNICIAN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 5,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"access_key": "gbiRBoQdVPWvInmzzKTt",
"status": "ENABLED",
"user_id": 19382,
"description": null,
"last_used": 1774522248250,
"tenant_id": 1,
"created_at": 1774522247933,
"updated_at": 1774522247933,
"account_name": "account1",
"user_name": "user1",
"id": 19387
},
{
"access_key": "Obr2oujLHjbrbS7bxOaW",
"status": "ENABLED",
"user_id": 19382,
"description": null,
"last_used": 1774522248250,
"tenant_id": 1,
"created_at": 1774522248035,
"updated_at": 1774522248035,
"account_name": "account1",
"user_name": "user1",
"id": 19388
},
{
"access_key": "kVZXumsNYAGd4VGL53DI",
"status": "ENABLED",
"user_id": 19382,
"description": null,
"last_used": 1774522248250,
"tenant_id": 1,
"created_at": 1774522248102,
"updated_at": 1774522248102,
"account_name": "account1",
"user_name": "user1",
"id": 19389
},
{
"access_key": "jhnNEihpcLXimSk3TKLN",
"status": "ENABLED",
"user_id": 19385,
"description": null,
"last_used": 1774522248250,
"tenant_id": 1,
"created_at": 1774522248161,
"updated_at": 1774522248161,
"account_name": "account2",
"user_name": "user2",
"id": 19390
},
{
"access_key": "ZykGPBrZvHbAQJCAJOBt",
"status": "ENABLED",
"user_id": 19385,
"description": null,
"last_used": 1774522248250,
"tenant_id": 1,
"created_at": 1774522248231,
"updated_at": 1774522248231,
"account_name": "account2",
"user_name": "user2",
"id": 19391
}
],
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('secret_key') |
|
Get S3 User Credential
| Description |
Get an S3 user credential by ID
|
| API Endpoint |
GET api/rest/s3_credentials/{id} |
| URL Parameters |
| id |
long |
ID of the S3 user credential |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN,
TECHNICIAN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"access_key": "KUqDr+VF+w63mLHjFojQ",
"status": "ENABLED",
"user_id": 19801,
"description": null,
"last_used": 1774522305399,
"tenant_id": 1,
"created_at": 1774522305378,
"updated_at": 1774522305378,
"account_name": "auto-s3Acct-4caf42df-7b4e-",
"user_name": "auto-s3User-0752",
"id": 19803
},
"error": null
}
|
| Errors |
| S3_CREDENTIAL_NOT_FOUND |
HTTP 404 |
S3 credential not found |
|
Update S3 User Credential Attributes
| Description |
Update an S3 user credential attributes by ID
|
| Approval required |
This is a dangerous operation
Disabling S3 credential 'accessKey' will cause applications using this credential to lose access to S3 buckets
|
| API Endpoint |
PUT api/rest/s3_credentials/{id} |
| URL Parameters |
| id |
long |
ID of the S3 user credential |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"description": "test description"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"access_key": "wwPmaMO7EptnpZqulmW3",
"status": "ENABLED",
"user_id": 19603,
"description": "test description",
"last_used": 1774522277376,
"tenant_id": 1,
"created_at": 1774522277358,
"updated_at": 1774522277411,
"account_name": "auto-s3Acct-7c90085b-a2f4-",
"user_name": "auto-s3User-84f7",
"id": 19605
},
"error": null
}
|
| Errors |
| PARAMETER_CONFLICT |
HTTP 400 |
Parameter 'description' does not meet a condition: 'contains unsupported characters' |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('access_key') |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for TECHNICIAN |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-01b3ad90-b' is forbidden to modify S3 account 'auto-s3Acct-3728d828-3e5e-' |
| APPROVAL_REQUIRED |
HTTP 403 |
Disabling S3 credential 'qINjmVBzacjQbBSytqCy' will cause applications using this credential to lose access to S3 buckets |
| S3_CREDENTIAL_NOT_FOUND |
HTTP 404 |
S3 credential not found |
| S3_DESCRIPTION_TOO_LONG |
HTTP 409 |
The description cannot be more than 256 characters |
|
S3 User
Create S3 User
| Description |
Create a new S3 user
|
| API Endpoint |
POST api/rest/s3_users |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"name": "s3user1",
"account_id": 10271
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"status": "ENABLED",
"last_used": null,
"uid": null,
"tenant_id": 1,
"description": null,
"updated_at": 1774521159309,
"account_id": 10271,
"account_name": "s3acct1",
"is_root": false,
"canonical_id": "3360e3614ee5dc34d91cddaf6034d53900f2734810bbb4cff8dd0c10b1a8c92e",
"gid": null,
"created_at": 1774521159309,
"num_credentials": 0,
"id": 10272,
"name": "s3user1"
},
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('account_id') could not be translated to an expected type |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 20 characters |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('canonical_id') |
| MISSING_FIELD |
HTTP 400 |
A field ('account_id') is missing in an object passed |
| S3_ACCOUNT_NOT_FOUND |
HTTP 404 |
S3 account not found |
| S3_USER_NAME_CONFLICT |
HTTP 409 |
S3 user 's3-user' already exists in account 'auto-s3Acct-d802d88c-88a2-' |
| S3_USERS_PER_ACCOUNT_COUNT_LIMIT |
HTTP 409 |
A new S3 user cannot be created in account 'auto-s3Acct-3e08ae85-07dc-'. The system has reached the maximum number of users per S3 account |
| S3_USERS_PER_SYSTEM_COUNT_LIMIT |
HTTP 409 |
A new S3 user cannot be created. The system has reached the maximum number of S3 users |
| S3_DESCRIPTION_TOO_LONG |
HTTP 409 |
The description cannot be more than 256 characters |
|
Delete S3 User
| Description |
Delete an S3 user by ID
|
| Approval required |
This is a dangerous operation
Deleting S3 user 's3UserName' will permanently delete this user's credentials
|
| API Endpoint |
DELETE api/rest/s3_users/{id} |
| URL Parameters |
| id |
long |
ID of the S3 user |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"status": "ENABLED",
"last_used": 1743586166,
"uid": null,
"tenant_id": 1,
"description": null,
"updated_at": 1774522093058,
"account_id": 17524,
"account_name": "auto-s3Acct-71dd26d9-4020-",
"is_root": false,
"canonical_id": "83a1a0b35841990d92dc192e9982668fd1e8b4fc890f8ad944e49f6796cae5f9",
"gid": null,
"created_at": 1774522093058,
"num_credentials": 0,
"id": 17525,
"name": "auto-s3User-6d14"
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting S3 user 'auto-s3User-c9b4' will permanently delete this user's credentials |
|
Get all S3 Users
| Description |
Get all S3 users Filterable and Sortable fields:canonical_id,created_at,description,gid,id,is_root,name,status,uid,updated_at. |
| API Endpoint |
GET api/rest/s3_users |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN,
TECHNICIAN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 5,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"status": "ENABLED",
"last_used": 1743586166,
"uid": null,
"tenant_id": 1,
"description": null,
"updated_at": 1774522110239,
"account_id": 17658,
"account_name": "auto-s3Acct-16bcc679-4e3d-",
"is_root": false,
"canonical_id": "9f569455a95962ae7cca83d0747425ad9f4aab376dacf23f98bec5410e415ef4",
"gid": null,
"created_at": 1774522110239,
"num_credentials": 0,
"id": 17659,
"name": "auto-s3User-750a"
},
{
"status": "ENABLED",
"last_used": 1743586166,
"uid": null,
"tenant_id": 1,
"description": null,
"updated_at": 1774522110508,
"account_id": 17661,
"account_name": "auto-s3Acct-2adc68a4-f460-",
"is_root": false,
"canonical_id": "21182e4565e789629104f646752eb39035e9cc78ef199b50bf3b4146e3152322",
"gid": null,
"created_at": 1774522110508,
"num_credentials": 0,
"id": 17662,
"name": "auto-s3User-c792"
},
{
"status": "ENABLED",
"last_used": 1743586166,
"uid": null,
"tenant_id": 1,
"description": null,
"updated_at": 1774522110697,
"account_id": 17664,
"account_name": "auto-s3Acct-eba1d744-df00-",
"is_root": false,
"canonical_id": "6a7cea4e327b8f981f2d0765a5ffdb1427945caa37c634d62f0b3f0f46ddc830",
"gid": null,
"created_at": 1774522110697,
"num_credentials": 0,
"id": 17665,
"name": "auto-s3User-e25c"
},
{
"status": "ENABLED",
"last_used": 1743586166,
"uid": null,
"tenant_id": 1,
"description": null,
"updated_at": 1774522111016,
"account_id": 17667,
"account_name": "auto-s3Acct-c4805fb6-2db8-",
"is_root": false,
"canonical_id": "49e6e261b6aa9008ea16d9199c0ad96660352fc04c803347fa26f7a753efe62c",
"gid": null,
"created_at": 1774522111016,
"num_credentials": 0,
"id": 17668,
"name": "auto-s3User-5dba"
},
{
"status": "ENABLED",
"last_used": 1743586166,
"uid": null,
"tenant_id": 1,
"description": null,
"updated_at": 1774522111158,
"account_id": 17670,
"account_name": "auto-s3Acct-a35e61a6-ac9a-",
"is_root": false,
"canonical_id": "88d48218c043287c4cb2a60cb003d48c6af92c82c92c2c152644747e4be7f0b5",
"gid": null,
"created_at": 1774522111158,
"num_credentials": 0,
"id": 17671,
"name": "auto-s3User-a570"
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get S3 User
| Description |
Get an S3 user by ID
|
| API Endpoint |
GET api/rest/s3_users/{id} |
| URL Parameters |
| id |
long |
ID of the S3 user |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN,
TECHNICIAN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"status": "DISABLED",
"last_used": 1743586166,
"uid": null,
"tenant_id": 1,
"description": "test get s3-user by id",
"updated_at": 1774522098862,
"account_id": 17568,
"account_name": "auto-s3Acct-3585bdc0-3035-",
"is_root": true,
"canonical_id": "cd0095bb721b22419e23eb0ae36199c9b81c0b6d86ae0790896c15ca9508cb82",
"gid": null,
"created_at": 1774522098862,
"num_credentials": 0,
"id": 17569,
"name": "s3-user"
},
"error": null
}
|
| Errors |
| S3_USER_NOT_FOUND |
HTTP 404 |
S3 user not found |
|
Update S3 User Attributes
| Description |
Update an S3 user attributes by ID
|
| Approval required |
This is a dangerous operation
Disabling S3 user 's3UserName' will cause applications using this user's credentials to lose access to S3 buckets
|
| API Endpoint |
PUT api/rest/s3_users/{id} |
| URL Parameters |
| id |
long |
ID of the S3 user |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"is_root": null
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"status": "ENABLED",
"last_used": 1743586166,
"uid": null,
"tenant_id": 1,
"description": null,
"updated_at": 1774522102591,
"account_id": 17596,
"account_name": "auto-s3Acct-3de37ea1-b133-",
"is_root": false,
"canonical_id": "27bddb8f61c09785b9662e7015a04a7acc4c3b9117c26bb52241cd6d59d8920b",
"gid": null,
"created_at": 1774522102420,
"num_credentials": 0,
"id": 17597,
"name": "auto-s3User-65c2"
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('account_id') |
| PARAMETER_CONFLICT |
HTTP 400 |
Parameter 'uid' does not meet a condition: 'once set cannot be modified' |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| WRONG_PARAMETER |
HTTP 400 |
The value (-1) of parameter 'uid' does not meet a condition: 'must be greater than or equal to 0' |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('is_root') could not be translated to an expected type |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Set UID and GID are not allowed for [ADMIN] |
| APPROVAL_REQUIRED |
HTTP 403 |
Disabling S3 user 's3-user' will cause applications using this user's credentials to lose access to S3 buckets |
| S3_USER_ALREADY_ENABLED |
HTTP 409 |
S3 user 's3-user' is already enabled |
| S3_DESCRIPTION_TOO_LONG |
HTTP 409 |
The description cannot be more than 256 characters |
| S3_USER_ALREADY_DISABLED |
HTTP 409 |
S3 user 's3-user' is already disabled |
|
San Clients
Get all San Clients
| Description |
Get all of the SAN Clients in the system. Filterable and Sortable fields:
|
| API Endpoint |
GET api/rest/san_clients |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 2,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"luns": [],
"path_health": "NOT_OK",
"hosts_count": 3,
"name": "cluster6",
"resiliency": "DISCONNECTED",
"tenant_id": 1,
"created_at": 1774519752951,
"host_type": "DEFAULT",
"updated_at": 1774519752951,
"san_client_type": "CLUSTER",
"hosts": [
{
"luns": [],
"resiliency": "DISCONNECTED",
"ports_count": 1,
"host_type": "DEFAULT",
"updated_at": 1774519752775,
"port_type": [
"FC"
],
"id": 1005,
"paths": 0,
"security_chap_inbound_username": null,
"min_expected_paths": 0,
"subsystem_nqn": null,
"path_health": "NONE",
"security_chap_outbound_username": null,
"security_method": "NONE",
"is_min_expected_paths_user_set": false,
"san_client_type": "HOST",
"optimized": true,
"host_cluster_id": 1006,
"name": "host6",
"tenant_id": 1,
"created_at": 1774519752775,
"ports_disconnected": 1,
"security_chap_has_inbound_secret": false,
"luns_count": 0,
"ports": [
{
"host_id": 1005,
"type": "FC",
"address": "aaaaaaaaaaaa001a"
}
],
... TRUNCATED ...
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('ports_count') |
| UNSUPPORTED_FILTER_RELATION |
HTTP 400 |
The filtering operator 'GT' is not supported by this resource |
|
Schedule
Create Schedule
| Description |
Create a new schedule
|
| API Endpoint |
POST api/rest/snapshot_policies/{snapshot_policy_id}/schedules |
| URL Parameters |
| snapshot_policy_id |
long |
Snapshot policy id |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"name": "auto-schedule--0ad23581-c7",
"interval": 1,
"enabled": true,
"lock_snapshots": false,
"type": "PERIODIC",
"retention": 3600
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "auto-schedule--0ad23581-c7",
"lock_snapshots": false,
"tenant_id": 1,
"created_at": 1774519233842,
"interval": 1,
"enabled": true,
"updated_at": 1774519233842,
"day_of_week": null,
"time_of_day": null,
"snapshot_policy_id": 182,
"type": "PERIODIC",
"id": 183,
"retention": 3600
},
"error": null
}
|
| Errors |
| MISSING_FIELD |
HTTP 400 |
A field ('name') is missing in an object passed |
| WRONG_PARAMETER |
HTTP 400 |
The value (86400) of parameter 'time_of_day' does not meet a condition: 'must be less than or equal to 86399' |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('retention') could not be translated to an expected type |
| SNAPSHOT_POLICY_NOT_FOUND |
HTTP 404 |
Snapshot policy not found |
| SCHEDULES_IN_SNAPSHOT_POLICY_COUNT_LIMIT |
HTTP 409 |
The maximum number of snapshot schedules has been reached for this policy |
| SCHEDULE_INTERVAL_INVALID |
HTTP 409 |
The interval between snapshots must be between '3600' seconds and '2592000' seconds |
| SCHEDULES_COUNT_LIMIT |
HTTP 409 |
The maximum number of snapshot schedules has been reached. A new snapshot schedule cannot be added |
| SNAPSHOT_SCHEDULE_NAME_CONFLICT |
HTTP 409 |
A snapshot schedule named 'unique' already exists |
| SCHEDULE_RETENTION_INVALID |
HTTP 409 |
Snapshots must be deleted within '3600' seconds and '31536000' seconds |
|
Delete Schedule
| Description |
Delete a schedule by id
|
| Approval required |
This is a dangerous operation
If the schedule is deleted, it will no longer trigger snapshot creation
|
| API Endpoint |
DELETE api/rest/snapshot_policies/{snapshot_policy_id}/schedules/{id} |
| URL Parameters |
| snapshot_policy_id |
long |
Snapshot policy id |
| id |
Long |
Schedule id |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "auto-schedule--847c6747-d4",
"lock_snapshots": false,
"tenant_id": 1,
"created_at": 1774522183652,
"interval": 3600,
"enabled": true,
"updated_at": 1774522183652,
"day_of_week": null,
"time_of_day": null,
"snapshot_policy_id": 18121,
"type": "PERIODIC",
"id": 18122,
"retention": 3600
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
If the schedule is deleted, it will no longer trigger snapshot creation |
| SNAPSHOT_SCHEDULE_NOT_FOUND |
HTTP 404 |
Snapshot schedule not found |
| SCHEDULE_NOT_RELATED_TO_SNAPSHOT_POLICY |
HTTP 404 |
The schedule is not related to policy 'daily' |
| SNAPSHOT_POLICY_NOT_FOUND |
HTTP 404 |
Snapshot policy not found |
|
Disable Schedule
| Description |
Disable policy's schedule
|
| API Endpoint |
POST api/rest/snapshot_policies/{snapshot_policy_id}/schedules/{id}/disable |
| URL Parameters |
| snapshot_policy_id |
long |
Snapshot policy id |
| id |
Long |
Schedule id |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "auto-schedule--7b96fc02-3a",
"lock_snapshots": false,
"tenant_id": 1,
"created_at": 1774522361285,
"interval": 3600,
"enabled": false,
"updated_at": 1774522361683,
"day_of_week": null,
"time_of_day": null,
"snapshot_policy_id": 20251,
"type": "PERIODIC",
"id": 20252,
"retention": 3600
},
"error": null
}
|
| Errors |
| SCHEDULE_NOT_RELATED_TO_SNAPSHOT_POLICY |
HTTP 404 |
The schedule is not related to policy 'hourly-2' |
| SNAPSHOT_POLICY_NOT_FOUND |
HTTP 404 |
Snapshot policy not found |
|
Enable Schedule
| Description |
Enable policy's schedule
|
| API Endpoint |
POST api/rest/snapshot_policies/{snapshot_policy_id}/schedules/{id}/enable |
| URL Parameters |
| snapshot_policy_id |
long |
Snapshot policy id |
| id |
Long |
Schedule id |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "auto-schedule--38825c56-17",
"lock_snapshots": false,
"tenant_id": 1,
"created_at": 1774522334648,
"interval": 3600,
"enabled": true,
"updated_at": 1774522335040,
"day_of_week": null,
"time_of_day": null,
"snapshot_policy_id": 20021,
"type": "PERIODIC",
"id": 20022,
"retention": 3600
},
"error": null
}
|
| Errors |
| SNAPSHOT_POLICY_NOT_FOUND |
HTTP 404 |
Snapshot policy not found |
| SCHEDULE_NOT_RELATED_TO_SNAPSHOT_POLICY |
HTTP 404 |
The schedule is not related to policy 'hourly-2' |
|
Get all Schedules In Snapshot Policy
| Description |
Get all policy's schedules
|
| API Endpoint |
GET api/rest/snapshot_policies/{snapshot_policy_id}/schedules |
| URL Parameters |
| snapshot_policy_id |
long |
Snapshot policy id |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 2,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"name": "Six-Hourly",
"lock_snapshots": false,
"tenant_id": 1,
"created_at": 1774521681067,
"interval": 21600,
"enabled": true,
"updated_at": 1774521681067,
"day_of_week": null,
"time_of_day": null,
"snapshot_policy_id": 11294,
"type": "PERIODIC",
"id": 11295,
"retention": 86400
},
{
"name": "Daily",
"lock_snapshots": false,
"tenant_id": 1,
"created_at": 1774521681067,
"interval": 86400,
"enabled": true,
"updated_at": 1774521681067,
"day_of_week": null,
"time_of_day": null,
"snapshot_policy_id": 11294,
"type": "PERIODIC",
"id": 11296,
"retention": 604800
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Schedule
| Description |
Get a schedule by id
|
| API Endpoint |
GET api/rest/snapshot_policies/{snapshot_policy_id}/schedules/{id} |
| URL Parameters |
| snapshot_policy_id |
long |
Snapshot policy id |
| id |
Long |
Schedule id |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "auto-schedule--14274bb3-68",
"lock_snapshots": false,
"tenant_id": 1,
"created_at": 1774522332339,
"interval": 3600,
"enabled": true,
"updated_at": 1774522332339,
"day_of_week": "SUNDAY",
"time_of_day": 1000,
"snapshot_policy_id": 20000,
"type": "CLOCK",
"id": 20001,
"retention": 3600
},
"error": null
}
|
| Errors |
| SNAPSHOT_POLICY_NOT_FOUND |
HTTP 404 |
Snapshot policy not found |
| SNAPSHOT_SCHEDULE_NOT_FOUND |
HTTP 404 |
Snapshot schedule not found |
| SCHEDULE_NOT_RELATED_TO_SNAPSHOT_POLICY |
HTTP 404 |
The schedule is not related to policy 'hourly2' |
|
Search
Search
| Description |
|
| API Endpoint |
GET api/rest/search |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 10,
"pages_total": 1,
"page": 1,
"page_size": 10
},
"result": [
{
"keywords": null,
"properties": {},
"type": "host",
"id": 1000,
"name": "auto-Host4Test-1ce57d96-11"
},
{
"keywords": null,
"properties": {},
"type": "host",
"id": 1001,
"name": "auto-Host4Test-07fabeaa-0e"
},
{
"keywords": null,
"properties": {},
"type": "host",
"id": 1002,
"name": "auto-Host4Test-a3c34da6-bf"
},
{
"keywords": null,
"properties": {},
"type": "host",
"id": 1003,
"name": "auto-Host4Test-7e5b4e05-a2"
},
{
"keywords": null,
"properties": {},
"type": "host",
"id": 1004,
"name": "auto-Host4Test-38a5a68a-47"
},
{
"keywords": null,
"properties": {},
"type": "host",
"id": 1005,
"name": "auto-Host4Test-4bac4b26-b9"
},
{
"keywords": null,
"properties": {},
"type": "host",
"id": 1006,
"name": "auto-Host4Test-d70ee58c-10"
},
{
"keywords": null,
"properties": {},
"type": "host",
"id": 1007,
"name": "auto-Host4Test-e515c641-83"
},
{
"keywords": null,
"properties": {},
"type": "host",
"id": 1008,
"name": "auto-Host4Test-85390483-eb"
},
{
"keywords": null,
"properties": {},
"type": "host",
"id": 1009,
"name": "auto-Host4Test-4a510bb6-5e"
}
],
"error": null
}
|
| Errors |
| MAX_PAGE_SIZE_VIOLATION |
HTTP 400 |
Requested page size 1001 exceeds range 1..1000 for command 'Search' |
| UNSEARCHABLE_TYPE |
HTTP 400 |
Requested entity type 'users' is not searchable |
|
Share
Add Ace to Share Root Folder Acl
| Description |
Add an ACE to the ACL of the root folder of the share
|
| API Endpoint |
POST api/rest/shares/{shareId}/folder_acl_add |
| URL Parameters |
| shareId |
long |
ID of the share |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"principal": "S-1-5-21-1234-5678-3579-555",
"permissions": "FULLCONTROL"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"filesystem_id": 1004,
"share_id": 1005,
"permissions": "FULLCONTROL",
"principal": "S-1-5-21-1234-5678-3579-555"
},
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for READ_ONLY |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-7a1d3c8f-3' is forbidden to modify share 'smb-share-3363586885011055' |
| DACL_EDIT_ON_REPLICATION_TARGET_FILESYSTEM_NOT_SUPPORTED |
HTTP 409 |
SMB shares on replication target filesystems do not support ACL queries or edits |
| DACL_EDIT_PRINCIPAL_ALREADY_EXISTS |
HTTP 409 |
An ACE for principal 'S-1-5-21-1234-5678-3579-555' already exists in the ACL of the root folder of SMB share 'smb-share-3363586885011055'. To modify it, remove the existing ACE, and add the new one |
| DACL_COMMAND_FAILED |
HTTP 409 |
Shared folder ACL command failed: DUMMY_RESON |
| DACL_EDIT_SHARE_ON_WRITE_PROTECTED_FILESYSTEM_NOT_SUPPORTED |
HTTP 409 |
Cannot modify the ACL of the root folder of SMB share 'smb-share-3363586885011055', which is defined on the write protected filesystem 'auto-filesystem--06b69851-' |
| DACL_EDIT_SHARE_ON_UNIX_FILESYSTEM_NOT_SUPPORTED |
HTTP 409 |
SMB share 'smb-share-3363586653089086' is defined on UNIX security-style filesystem 'auto-filesystem--bc5ded09-', which does not support ACLs |
|
Create a New Share
| Description |
Create a new share
|
| API Endpoint |
POST api/rest/shares |
| URL Parameters |
none
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"filesystem_id": 1001,
"name": "smb-share-3362654115660605"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"inner_path": "/",
"created_at": 1774519084942,
"name": "smb-share-3362654115660605",
"offline_caching": "MANUAL",
"encryption": false,
"description": "",
"enabled": true,
"default_folder_unix_permissions": null,
"default_file_unix_permissions": null,
"updated_at": 1774519084942,
"leases_enabled": true,
"is_home_share": false,
"access_based_enumeration": false,
"tenant_id": 1,
"filesystem_id": 1001,
"permissions": [
{
"access": "FULLCONTROL",
"share_id": 1002,
"id": 385,
"sid": "S-1-1-0"
}
],
"id": 1002,
"snapdir_visible": true
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('user_directory') |
| WRONG_PARAMETER |
HTTP 400 |
The value (null) of parameter 'access_based_enumeration' does not meet a condition: 'must be valid boolean' |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 80 characters |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('user_directory') could not be translated to an expected type |
| MISSING_FIELD |
HTTP 400 |
A field ('internal_base_path') is missing in an object passed |
| ILLEGAL_PATH_VALUE |
HTTP 400 |
The value '"illegal"' of 'inner_path' is illegal |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-35b83693-5' is forbidden to modify filesystem 'auto-filesystem--bf33b29f-' |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
| SHARE_NOT_FOUND |
HTTP 404 |
Share not found |
| FILESYSTEM_IS_SUSPENDED |
HTTP 409 |
The operation cannot be performed as the filesystem is suspended ('auto-filesystem--20b3e977-') |
| SHARE_NAME_IS_RESERVED |
HTTP 409 |
The share name 'IPC$' is a reserved name and cannot be used |
| USER_DIR_AUTO_CREATE_FOR_UNIQUE_SHARENAME_ONLY |
HTTP 409 |
User directory auto creation cannot be enabled for more than one home share of the same name |
| INTERNAL_PATH_DOES_NOT_EXIST |
HTTP 409 |
Internal path 'N/A' does not exist within filesystem 'N/A'. FS_ID N/A, export ID N/A |
| INCORRECT_FILESYSTEM_FOR_HOME_SHARE |
HTTP 409 |
Home shares can only be created on WINDOWS security-style filesystems |
| CANNOT_CREATE_SHARE_FOR_UNESTABLISHED_SNAPSHOT |
HTTP 409 |
Cannot create a share for an unestablished snapshot 'auto-reclaim-rc-10494.0001-10495-1774521321494' |
| HOME_SHARES_NOT_ALLOWED_ON_SNAPSHOTS |
HTTP 409 |
Home shares cannot be created on snapshots |
| INVALID_HOME_SHARE_EXPANSION_TEMPLATE |
HTTP 409 |
Home share 'name' may contain up to one occurrence of each of the expansion variables (%u, %d/%D, %0, %1, %2) and must end in %u |
| SHARING_SNAPSHOT_DIRECTORY_NOT_ALLOWED |
HTTP 409 |
A share's internal path cannot contain the '.snapshot' folder. You can create the share directly on the filesystem snapshot |
| SUSPICIOUS_FILESYSTEM_SHARE |
HTTP 409 |
A UNIX security-style filesystem can only have SMB shares if it already has NFS exports. Either create an NFS export on this filesystem, or create the SMB shares on a WINDOWS security-style filesystem |
| CREATE_SHARE_WITH_ROOT_ACCESS_AND_SQUASH_ALL |
HTTP 409 |
Root access cannot be granted when 'Squash all users and groups' is on. Share ID '1' |
| SHARE_INVALID_INTERNAL_PATH |
HTTP 409 |
'N/A' is not a valid internal path. Filesystem ID 'N/A'. Share ID '1' |
| NFSV4_EXPORT_AND_SMB_SHARE_CONFLICT |
HTTP 409 |
A filesystem cannot have both SMB shares and NFSv4 exports |
| INVALID_SHARE_PATH |
HTTP 409 |
'N/A' is not a valid share name. Filesystem ID 'N/A'. Share ID '1' |
| SHARE_NAME_CONFLICT |
HTTP 409 |
A share named 'test-%u' already exists |
| SHARE_INTERNAL_PATH_NOT_DIR |
HTTP 409 |
Internal path 'N/A' is not a directory within filesystem 'N/A' |
| SHARE_ILLEGAL_VALUE |
HTTP 409 |
'null' is not a valid user_dir_auto_create in the SMB share 'test-%u' |
| SHARE_INVALID_NAME |
HTTP 409 |
This share name is invalid: cannot be comprised of only dots |
| SMB_UNIX_DEFAULTS_ON_WIN_FS_REJECTED |
HTTP 409 |
UNIX file and folder default permissions are not relevant for shares on a Windows filesystem |
| SHARE_FILESYSTEM_COUNT_LIMIT |
HTTP 409 |
A new share cannot be created. The filesystem has reached the maximum number of shares |
| HOME_SHARE_CONFLICT |
HTTP 409 |
A home share with this name and base path already exists on this filesystem |
| SHARE_COUNT_LIMIT |
HTTP 409 |
A new share cannot be created. The system has reached the maximum number of shares |
| INVALID_HOME_SHARE_BASE_PATH |
HTTP 409 |
Home share base path must be an existing directory and begin with a '/' |
|
Create a New Share Permission
| Description |
Create a new share permission
|
| API Endpoint |
POST api/rest/shares/{shareId}/permissions |
| URL Parameters |
| shareId |
long |
ID of the share |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"access": "READWRITE",
"sid": "S-1-5-1234567890-12345-642"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"access": "READWRITE",
"share_id": 1002,
"id": 2536,
"sid": "S-1-5-1234567890-12345-642"
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('test') |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('access') could not be translated to an expected type |
| MISSING_FIELD |
HTTP 400 |
A field ('access') is missing in an object passed |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-35b83693-5' is forbidden to modify share 'existing-share' |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| SHARE_NOT_FOUND |
HTTP 404 |
Share not found |
| SHARE_PERMISSION_ALREADY_DEFINED_FOR_SID |
HTTP 409 |
Share 'test-share' permissions for SID 'S-1-5-1234567890-12345-642' are already defined |
| SHARE_PERMISSION_COUNT_LIMIT |
HTTP 409 |
New SMB permissions cannot be added to the share 'test-share'. The share has reached the maximum number of permissions |
| SHARE_PERMISSION_INVALID_SID |
HTTP 409 |
'S-1-5-x21-115588' is not a valid SID |
|
Delete a Share
| Description |
Delete a share
|
| Approval required |
This is a dangerous operation
Deleting shareType 'shareName' will cause all clients using this share to disconnect
|
| API Endpoint |
DELETE api/rest/shares/{id} |
| URL Parameters |
| id |
long |
ID of the share |
| force_if_fs_suspended |
boolean |
force_if_fs_suspended |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"inner_path": "/home/%d/%u",
"created_at": 1774519378780,
"user_directory": "%d/%u",
"name": "test-%u",
"tenant_id": 1,
"offline_caching": "MANUAL",
"encryption": false,
"description": "",
"enabled": true,
"default_folder_unix_permissions": null,
"default_file_unix_permissions": null,
"updated_at": 1774519379124,
"leases_enabled": true,
"is_home_share": true,
"access_based_enumeration": true,
"internal_base_path": "/home",
"filesystem_id": 1001,
"permissions": [
{
"access": "FULLCONTROL",
"share_id": 1002,
"id": 2264,
"sid": "S-1-1-0"
}
],
"user_dir_auto_create": false,
"id": 1002,
"snapdir_visible": false
},
"error": null
}
|
| Errors |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-35b83693-5' is forbidden to modify share 'existing-share' |
| ACTION_NOT_ALLOWED_FOR_ROLE |
HTTP 403 |
User with role [ADMIN] is not allowed to perform this action |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting home share 'test-%u' will cause all clients using this share to disconnect |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| SHARE_NOT_FOUND |
HTTP 404 |
Share not found |
| FILESYSTEM_IS_SUSPENDED |
HTTP 409 |
The operation cannot be performed as the filesystem is suspended ('auto-filesystem--20b3e977-') |
|
Delete a Share Permission
| Description |
Delete a share permission
|
| API Endpoint |
DELETE api/rest/shares/{shareId}/permissions/{id} |
| URL Parameters |
| shareId |
long |
ID of the share |
| id |
long |
ID of the permission |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"access": "FULLCONTROL",
"share_id": 1002,
"id": 2710,
"sid": "S-1-1-0"
},
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-35b83693-5' is forbidden to modify share permission '[sid=S-1-5-12345-1, access=READWRITE]' |
| SHARE_PERMISSION_NOT_FOUND |
HTTP 404 |
Share permissions not found |
| SHARE_NOT_FOUND |
HTTP 404 |
Share not found |
|
Get a Share
| Description |
Get a share by ID
|
| API Endpoint |
GET api/rest/shares/{id} |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"inner_path": "/home/%d/%u",
"created_at": 1774519418688,
"user_directory": "%d/%u",
"name": "test-%u",
"tenant_id": 1,
"offline_caching": "MANUAL",
"encryption": false,
"description": "",
"enabled": true,
"default_folder_unix_permissions": null,
"default_file_unix_permissions": null,
"updated_at": 1774519418688,
"leases_enabled": true,
"is_home_share": true,
"access_based_enumeration": true,
"internal_base_path": "/home",
"filesystem_id": 1001,
"permissions": [
{
"access": "FULLCONTROL",
"share_id": 1002,
"id": 2516,
"sid": "S-1-1-0"
}
],
"user_dir_auto_create": false,
"id": 1002,
"snapdir_visible": false
},
"error": null
}
|
| Errors |
| SHARE_NOT_FOUND |
HTTP 404 |
Share not found |
|
Get a Share Permission
| Description |
Get a share permission by ID
|
| API Endpoint |
GET api/rest/shares/{shareId}/permissions/{id} |
| URL Parameters |
| shareId |
long |
ID of the share |
| id |
long |
ID of the permission |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"access": "READWRITE",
"share_id": 1002,
"id": 2863,
"sid": "S-1-5-1234567890-12345-642"
},
"error": null
}
|
| Errors |
| SHARE_PERMISSION_NOT_FOUND |
HTTP 404 |
Share permissions not found |
| SHARE_NOT_FOUND |
HTTP 404 |
Share not found |
|
Get all Shares
| Description |
Get all shares Filterable and Sortable fields:access_based_enumeration,created_at,default_file_unix_permissions,default_folder_unix_permissions,description,enabled,encryption,id,inner_path,leases_enabled,name,offline_caching,snapdir_visible,updated_at. |
| API Endpoint |
GET api/rest/shares |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"inner_path": "/home/%d/%u",
"created_at": 1774519407003,
"user_directory": "%d/%u",
"name": "%u",
"tenant_id": 1,
"offline_caching": "MANUAL",
"encryption": false,
"description": "",
"enabled": true,
"default_folder_unix_permissions": null,
"default_file_unix_permissions": null,
"updated_at": 1774519407003,
"leases_enabled": true,
"is_home_share": true,
"access_based_enumeration": true,
"internal_base_path": "/home",
"filesystem_id": 1001,
"permissions": [
{
"access": "FULLCONTROL",
"share_id": 1003,
"id": 2441,
"sid": "S-1-1-0"
}
],
"user_dir_auto_create": false,
"id": 1003,
"snapdir_visible": false
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Share Permissions
| Description |
Get all permissions of a share Filterable and Sortable fields:access_based_enumeration,created_at,default_file_unix_permissions,default_folder_unix_permissions,description,enabled,encryption,id,inner_path,leases_enabled,name,offline_caching,snapdir_visible,updated_at. |
| API Endpoint |
GET api/rest/shares/{shareId}/permissions |
| URL Parameters |
| shareId |
long |
ID of the share |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"access": "FULLCONTROL",
"share_id": 1002,
"id": 2710,
"sid": "S-1-1-0"
}
],
"error": null
}
|
| Errors |
| SHARE_NOT_FOUND |
HTTP 404 |
Share not found |
|
Get Share Root Folder Acl
| Description |
Get the ACL details of the root folder of a share Filterable and Sortable fields:access_based_enumeration,created_at,default_file_unix_permissions,default_folder_unix_permissions,description,enabled,encryption,id,inner_path,leases_enabled,name,offline_caching,snapdir_visible,updated_at. |
| API Endpoint |
GET api/rest/shares/{shareId}/folder_acl |
| URL Parameters |
| shareId |
long |
ID of the share |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 6,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"filesystem_id": 1004,
"share_id": 1005,
"permissions": "FULLCONTROL",
"principal": "S-1-5-21-1234-5678-3579-101"
},
{
"filesystem_id": 1004,
"share_id": 1005,
"permissions": "READEXECUTE",
"principal": "S-1-5-21-1234-5678-3579-102"
},
{
"filesystem_id": 1004,
"share_id": 1005,
"permissions": "FULLCONTROL",
"principal": "S-1-5-21-1234-5678-3579-103"
},
{
"filesystem_id": 1004,
"share_id": 1005,
"permissions": "OTHER",
"principal": "S-1-5-21-1234-5678-3579-111"
},
{
"filesystem_id": 1004,
"share_id": 1005,
"permissions": "OTHER",
"principal": "S-1-5-21-1234-5678-3579-112"
},
{
"filesystem_id": 1004,
"share_id": 1005,
"permissions": "OTHER",
"principal": "S-1-5-21-1234-5678-3579-113"
}
],
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| DACL_EDIT_ON_REPLICATION_TARGET_FILESYSTEM_NOT_SUPPORTED |
HTTP 409 |
SMB shares on replication target filesystems do not support ACL queries or edits |
| DACL_COMMAND_FAILED |
HTTP 409 |
Shared folder ACL command failed: DUMMY_RESON |
| DACL_EDIT_SHARE_ON_UNIX_FILESYSTEM_NOT_SUPPORTED |
HTTP 409 |
SMB share 'smb-share-3363752925275778' is defined on UNIX security-style filesystem 'auto-filesystem--ecc0c85f-', which does not support ACLs |
|
Remove Ace from Share Root Folder Acl
| Description |
Remove an ACE from the ACL of the root folder of the share
|
| Approval required |
This is a dangerous operation
Removing the ACE for principal 'principal' from the ACL of the root folder of the SMB share might affect the principal's access to the share. Are you sure you want to remove it?
|
| API Endpoint |
POST api/rest/shares/{shareId}/folder_acl_remove |
| URL Parameters |
| shareId |
long |
ID of the share |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"principal": "S-1-5-21-1234-5678-3579-555"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"filesystem_id": 1004,
"share_id": 1005,
"permissions": "FULLCONTROL",
"principal": "S-1-5-21-1234-5678-3579-555"
},
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for READ_ONLY |
| APPROVAL_REQUIRED |
HTTP 403 |
Removing the ACE for principal 'S-1-5-21-1234-5678-3579-555' from the ACL of the root folder of the SMB share might affect the principal's access to the share. Are you sure you want to remove it? |
| DACL_EDIT_ON_REPLICATION_TARGET_FILESYSTEM_NOT_SUPPORTED |
HTTP 409 |
SMB shares on replication target filesystems do not support ACL queries or edits |
| DACL_EDIT_SHARE_ON_UNIX_FILESYSTEM_NOT_SUPPORTED |
HTTP 409 |
SMB share 'smb-share-3363759970231858' is defined on UNIX security-style filesystem 'auto-filesystem--cb22b954-', which does not support ACLs |
| DACL_EDIT_SHARE_ON_WRITE_PROTECTED_FILESYSTEM_NOT_SUPPORTED |
HTTP 409 |
Cannot modify the ACL of the root folder of SMB share 'smb-share-3363760243686263', which is defined on the write protected filesystem 'auto-filesystem--20bb8cea-' |
| DACL_EDIT_PRINCIPAL_DOES_NOT_EXIST |
HTTP 409 |
The principal 'S-1-5-21-1234-5678-3579-555' does not exist in the ACL of the root folder of SMB share 'smb-share-3363760243686263' |
| DACL_COMMAND_FAILED |
HTTP 409 |
Shared folder ACL command failed: DUMMY_RESON |
|
Update a Share
| Description |
Update share attributes
|
| Approval required |
This is a dangerous operation
Disabling the shareType 'shareName' will disconnect all clients that use this share
|
| API Endpoint |
PUT api/rest/shares/{id} |
| URL Parameters |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"user_dir_auto_create": false
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"inner_path": "/home/%d/%u",
"created_at": 1774519378780,
"user_directory": "%d/%u",
"name": "test-%u",
"tenant_id": 1,
"offline_caching": "MANUAL",
"encryption": false,
"description": "",
"enabled": true,
"default_folder_unix_permissions": null,
"default_file_unix_permissions": null,
"updated_at": 1774519379124,
"leases_enabled": true,
"is_home_share": true,
"access_based_enumeration": true,
"internal_base_path": "/home",
"filesystem_id": 1001,
"permissions": [
{
"access": "FULLCONTROL",
"share_id": 1002,
"id": 2264,
"sid": "S-1-1-0"
}
],
"user_dir_auto_create": false,
"id": 1002,
"snapdir_visible": false
},
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('user_dir_auto_create') could not be translated to an expected type |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('is_home_share') |
| APPROVAL_REQUIRED |
HTTP 403 |
Disabling the share 'test-share-on-win' will disconnect all clients that use this share |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-35b83693-5' is forbidden to modify share 'existing-share' |
| SHARE_NOT_FOUND |
HTTP 404 |
Share not found |
| SMB_UNIX_DEFAULTS_ON_WIN_FS_REJECTED |
HTTP 409 |
UNIX file and folder default permissions are not relevant for shares on a Windows filesystem |
| SHARE_ALREADY_DISABLED |
HTTP 409 |
The share 'test-share-on-win' is already disabled |
| SHARE_ILLEGAL_VALUE |
HTTP 409 |
'null' is not a valid user_dir_auto_create in the SMB share 'test-%u' |
| SHARE_ALREADY_ENABLED |
HTTP 409 |
The share 'test-share-on-win' is already enabled |
| FILESYSTEM_IS_SUSPENDED |
HTTP 409 |
The operation cannot be performed as the filesystem is suspended ('auto-filesystem--20b3e977-') |
| USER_DIR_AUTO_CREATE_FOR_UNIQUE_SHARENAME_ONLY |
HTTP 409 |
User directory auto creation cannot be enabled for more than one home share of the same name |
| TARGET_REPLICA_SHARE_NOT_ALLOWED |
HTTP 409 |
A replica target cannot be shared |
|
Update a Share Permission
| Description |
Update a share permission
|
| API Endpoint |
PUT api/rest/shares/{shareId}/permissions/{id} |
| URL Parameters |
| shareId |
long |
ID of the share |
| id |
long |
ID of the permission |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"access": "FULLCONTROL"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"access": "FULLCONTROL",
"share_id": 1002,
"id": 3381,
"sid": "S-1-5-1234567890-12345-642"
},
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('access') could not be translated to an expected type |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('id') |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-35b83693-5' is forbidden to modify share permission '[sid=S-1-5-12345-1, access=READWRITE]' |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| SHARE_NOT_FOUND |
HTTP 404 |
Share not found |
| SHARE_PERMISSION_NOT_FOUND |
HTTP 404 |
Share permissions not found |
|
Smb File Lock
Break Orphan Smb File Locks
| Description |
Break Orphan SMB File Locks
|
| Approval required |
This is a dangerous operation
Breaking locks on a file may cause clients to lose data
|
| API Endpoint |
POST api/rest/smb/filelocks/break_orphans |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"filesystem_id": 1002,
"file_path": "/"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"locks_broken": 1234
},
"error": null
}
|
| Errors |
| MISSING_FIELD |
HTTP 400 |
A field ('filesystem_id') is missing in an object passed |
| APPROVAL_REQUIRED |
HTTP 403 |
Breaking locks on a file may cause clients to lose data |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
|
Get Smb File Lock
| Description |
Query SMB File Locks per filesystem and file path
|
| API Endpoint |
GET api/rest/smb/filelocks |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 15,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"domain": null,
"tenant_id": 1,
"handle_id": -1,
"session_id": -1,
"file_path": "/my-path",
"share_delete": null,
"share_write": null,
"sid": null,
"share_read": null,
"number_of_locks": 3,
"user_name": null,
"filesystem_id": 1001
},
{
"domain": "test.infinidat.com",
"tenant_id": 1,
"handle_id": 3000002,
"session_id": 10002,
"file_path": "/my-path",
"share_delete": false,
"share_write": false,
"sid": "S-1-5-32-1003",
"share_read": false,
"number_of_locks": 8,
"user_name": "SmbUser3",
"filesystem_id": 1001
},
{
"domain": "test.infinidat.com",
"tenant_id": 1,
"handle_id": 3000003,
"session_id": 10003,
"file_path": "/my-path",
"share_delete": false,
"share_write": true,
"sid": "S-1-5-32-1010",
"share_read": true,
"number_of_locks": 2,
"user_name": "SmbUser10",
"filesystem_id": 1001
},
{
"domain": "test.infinidat.com",
"tenant_id": 1,
"handle_id": 3000004,
"session_id": 10004,
"file_path": "/my-path",
"share_delete": true,
"share_write": false,
"sid": "S-1-5-32-1009",
"share_read": true,
"number_of_locks": 5,
"user_name": "SmbUser9",
"filesystem_id": 1001
},
{
"domain": "test.infinidat.com",
"tenant_id": 1,
"handle_id": 3000005,
"session_id": 10005,
"file_path": "/my-path",
"share_delete": true,
"share_write": false,
"sid": "S-1-5-32-1000",
"share_read": true,
"number_of_locks": 12,
"user_name": "SmbUser0",
"filesystem_id": 1001
}
],
"error": null
}
|
| Errors |
| NOT_FILTERABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be filtered: ('session_id') |
| MISSING_QUERY_PARAMETER |
HTTP 400 |
A query parameter ('filesystem_id') is missing in the request |
| UNSUPPORTED_FILTER_RELATION |
HTTP 400 |
The filtering operator 'NE' is not supported by this resource |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('filesystem_id') |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
|
Smb Group
Create Smb Group
| Description |
Create a new SMB group
|
| API Endpoint |
POST api/rest/smb_groups |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"name": "smb-group-1"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"uid": null,
"tenant_id": 1,
"privileges": [
"SECHANGENOTIFYPRIVILEGE"
],
"gid": null,
"sid": "S-1-5-21-1521456151-1486674189-1912075047-1011",
"domain_members": null,
"id": 1011,
"name": "smb-group-1"
},
"error": null
}
|
| Errors |
| WRONG_PARAMETER |
HTTP 400 |
The value (4294967296) of parameter 'uid' does not meet a condition: 'must be less than or equal to 4294967295' |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'na?me' |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('privileges[0]') could not be translated to an expected type |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 255 characters |
| MISSING_FIELD |
HTTP 400 |
A field ('name') is missing in an object passed |
| SMB_GROUP_COUNT_LIMIT |
HTTP 409 |
A new SMB group cannot be created. The system has reached the maximum number of groups |
| SMB_GROUP_PRIVS_HAS_DUPLICATES |
HTTP 409 |
Remove duplicate privilege assignments, such as 'SeChangeNotifyPrivilege', from the SMB group 'smb-group' |
| SMB_GROUP_NAME_CONFLICT |
HTTP 409 |
An SMB group named 'Unique-name' already exists. Enter a different name |
| SMB_GROUP_MEMBERS_COUNT_LIMIT |
HTTP 409 |
Cannot add a new member. The SMB group 'smb-group-2' has reached the maximum number of members |
| SMB_GROUP_DUPLICATE_DOMAIN_MEMBERS |
HTTP 409 |
Remove the duplicate domain members from the SMB group 'smb-group-1' |
| INVALID_SID_VALUE |
HTTP 409 |
'X-1-abc-6782' is not a valid SID. Change it in the SMB group field 'domain_members' |
|
Delete Smb Group
| Description |
Delete an SMB by group by id
|
| Approval required |
This is a dangerous operation
Members of the SMB group 'name' will no longer have the group's privilege levels
|
| API Endpoint |
DELETE api/rest/smb_groups/{id} |
| URL Parameters |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"uid": null,
"tenant_id": 1,
"privileges": [
"SETAKEOWNERSHIPPRIVILEGE"
],
"gid": null,
"sid": "S-1-5-21-2909179905-2575604524-2129297214-1002",
"domain_members": null,
"id": 1002,
"name": "smb-group-1"
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Members of the SMB group 'smb-group-1' will no longer have the group's privilege levels |
| SMB_GROUP_NOT_FOUND |
HTTP 404 |
SMB group not found |
| SMB_GROUP_BUILTIN_CONFLICT |
HTTP 409 |
The SMB group 'Administrators' is a predefined group and cannot be deleted |
| SMB_GROUP_HAS_MEMBERS |
HTTP 409 |
The SMB group 'smb-group-2' cannot be deleted because it has members |
|
Get all Smb Groups
| Description |
Get all of the SMB groups
|
| API Endpoint |
GET api/rest/smb_groups |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN,
TECHNICIAN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 5,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"uid": 0,
"tenant_id": 6038,
"privileges": [
"SECHANGENOTIFYPRIVILEGE",
"SETAKEOWNERSHIPPRIVILEGE"
],
"gid": 0,
"sid": "S-1-5-32-544",
"domain_members": null,
"id": 51,
"name": "Administrators"
},
{
"uid": null,
"tenant_id": 6038,
"privileges": [
"SECHANGENOTIFYPRIVILEGE"
],
"gid": null,
"sid": "S-1-5-32-545",
"domain_members": null,
"id": 52,
"name": "Users"
},
{
"uid": null,
"tenant_id": 6038,
"privileges": [],
"gid": null,
"sid": "S-1-5-32-546",
"domain_members": null,
"id": 53,
"name": "Guests"
},
{
"uid": null,
"tenant_id": 6038,
"privileges": [
"SECHANGENOTIFYPRIVILEGE"
],
"gid": null,
"sid": "S-1-5-32-547",
"domain_members": null,
"id": 54,
"name": "Power Users"
},
{
"uid": null,
"tenant_id": 6038,
"privileges": [
"SECHANGENOTIFYPRIVILEGE",
"SEBACKUPPRIVILEGE",
"SERESTOREPRIVILEGE"
],
"gid": null,
"sid": "S-1-5-32-551",
"domain_members": null,
"id": 55,
"name": "Backup Operators"
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Smb Group
| Description |
Get an SMB group by id
|
| API Endpoint |
GET api/rest/smb_groups/{id} |
| URL Parameters |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN,
TECHNICIAN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"uid": null,
"tenant_id": 1,
"privileges": [
"SECHANGENOTIFYPRIVILEGE"
],
"gid": null,
"sid": "S-1-5-21-1521456151-1486674189-1912075047-1011",
"domain_members": null,
"id": 1011,
"name": "smb-group-1"
},
"error": null
}
|
| Errors |
| SMB_GROUP_NOT_FOUND |
HTTP 404 |
SMB group not found |
|
Update Smb Group Attributes
| Description |
Update SMB group attributes
|
| API Endpoint |
PUT api/rest/smb_groups/{id} |
| URL Parameters |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"domain_members": [
""
]
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"uid": null,
"tenant_id": 1,
"privileges": [
"SETAKEOWNERSHIPPRIVILEGE"
],
"gid": null,
"sid": "S-1-5-21-2909179905-2575604524-2129297214-1002",
"domain_members": null,
"id": 1002,
"name": "smb-group-1"
},
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('privileges') could not be translated to an expected type |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('name') |
| WRONG_PARAMETER |
HTTP 400 |
The value (4294967296) of parameter 'uid' does not meet a condition: 'must be less than or equal to 4294967295' |
| SMB_GROUP_NOT_FOUND |
HTTP 404 |
SMB group not found |
| INVALID_SID_VALUE |
HTTP 409 |
'' is not a valid SID. Change it in the SMB group field 'domain_members' |
| SMB_GROUP_PRIVS_HAS_DUPLICATES |
HTTP 409 |
Remove duplicate privilege assignments, such as 'SeChangeNotifyPrivilege', from the SMB group 'smb-group' |
| SMB_GROUP_DUPLICATE_DOMAIN_MEMBERS |
HTTP 409 |
Remove the duplicate domain members from the SMB group 'smb-group-1' |
| SMB_GROUP_MEMBERS_COUNT_LIMIT |
HTTP 409 |
Cannot add a new member. The SMB group 'smb-group-1' has reached the maximum number of members |
|
Smb Lease
Query Smb Leases
| Description |
Query SMB Leases per filesystem and file path (those parameters are mandatory)
|
| API Endpoint |
GET api/rest/smb/leases |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 5,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"lease_id": "6000001",
"tenant_id": 1,
"handle_id": 3000001,
"lease_version": "V2",
"session_id": 10001,
"lease_type": "RH",
"domain": "test.infinidat.com",
"sid": "S-1-5-32-1005",
"filesystem_id": 1001,
"user_name": "SmbUser5",
"file_path": "/my-path"
},
{
"lease_id": "6000002",
"tenant_id": 1,
"handle_id": 3000002,
"lease_version": "V2",
"session_id": 10002,
"lease_type": "RW",
"domain": "test.infinidat.com",
"sid": "S-1-5-32-1001",
"filesystem_id": 1001,
"user_name": "SmbUser1",
"file_path": "/my-path"
},
{
"lease_id": "6000003",
"tenant_id": 1,
"handle_id": 3000003,
"lease_version": "V2",
"session_id": 10003,
"lease_type": "RWH",
"domain": "test.infinidat.com",
"sid": "S-1-5-32-1005",
"filesystem_id": 1001,
"user_name": "SmbUser5",
"file_path": "/my-path"
},
{
"lease_id": "6000004",
"tenant_id": 1,
"handle_id": 3000004,
"lease_version": "V1",
"session_id": 10004,
"lease_type": "RWH",
"domain": "test.infinidat.com",
"sid": "S-1-5-32-1005",
"filesystem_id": 1001,
"user_name": "SmbUser5",
"file_path": "/my-path"
},
{
"lease_id": "6000005",
"tenant_id": 1,
"handle_id": 3000005,
"lease_version": "V1",
"session_id": 10005,
"lease_type": "R",
"domain": "test.infinidat.com",
"sid": "S-1-5-32-1003",
"filesystem_id": 1001,
"user_name": "SmbUser3",
"file_path": "/my-path"
}
],
"error": null
}
|
| Errors |
| MISSING_QUERY_PARAMETER |
HTTP 400 |
A query parameter ('filesystem_id') is missing in the request |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
| FILE_DOES_NOT_EXIST |
HTTP 409 |
File '/.my-path' does not exist in filesystem 'auto-filesystem--0287fd75-' |
| INVALID_FILE_PATH |
HTTP 409 |
Invalid file path: '/dummy' |
|
Smb
Get Smb Server Capabilities
| Description |
Return the SMB server capabilities Filterable and Sortable fields:max_smb_protocol,min_smb_protocol,nfsv4_support,smb_encryption,smb_lease_break_timeout,smb_leases_enable,smb_signing,tenantId. |
| API Endpoint |
GET api/rest/smb/server_capabilities |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"smb_leases_enable": true,
"smb_encryption": "NEGOTIATE",
"tenant_id": 1,
"min_smb_protocol": "SMB_2_0_2",
"smb_lease_break_timeout": 60,
"smb_signing": "NEGOTIATE",
"max_smb_protocol": "SMB_3_1_1"
}
],
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('nfsv4_support') |
|
Update Smb Server Capabilities
| Description |
Update an attribute of SMB server capabilities
|
| API Endpoint |
PUT api/rest/smb/server_capabilities |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"max_smb_protocol": "SMB_3_0_2"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"smb_leases_enable": true,
"smb_encryption": "NEGOTIATE",
"tenant_id": 1,
"min_smb_protocol": "SMB_2_0_2",
"smb_lease_break_timeout": 60,
"smb_signing": "NEGOTIATE",
"max_smb_protocol": "SMB_3_0_2"
},
"error": null
}
|
| Errors |
| INVALID_SMB_LEASE_BREAK_TIMEOUT |
HTTP 409 |
'N/A' is not a supported SMB lease break timeout value. Enter a value between 1 and N/A seconds |
| MIN_SMB_PROTOCOL_VERSION_HIGHER_THAN_MAX_SMB_PROTOCOL_VERSION |
HTTP 409 |
The minimum SMB Protocol Version must not be higher than the maximum SMB Protocol Version, but 'SMB_3_1_1' is higher than 'SMB_3_0' |
| MAX_SMB_PROTOCOL_VERSION_LOWER_THAN_MIN_SMB_PROTOCOL_VERSION |
HTTP 409 |
The maximum SMB Protocol Version must not be lower than the minimum SMB Protocol Version, but 'SMB_2_0_2' is lower than 'SMB_2_1' |
|
Smb Session
Delete Smb Handle
| Description |
Close an SMB Handle
|
| Approval required |
This is a dangerous operation
Closing a file handle while an application is using it may cause clients to lose data
|
| API Endpoint |
DELETE api/rest/smb/sessions/{sessionId}/handles/{handleId} |
| URL Parameters |
| sessionId |
long |
session_id |
| handleId |
long |
handle_id |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"filesystem_name": "auto-filesystem--9be533ba-",
"tenant_id": 1,
"handle_id": 200001,
"session_id": 100001,
"sid": null,
"created_timestamp": 1774522269948,
"user_name": null,
"file_path": "/my-file-1"
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Closing a file handle while an application is using it may cause clients to lose data |
|
Disconnect Smb Session
| Description |
Disconnect an SMB Session
|
| Approval required |
This is a dangerous operation
Disconnecting an SMB session may cause the client to lose data
|
| API Endpoint |
DELETE api/rest/smb/sessions/{sessionId} |
| URL Parameters |
| sessionId |
long |
session_id |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"domain": "test.infinidat.com",
"login_timestamp": 1774522248921,
"num_leases": 4953,
"tenant_id": 1,
"num_opens": 31083,
"last_action_timestamp": 1774522249821,
"session_id": 10001,
"signing": true,
"sid": "S-1-5-32--1157407321",
"user_name": "SmbUser-1157408321",
"encryption": true
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Disconnecting an SMB session may cause the client to lose data |
|
Get Smb Handle
| Description |
Get an SMB Handle
|
| API Endpoint |
GET api/rest/smb/sessions/{sessionId}/handles/{handleId} |
| URL Parameters |
| sessionId |
long |
session_id |
| handleId |
long |
handle_id |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"filesystem_name": "auto-filesystem--a8be006a-",
"tenant_id": 1,
"handle_id": 200001,
"session_id": 10001,
"sid": null,
"created_timestamp": 1774522276209,
"user_name": null,
"file_path": "/my-file-1"
},
"error": null
}
|
| Errors |
| SMB_COMMAND_FAILED_NO_SUCH_SESSION |
HTTP 409 |
The requested command failed. Session '10001' was not found |
| SMB_COMMAND_FAILED_NO_SUCH_HANDLE |
HTTP 409 |
The requested command failed. Handle '200001' was not found in session '10001' |
|
Query Smb Handles
| Description |
Query SMB Handles
|
| API Endpoint |
GET api/rest/smb/sessions/{sessionId}/handles |
| URL Parameters |
| sessionId |
long |
session_id |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 10,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"filesystem_name": "auto-filesystem--75434c67-",
"tenant_id": 1,
"handle_id": 200001,
"session_id": 10001,
"sid": null,
"created_timestamp": 1774522280689,
"user_name": null,
"file_path": "/my-file-1"
},
{
"filesystem_name": "auto-filesystem--75434c67-",
"tenant_id": 1,
"handle_id": 200002,
"session_id": 10001,
"sid": null,
"created_timestamp": 1774522279689,
"user_name": null,
"file_path": "/my-file-2"
},
{
"filesystem_name": "auto-filesystem--75434c67-",
"tenant_id": 1,
"handle_id": 200003,
"session_id": 10001,
"sid": null,
"created_timestamp": 1774522278689,
"user_name": null,
"file_path": "/my-file-3"
},
{
"filesystem_name": "auto-filesystem--75434c67-",
"tenant_id": 1,
"handle_id": 200004,
"session_id": 10001,
"sid": null,
"created_timestamp": 1774522277689,
"user_name": null,
"file_path": "/my-file-4"
},
{
"filesystem_name": "auto-filesystem--75434c67-",
"tenant_id": 1,
"handle_id": 200005,
"session_id": 10001,
"sid": null,
"created_timestamp": 1774522276689,
"user_name": null,
"file_path": "/my-file-5"
},
{
"filesystem_name": "auto-filesystem--75434c67-",
"tenant_id": 1,
"handle_id": 200006,
"session_id": 10001,
"sid": null,
"created_timestamp": 1774522275689,
"user_name": null,
"file_path": "/my-file-6"
},
{
"filesystem_name": "auto-filesystem--75434c67-",
"tenant_id": 1,
"handle_id": 200007,
"session_id": 10001,
"sid": null,
"created_timestamp": 1774522274689,
"user_name": null,
"file_path": "/my-file-7"
},
{
"filesystem_name": "auto-filesystem--75434c67-",
"tenant_id": 1,
"handle_id": 200008,
"session_id": 10001,
"sid": null,
"created_timestamp": 1774522273689,
"user_name": null,
"file_path": "/my-file-8"
},
{
"filesystem_name": "auto-filesystem--75434c67-",
"tenant_id": 1,
"handle_id": 200009,
"session_id": 10001,
"sid": null,
"created_timestamp": 1774522272689,
"user_name": null,
"file_path": "/my-file-9"
},
{
"filesystem_name": "auto-filesystem--75434c67-",
"tenant_id": 1,
"handle_id": 200010,
"session_id": 10001,
"sid": null,
"created_timestamp": 1774522271689,
"user_name": null,
"file_path": "/my-file-10"
}
],
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('file_path') |
| NOT_FILTERABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be filtered: ('filesystem_name') |
|
Query Smb Sessions
| Description |
Query SMB Sessions
|
| API Endpoint |
GET api/rest/smb/sessions |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 5,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"domain": "test.infinidat.com",
"login_timestamp": 1774522255949,
"num_leases": 7279,
"tenant_id": 1,
"num_opens": 45332,
"last_action_timestamp": 1774522256849,
"session_id": 10001,
"signing": false,
"sid": "S-1-5-32--1157407321",
"user_name": "SmbUser-1157408321",
"encryption": false
},
{
"domain": "test.infinidat.com",
"login_timestamp": 1774522254949,
"num_leases": 47786,
"tenant_id": 1,
"num_opens": 7022,
"last_action_timestamp": 1774522256749,
"session_id": 10002,
"signing": true,
"sid": "S-1-5-32--1157407321",
"user_name": "SmbUser-1157408321",
"encryption": true
},
{
"domain": "test.infinidat.com",
"login_timestamp": 1774522253949,
"num_leases": 44431,
"tenant_id": 1,
"num_opens": 63805,
"last_action_timestamp": 1774522256649,
"session_id": 10003,
"signing": false,
"sid": "S-1-5-32--1157407321",
"user_name": "SmbUser-1157408321",
"encryption": true
},
{
"domain": "test.infinidat.com",
"login_timestamp": 1774522252949,
"num_leases": 42020,
"tenant_id": 1,
"num_opens": 40537,
"last_action_timestamp": 1774522256549,
"session_id": 10004,
"signing": true,
"sid": "S-1-5-32--1157407321",
"user_name": "SmbUser-1157408321",
"encryption": false
},
{
"domain": "test.infinidat.com",
"login_timestamp": 1774522251949,
"num_leases": 851,
"tenant_id": 1,
"num_opens": 15551,
"last_action_timestamp": 1774522256449,
"session_id": 10005,
"signing": true,
"sid": "S-1-5-32--1157407321",
"user_name": "SmbUser-1157408321",
"encryption": true
}
],
"error": null
}
|
| Errors |
| NOT_FILTERABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be filtered: ('login_timestamp') |
| SMB_COMMAND_FAILED_NO_SUCH_SESSION |
HTTP 409 |
The requested command failed. Session '1' was not found |
|
Smb User
Create Smb User
| Description |
Create a new SMB user
|
| API Endpoint |
POST api/rest/smb_users |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"password": "Password1",
"name": "smbUser1"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"primary_group": null,
"uid": null,
"tenant_id": 6038,
"privileges": null,
"enabled": true,
"group_ids": [],
"groups": [],
"sid": "S-1-5-21-3409979935-3072019085-2813367527-1001",
"primary_group_id": null,
"id": 1001,
"name": "smbUser1"
},
"error": null
}
|
| Errors |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'na/me' |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 20 characters |
| WRONG_PARAMETER |
HTTP 400 |
The value (4294967296) of parameter 'uid' does not meet a condition: 'must be less than or equal to 4294967295' |
| MISSING_FIELD |
HTTP 400 |
A field ('name') is missing in an object passed |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('password') could not be translated to an expected type |
| SMB_GROUP_NOT_FOUND |
HTTP 404 |
SMB group not found |
| SMB_GROUP_MEMBERS_COUNT_LIMIT |
HTTP 409 |
Cannot add a new member. The SMB group 'smb-group-1' has reached the maximum number of members |
| SMB_USER_COUNT_LIMIT |
HTTP 409 |
A new SMB user cannot be created. The system has reached the maximum number of users |
| SMB_USER_NAME_CONFLICT |
HTTP 409 |
An SMB user named 'Unique-name' already exists |
| SMB_USER_PASSWORD_INVALID |
HTTP 409 |
The password for SMB user 'smb-user-1' does not meet the requirements. See InfiniBox user documentation for details |
| SMB_USER_PRIVS_HAS_DUPLICATES |
HTTP 409 |
Remove duplicate privilege assignments, such as 'SeTakeOwnershipPrivilege', from the SMB user 'smb-user-7' |
|
Delete Smb User
| Description |
Delete an SMB user by id
|
| Approval required |
This is a dangerous operation
Deleting an SMB user will permanently remove their access privileges
|
| API Endpoint |
DELETE api/rest/smb_users/{id} |
| URL Parameters |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"primary_group": null,
"uid": null,
"tenant_id": 6038,
"privileges": [],
"enabled": true,
"group_ids": [],
"groups": [],
"sid": "S-1-5-21-3409979935-3072019085-2813367527-1001",
"primary_group_id": null,
"id": 1001,
"name": "smbUser1"
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting an SMB user will permanently remove their access privileges |
| SMB_USER_NOT_FOUND |
HTTP 404 |
SMB user not found |
| SMB_USER_GUEST_CONFLICT |
HTTP 409 |
The SMB user 'Guest' cannot be deleted |
| SMB_USER_ADMINISTRATOR_CONFLICT |
HTTP 409 |
The SMB user 'Administrator' cannot be deleted |
|
Get all Smb Users
| Description |
Get all SMB users
|
| API Endpoint |
GET api/rest/smb_users |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN,
TECHNICIAN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 2,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"primary_group": {
"uid": 0,
"tenant_id": 6038,
"privileges": [
"SECHANGENOTIFYPRIVILEGE",
"SETAKEOWNERSHIPPRIVILEGE"
],
"gid": 0,
"sid": "S-1-5-32-544",
"domain_members": null,
"id": 51,
"name": "Administrators"
},
"uid": 0,
"tenant_id": 6038,
"privileges": [],
"enabled": true,
"group_ids": [],
"groups": [],
"sid": "S-1-5-21-3206103621-2706911766-3865859559-500",
"primary_group_id": 51,
"id": 56,
"name": "Administrator"
},
{
"primary_group": {
"uid": null,
"tenant_id": 6038,
"privileges": [],
"gid": null,
"sid": "S-1-5-32-546",
"domain_members": null,
"id": 53,
"name": "Guests"
},
"uid": null,
"tenant_id": 6038,
"privileges": [],
"enabled": true,
"group_ids": [],
"groups": [],
"sid": "S-1-5-21-3206103621-2706911766-3865859559-501",
"primary_group_id": 53,
"id": 57,
"name": "Guest"
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Smb User
| Description |
Get an SMB user by id
|
| API Endpoint |
GET api/rest/smb_users/{id} |
| URL Parameters |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN,
TECHNICIAN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"primary_group": {
"uid": null,
"tenant_id": 1,
"privileges": [
"SECHANGENOTIFYPRIVILEGE"
],
"gid": null,
"sid": "S-1-5-32-545",
"domain_members": null,
"id": 2,
"name": "Users"
},
"uid": null,
"tenant_id": 1,
"privileges": [],
"enabled": true,
"group_ids": [],
"groups": [],
"sid": "S-1-5-21-4091568562-1022951338-2823422509-1001",
"primary_group_id": 2,
"id": 1001,
"name": "Unique-name"
},
"error": null
}
|
| Errors |
| SMB_USER_NOT_FOUND |
HTTP 404 |
SMB user not found |
|
Update Smb User Attributes
| Description |
Update SMB user attributes
|
| Approval required |
This is a dangerous operation
Disabling an SMB user will revoke their access privileges for as long as they remain disabled
|
| API Endpoint |
PUT api/rest/smb_users/{id} |
| URL Parameters |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"enabled": false
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"primary_group": {
"uid": null,
"tenant_id": 1,
"privileges": [
"SECHANGENOTIFYPRIVILEGE"
],
"gid": null,
"sid": "S-1-5-32-545",
"domain_members": null,
"id": 2,
"name": "Users"
},
"uid": null,
"tenant_id": 1,
"privileges": [],
"enabled": false,
"group_ids": [],
"groups": [],
"sid": "S-1-5-21-1984300546-3755026423-1655821165-1002",
"primary_group_id": 2,
"id": 1002,
"name": "smb-user-3"
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('name') |
| WRONG_PARAMETER |
HTTP 400 |
The value (4294967296) of parameter 'uid' does not meet a condition: 'must be less than or equal to 4294967295' |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('password') could not be translated to an expected type |
| APPROVAL_REQUIRED |
HTTP 403 |
Disabling an SMB user will revoke their access privileges for as long as they remain disabled |
| SMB_USER_NOT_FOUND |
HTTP 404 |
SMB user not found |
| SMB_GROUP_NOT_FOUND |
HTTP 404 |
SMB group not found |
| SMB_USER_PASSWORD_INVALID |
HTTP 409 |
The password for SMB user 'smb-user-1' does not meet the requirements. See InfiniBox user documentation for details |
| SMB_GROUP_MEMBERS_COUNT_LIMIT |
HTTP 409 |
Cannot add a new member. The SMB group 'smb-group-1' has reached the maximum number of members |
| SMB_PRIMARY_GROUP_CONFLICT |
HTTP 409 |
The SMB group 'smb-group-1' cannot be both the primary group and a non-primary group of the user |
| SMB_USER_PRIVS_HAS_DUPLICATES |
HTTP 409 |
Remove duplicate privilege assignments, such as 'SeTakeOwnershipPrivilege', from the SMB user 'smb-user' |
| SMB_USER_ADMINISTRATOR_CONFLICT |
HTTP 409 |
The SMB user 'Administrator' cannot be updated with a change of primary group |
| SMB_USER_ALREADY_DISABLED |
HTTP 409 |
The SMB user 'smb-user-1' is already disabled |
| SMB_USER_ALREADY_ENABLED |
HTTP 409 |
The SMB user 'smb-user-1' is already enabled |
|
Snapshot Policy
Assign Snapshot Policy to Entity
| Description |
Assign snapshot policy to an entity
|
| Approval required |
This is a dangerous operation
entity 'assignedEntityName' will be assigned to snapshot policy 'newPolicyName' instead of snapshot policy 'oldPolicyName'
|
| API Endpoint |
POST api/rest/snapshot_policies/{snapshot_policy_id}/assign_entity |
| URL Parameters |
| snapshot_policy_id |
long |
Snapshot policy id |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"assigned_entity_type": "CG",
"assigned_entity_id": 1001
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": true,
"error": null
}
|
| Errors |
| MISSING_FIELD |
HTTP 400 |
A field ('assigned_entity_type') is missing in an object passed |
| WRONG_PARAMETER |
HTTP 400 |
The value (assigned_entity_type) of parameter 'VOLUME' does not meet a condition: 'Entity with id 1001 is not of type VOLUME' |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('assigned_entity_type') could not be translated to an expected type |
| SNAPSHOT_POLICY_CANNOT_BE_ASSIGNED_TO_CG_MEMBER |
HTTP 403 |
VOLUME 'auto-volume--d81cc458-86e3' belongs to a consistency group and cannot have its own snapshot policy |
| USER_IS_FORBIDDEN |
HTTP 403 |
'volume2' is located in a pool on which the current user has read-only permissions |
| APPROVAL_REQUIRED |
HTTP 403 |
Filesystem 'auto-filesystem--e1dfff4a-' will be assigned to snapshot policy 'weekly' instead of snapshot policy 'hourly' |
| SNAPSHOT_POLICY_NOT_FOUND |
HTTP 404 |
Snapshot policy not found |
| CG_NOT_FOUND |
HTTP 404 |
Consistency group not found |
| DATASET_NOT_FOUND |
HTTP 404 |
Dataset not found |
| ENTITY_ALREADY_ASSIGNED_TO_SNAPSHOT_POLICY |
HTTP 409 |
Volume 'auto-volume--37383ff1-052e' is already assigned to snapshot policy 'daily' |
| ASSIGN_SG_TO_SNAPSHOT_POLICY_NOT_SUPPORTED |
HTTP 409 |
A snap group cannot be assigned to a snapshot policy |
|
Create Snapshot Policy
| Description |
Create a new Snapshot policy
|
| API Endpoint |
POST api/rest/snapshot_policies |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"name": "auto-hourly-d95cddc9-ac74-",
"suffix": "auto--hourly-9b7d6fb2-d646"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"suffix": "auto--hourly-9b7d6fb2-d646",
"tenant_id": 1,
"created_at": 1774519233730,
"updated_at": 1774519233730,
"assigned_entities_count": 0,
"schedules": [],
"default_snapshot_policy": false,
"id": 182,
"name": "auto-hourly-d95cddc9-ac74-"
},
"error": null
}
|
| Errors |
| MISSING_FIELD |
HTTP 400 |
A field ('name') is missing in an object passed |
| WRONG_PARAMETER |
HTTP 400 |
The value (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) of parameter 'suffix' does not meet a condition: 'size must be between 1 and 64' |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('suffix') could not be translated to an expected type |
| INVALID_CHARACTERS_IN_SNAPSHOT_POLICY_SUFFIX |
HTTP 400 |
Invalid characters in snapshot policy suffix 'some:thing' |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'some:thing' |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
| SNAPSHOT_POLICY_SUFFIX_CONFLICT |
HTTP 409 |
A snapshot policy with suffix 'unique' already exists |
| SNAPSHOT_POLICY_NAME_CONFLICT |
HTTP 409 |
A snapshot policy named 'unique' already exists |
| SNAPSHOT_POLICIES_COUNT_LIMIT |
HTTP 409 |
The maximum number of snapshot policies has been reached. A new snapshot policy cannot be added |
|
Delete Snapshot Policy
| Description |
Delete a snapshot policy by id
|
| Approval required |
This is a dangerous operation
If you delete the snapshot policy, its scheduled snapshots will no longer be created for the assigned entities
|
| API Endpoint |
DELETE api/rest/snapshot_policies/{id} |
| URL Parameters |
| id |
Long |
Snapshot policy id |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"suffix": "-auto-snapshotPolicy-84ac6c",
"tenant_id": 1,
"created_at": 1774519847019,
"updated_at": 1774519847019,
"assigned_entities_count": 1,
"schedules": [
{
"name": "auto-schedule--b33a7667-5b",
"lock_snapshots": false,
"tenant_id": 1,
"created_at": 1774519848335,
"interval": 1,
"enabled": true,
"updated_at": 1774519848335,
"day_of_week": null,
"time_of_day": null,
"snapshot_policy_id": 4199,
"type": "PERIODIC",
"id": 4200,
"retention": 3600
}
],
"default_snapshot_policy": false,
"id": 4199,
"name": "auto-snapshotPolicy-84ac6c"
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
If you delete the snapshot policy, its scheduled snapshots will no longer be created for the assigned entities |
| SNAPSHOT_POLICY_NOT_FOUND |
HTTP 404 |
Snapshot policy not found |
|
Get all Assigned Entities In Snapshot Policy
| Description |
Get all policy's assigned entities
|
| API Endpoint |
GET api/rest/snapshot_policies/{id}/assigned_entities |
| URL Parameters |
| id |
long |
Snapshot policy id |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 2,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"assigned_entity_name": "auto-volume--47a3e473-9cee",
"snapshot_policy_id": 11315,
"assigned_entity_id": 1001,
"assigned_entity_type": "VOLUME",
"snapshot_policy_name": "auto-snapshotPolicy-5541ac"
},
{
"assigned_entity_name": "auto-volume--31e23986-72ba",
"snapshot_policy_id": 11315,
"assigned_entity_id": 1003,
"assigned_entity_type": "VOLUME",
"snapshot_policy_name": "auto-snapshotPolicy-5541ac"
}
],
"error": null
}
|
| Errors |
| SNAPSHOT_POLICY_NOT_FOUND |
HTTP 404 |
Snapshot policy not found |
|
Get all Snapshot Policies
| Description |
Get all snapshot policies
|
| API Endpoint |
GET api/rest/snapshot_policies |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 2,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"suffix": "policy",
"tenant_id": 1,
"created_at": 1774521655124,
"updated_at": 1774521655124,
"assigned_entities_count": 0,
"schedules": [
{
"name": "Six-Hourly",
"lock_snapshots": false,
"tenant_id": 1,
"created_at": 1774521655124,
"interval": 21600,
"enabled": true,
"updated_at": 1774521655124,
"day_of_week": null,
"time_of_day": null,
"snapshot_policy_id": 11098,
"type": "PERIODIC",
"id": 11099,
"retention": 86400
},
{
"name": "Daily",
"lock_snapshots": false,
"tenant_id": 1,
"created_at": 1774521655124,
"interval": 86400,
"enabled": true,
"updated_at": 1774521655124,
"day_of_week": null,
"time_of_day": null,
"snapshot_policy_id": 11098,
"type": "PERIODIC",
"id": 11100,
"retention": 604800
}
],
"default_snapshot_policy": true,
"id": 11098,
"name": "Default Policy"
},
{
"suffix": "-hourly",
"tenant_id": 1,
"created_at": 1774521655421,
"updated_at": 1774521655421,
"assigned_entities_count": 0,
"schedules": [],
"default_snapshot_policy": false,
"id": 11101,
"name": "hourly"
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Snapshot Policy
| Description |
Get a snapshot policy by id
|
| API Endpoint |
GET api/rest/snapshot_policies/{id} |
| URL Parameters |
| id |
Long |
Snapshot policy id |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"suffix": "-hourly",
"tenant_id": 1,
"created_at": 1774521663461,
"updated_at": 1774521663461,
"assigned_entities_count": 0,
"schedules": [],
"default_snapshot_policy": false,
"id": 11160,
"name": "hourly"
},
"error": null
}
|
| Errors |
| SNAPSHOT_POLICY_NOT_FOUND |
HTTP 404 |
Snapshot policy not found |
|
Trigger Snapshot Policies Create Flow
| Description |
Trigger snapshot policies create flow
|
| API Endpoint |
POST api/rest/snapshot_policies/trigger_snapshot_policies_create_flow |
| URL Parameters |
| ignore_conditions |
boolean |
Ignore conditions and create all pending snapshots |
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": null,
"error": null
}
|
| Errors |
See general list of error codes.
|
Trigger Snapshot Policies Service
| Description |
Trigger snapshot policies service
|
| API Endpoint |
POST api/rest/snapshot_policies/trigger_snapshot_policies_service |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": null,
"error": null
}
|
| Errors |
See general list of error codes.
|
Unassign Snapshot Policy from Entity
| Description |
Unassign a snapshot policy from an entity by assigned entity's id
|
| Approval required |
This is a dangerous operation
If you unassign the entity from the snapshot policy, scheduled snapshots will no longer be created for this entity
|
| API Endpoint |
POST api/rest/snapshot_policies/{snapshot_policy_id}/unassign_entity |
| URL Parameters |
| snapshot_policy_id |
long |
Snapshot policy id |
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"assigned_entity_id": 1001
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": true,
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
If you unassign the volume from the snapshot policy, scheduled snapshots will no longer be created for this volume |
| USER_IS_FORBIDDEN |
HTTP 403 |
'volume2' is located in a pool on which the current user has read-only permissions |
| SNAPSHOT_POLICY_NOT_FOUND |
HTTP 404 |
Snapshot policy not found |
| ASSIGNED_ENTITY_TO_SNAPSHOT_POLICY_NOT_FOUND |
HTTP 404 |
The entity is not assigned to the snapshot policy |
|
Update Snapshot Policy Attributes
| Description |
Update snapshot policy attributes
|
| API Endpoint |
PUT api/rest/snapshot_policies/{id} |
| URL Parameters |
| id |
Long |
Snapshot policy id |
|
| Roles |
INFINIDAT,
ADMIN
|
| System States |
ALL
|
| JSON Data |
{
"name": "updated hourly"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"suffix": "-hourly",
"tenant_id": 1,
"created_at": 1774521663461,
"updated_at": 1774521663833,
"assigned_entities_count": 0,
"schedules": [],
"default_snapshot_policy": false,
"id": 11160,
"name": "updated hourly"
},
"error": null
}
|
| Errors |
| WRONG_PARAMETER |
HTTP 400 |
The value (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) of parameter 'suffix' does not meet a condition: 'size must be between 1 and 64' |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| SNAPSHOT_POLICY_SUFFIX_CONFLICT |
HTTP 409 |
A snapshot policy with suffix '-unique' already exists |
| SNAPSHOT_POLICY_NAME_CONFLICT |
HTTP 409 |
A snapshot policy named 'unique' already exists |
|
Ssa Express
Get Ssa Express Active Datasets
| Description |
Get all active and loading datasets in the SSA Express
|
| API Endpoint |
GET api/rest/system/ssa_express/active |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 0,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Ssa Express Queue
| Description |
Get all dataset in the SSA Express queue
|
| API Endpoint |
GET api/rest/system/ssa_express/queue |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 0,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [],
"error": null
}
|
| Errors |
| NOT_FILTERABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be filtered: ('queue_index') |
| NOT_SUPPORTED_MULTIPLE_FIELDS_IN_SORT |
HTTP 400 |
Sorting by multiple fields is not supported when the 'queue_index' field is included |
|
Get Ssa Express Supported Capacities
| Description |
Get SSA Express supported capacities
|
| API Endpoint |
GET api/rest/system/ssa_express/supported_capacities |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 7,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"max_ssa_express_capacity_gb": 0,
"total_ssd_drives_capacity_gb": 28000,
"total_ssd_drives": 15
},
{
"max_ssa_express_capacity_gb": 15294,
"total_ssd_drives_capacity_gb": 46000,
"total_ssd_drives": 24
},
{
"max_ssa_express_capacity_gb": 58588,
"total_ssd_drives_capacity_gb": 92000,
"total_ssd_drives": 48
},
{
"max_ssa_express_capacity_gb": 80235,
"total_ssd_drives_capacity_gb": 115000,
"total_ssd_drives": 15
},
{
"max_ssa_express_capacity_gb": 145176,
"total_ssd_drives_capacity_gb": 184000,
"total_ssd_drives": 24
},
{
"max_ssa_express_capacity_gb": 231764,
"total_ssd_drives_capacity_gb": 276000,
"total_ssd_drives": 36
},
{
"max_ssa_express_capacity_gb": 318352,
"total_ssd_drives_capacity_gb": 368000,
"total_ssd_drives": 48
}
],
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
|
Set Ssa Express Capacity
| Description |
Set SSA Express capacity
|
| API Endpoint |
POST api/rest/system/ssa_express/capacity |
| URL Parameters |
| force_ssa_express_unsupported_capacity |
boolean |
Force setting the given capacities |
| force_ssa_express_without_free_list |
boolean |
Force when the freelist cache config param is disabled |
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"total_ssa_express_capacity_gb": 70000,
"total_ssd_drives_capacity_gb": 115000,
"total_ssd_drives": 15
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": true,
"error": null
}
|
| Errors |
| MISSING_FIELD |
HTTP 400 |
A field ('total_ssa_express_capacity_gb') is missing in an object passed |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('max_ssa_express_capacity_gb') |
| WRONG_PARAMETER |
HTTP 400 |
The value (-1) of parameter 'total_ssa_express_capacity_gb' does not meet a condition: 'greater than or equal to 0' |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| FREE_LIST_CACHE_MUST_BE_ENABLED |
HTTP 403 |
InfiniBox's Freelist cache algorithm is required for working with SSA Express |
| SSA_EXPRESS_INVALID_CONFIGURATION |
HTTP 409 |
The SSA Express configuration settings are not supported by this InfiniBox machine |
| NODE_INACTIVE |
HTTP 409 |
Node is currently inactive |
| SSA_EXPRESS_CAPACITY_NOT_SUPPORTED |
HTTP 409 |
The SSA Express capacity you provided must be between 0 and the maximum limit, as detailed in the Capacity Bundles table |
| SSA_EXPRESS_INVALID_CAPACITY |
HTTP 409 |
The specified SSA Express capacity is invalid. The new capacity must be higher than the SSA Express capacity currently in use, and lower than the total SSD capacity |
|
Ssh
Disable Ssh Ports
| Description |
Close all the ssh ports
|
| API Endpoint |
POST api/rest/system/ssh/close |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"node1_ssh_port_status": "UNKNOWN",
"sa_ssh_port_status": "CLOSED",
"node3_ssh_port_status": "CLOSED",
"overall_ssh_port_status": "UNKNOWN",
"ssh_open_expiration_time": 1774522290067,
"node2_ssh_port_status": "CLOSED"
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Enable Ssh Ports
| Description |
Open all the ssh ports
|
| API Endpoint |
POST api/rest/system/ssh/open |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"node1_ssh_port_status": "CLOSED",
"sa_ssh_port_status": "CLOSED",
"node3_ssh_port_status": "CLOSED",
"overall_ssh_port_status": "CLOSED",
"ssh_open_expiration_time": 1774522287610,
"node2_ssh_port_status": "CLOSED"
},
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
|
Get Ssh Ports
| Description |
Get all the ssh ports
|
| API Endpoint |
GET api/rest/system/ssh |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"node1_ssh_port_status": "UNKNOWN",
"sa_ssh_port_status": "CLOSED",
"node3_ssh_port_status": "CLOSED",
"overall_ssh_port_status": "UNKNOWN",
"ssh_open_expiration_time": 1774522290067,
"node2_ssh_port_status": "CLOSED"
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Sso
Update an Sso Identity Provider Attribute
| Description |
Update an attribute of an SSO identity provider
|
| Approval required |
This is a dangerous operation
operation SSO identity provider 'ssoIdpName' will invalidate all its currently logged-in users
|
| API Endpoint |
PUT api/rest/config/sso/idps/{id} |
| URL Parameters |
| id |
long |
ID of the SSO identity provider |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"name": ""
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"signed_assertion": true,
"sign_on_url": "https://55555555.okta.com/home/0oa8f9hrvvI2xb5875d7/aln8f9lgmyeUmiwv95d7",
"name": "Oktaa6cd0008-a2e0-49e3-940a-d8c4b56c9b66",
"enabled": true,
"signing_certificate": "-----BEGIN CERTIFICATE-----MIIDqDCCApCgAwIBAgIGAYZ4CsAIMA0GCSqGSIb3DQEBCwUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxFTATBgNVBAMMDGRldi01MTA4MTA3NDEcMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTAeFw0yMzAyMjIwNzMyMzVaFw0zMzAyMjIwNzMzMzVaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxFTATBgNVBAMMDGRldi01MTA4MTA3NDEcMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK2v8+5fWRCFu2K9jyB75+27wLRg7pC9YCi7Xs+6N0C3XWPQW4Pb8NeYYwcFqpj+CGYVNlg6Qt7V84mJpEkqqDeSmnKW675xhTHhLYmJX6eOMJ7H3reoJPsk62A3Axo6ODJb2aukefm9CF8pLjxAwwGk1fLpmlGBZ+H2uU8N1LMDGlKEBYazyf/ttv+lmUrO5tDDp7ypAZKv9QiJllBnAzSLK8tlQazRueZpN1549IhzyhK0V3az8pBAd/FXh9C+HI78+d+4zGeBG/6bZ1JrOIBHvHvGNSMSgtbHY30dSS5/3klB3Ir2OoRCAhMOefH7AVykL892axbxcIIuhmLrEIcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAD4yZxAMk2XCROEQ5df66pypRG7oMSw9ZoC5Mvt+XC50sBOP76qk55jj2WoeKxxZPuZFraRPvJMrv4wTNuL7/Ss5P4zcihUu1pNZeWLCMv1DL6jmRIjSPUh5QuVsCCKO0jy4pPa6ANNfz6MfiErZYlNrPvCsvwkKn7t088ZaaUw22wiBSKzYX5Lz3CiBDBxbJHucSVVF0zFGIEhV+87m2VigNoBx3zbS6m9oJ3KNmmC1V6NXgSwuepuaxAr6xSY0IfsfejlGiS57kTCi7+whwbAs/q7KrWSd1ehHgi7Db6wRTQoTi6o5crVYWqtM5NoY9EHWrZDIqaLLvKb/RhvGydA==-----END CERTIFICATE-----",
"signed_response": true,
"signing_certificate_expiry": 1992670415000,
"id": 4767,
"signing_certificate_serial": "1677051215880",
"issuer": "http://www.okta.com/exkeemapg7T769PU32p7a6cd0008-a2e0-49e3-940a-d8c4b56c9b66"
},
"error": null
}
|
| Errors |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 255 characters |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('signed_response') could not be translated to an expected type |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'abc*def' |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('issuer') |
| APPROVAL_REQUIRED |
HTTP 403 |
Disabling SSO identity provider 'Okta61b44de2-5317-473d-af28-9ac2b6cda1ca' will invalidate all its currently logged-in users |
| SSO_IDENTITY_PROVIDER_NOT_FOUND |
HTTP 404 |
SSO identity provider not found |
| SSO_IDENTITY_PROVIDER_MISSING_SIGNING_CERTIFICATE |
HTTP 409 |
The signing certificate for SSO identity provider 'Okta046559d5-5bd1-49f7-84df-2e097e523c0a' is missing |
| SSO_IDENTITY_PROVIDER_INVALID_VALUE |
HTTP 409 |
The value of the SSO identity provider's signing certificate is invalid. Failed to create a valid certificate from the provided input |
| SSO_IDENTITY_PROVIDER_NAME_CONFLICT |
HTTP 409 |
An SSO identity provider named 'Okta3c216809-968c-4c20-9720-4745de600a52' already exists |
| SSO_IDENTITY_PROVIDER_UNSECURED_LINK_URL |
HTTP 409 |
The SSO identity provider's sign on URL must be an SSL link that starts with 'https://' |
|
Authenticate With Sso Identity Provider
| Description |
Redirect to the SSO identity provider for authnetication
|
| API Endpoint |
GET api/rest/config/sso/idps/{id}/authenticate |
| URL Parameters |
| id |
Long |
SSO identity provider id |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Clear Cache
| Description |
|
| API Endpoint |
DELETE api/rest/config/sso/cache/{idpId} |
| URL Parameters |
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "OK",
"error": null
}
|
| Errors |
See general list of error codes.
|
Create Sso Identity Provider
| Description |
Define a new SSO identity provider
|
| Approval required |
This is a dangerous operation
Disabling an SSO identity provider signing option will prevent verification of that signature during SSO user authentication
|
| API Endpoint |
POST api/rest/config/sso/idps |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"sign_on_url": "https://55555555.okta.com/home/0oa8f9hrvvI2xb5875d7/aln8f9lgmyeUmiwv95d7",
"signed_assertion": false,
"enabled": true,
"signing_certificate": "",
"signed_response": false,
"issuer": "http://www.okta.com/exkeemapg7T769PU32p7dfd2c94c-d9e3-443d-988e-7a2820876ae6",
"name": "Oktadfd2c94c-d9e3-443d-988e-7a2820876ae6"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"signed_assertion": false,
"sign_on_url": "https://55555555.okta.com/home/0oa8f9hrvvI2xb5875d7/aln8f9lgmyeUmiwv95d7",
"name": "Oktadfd2c94c-d9e3-443d-988e-7a2820876ae6",
"enabled": true,
"signing_certificate": "",
"signed_response": false,
"signing_certificate_expiry": null,
"id": 4684,
"signing_certificate_serial": null,
"issuer": "http://www.okta.com/exkeemapg7T769PU32p7dfd2c94c-d9e3-443d-988e-7a2820876ae6"
},
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('signed_response') could not be translated to an expected type |
| MISSING_FIELD |
HTTP 400 |
A field ('sign_on_url') is missing in an object passed |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 255 characters |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'abc*def' |
| APPROVAL_REQUIRED |
HTTP 403 |
Disabling an SSO identity provider signing option will prevent verification of that signature during SSO user authentication |
| SSO_IDENTITY_PROVIDER_COUNT_LIMIT |
HTTP 409 |
The maximum number of SSO identity providers has been reached. You cannot create another one |
| SSO_IDENTITY_PROVIDER_INVALID_VALUE |
HTTP 409 |
The value of the SSO identity provider's sign_on_url is invalid. Sign on url value length must not exceed 512 characters |
| SSO_IDENTITY_PROVIDER_ISSUER_CONFLICT |
HTTP 409 |
An SSO identity provider already exists for issuer 'abcdefg' |
| SSO_IDENTITY_PROVIDER_UNSECURED_LINK_URL |
HTTP 409 |
The SSO identity provider's sign on URL must be an SSL link that starts with 'https://' |
| SSO_IDENTITY_PROVIDER_NAME_CONFLICT |
HTTP 409 |
An SSO identity provider named 'abcdefg' already exists |
| SSO_IDENTITY_PROVIDER_MISSING_SIGNING_CERTIFICATE |
HTTP 409 |
The signing certificate for SSO identity provider 'Okta1196382c5-92d7-47b3-9fc4-9647a98a6643' is missing |
|
Delete an Sso Identity Provider
| Description |
Delete an SSO identity provider
|
| Approval required |
This is a dangerous operation
operation SSO identity provider 'ssoIdpName' will invalidate all its currently logged-in users
|
| API Endpoint |
DELETE api/rest/config/sso/idps/{id} |
| URL Parameters |
| id |
Long |
SSO identity provider id |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"signed_assertion": true,
"sign_on_url": "https://55555555.okta.com/home/0oa8f9hrvvI2xb5875d7/aln8f9lgmyeUmiwv95d7",
"name": "Oktaa6cd0008-a2e0-49e3-940a-d8c4b56c9b66",
"enabled": true,
"signing_certificate": "-----BEGIN CERTIFICATE-----MIIDqDCCApCgAwIBAgIGAYZ4CsAIMA0GCSqGSIb3DQEBCwUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxFTATBgNVBAMMDGRldi01MTA4MTA3NDEcMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTAeFw0yMzAyMjIwNzMyMzVaFw0zMzAyMjIwNzMzMzVaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxFTATBgNVBAMMDGRldi01MTA4MTA3NDEcMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK2v8+5fWRCFu2K9jyB75+27wLRg7pC9YCi7Xs+6N0C3XWPQW4Pb8NeYYwcFqpj+CGYVNlg6Qt7V84mJpEkqqDeSmnKW675xhTHhLYmJX6eOMJ7H3reoJPsk62A3Axo6ODJb2aukefm9CF8pLjxAwwGk1fLpmlGBZ+H2uU8N1LMDGlKEBYazyf/ttv+lmUrO5tDDp7ypAZKv9QiJllBnAzSLK8tlQazRueZpN1549IhzyhK0V3az8pBAd/FXh9C+HI78+d+4zGeBG/6bZ1JrOIBHvHvGNSMSgtbHY30dSS5/3klB3Ir2OoRCAhMOefH7AVykL892axbxcIIuhmLrEIcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAD4yZxAMk2XCROEQ5df66pypRG7oMSw9ZoC5Mvt+XC50sBOP76qk55jj2WoeKxxZPuZFraRPvJMrv4wTNuL7/Ss5P4zcihUu1pNZeWLCMv1DL6jmRIjSPUh5QuVsCCKO0jy4pPa6ANNfz6MfiErZYlNrPvCsvwkKn7t088ZaaUw22wiBSKzYX5Lz3CiBDBxbJHucSVVF0zFGIEhV+87m2VigNoBx3zbS6m9oJ3KNmmC1V6NXgSwuepuaxAr6xSY0IfsfejlGiS57kTCi7+whwbAs/q7KrWSd1ehHgi7Db6wRTQoTi6o5crVYWqtM5NoY9EHWrZDIqaLLvKb/RhvGydA==-----END CERTIFICATE-----",
"signed_response": true,
"signing_certificate_expiry": 1992670415000,
"id": 4765,
"signing_certificate_serial": "1677051215880",
"issuer": "http://www.okta.com/exkeemapg7T769PU32p7a6cd0008-a2e0-49e3-940a-d8c4b56c9b66"
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting SSO identity provider 'Okta849955ad-1bec-43f8-b302-08a3f8a62145' will invalidate all its currently logged-in users |
| SSO_IDENTITY_PROVIDER_NOT_FOUND |
HTTP 404 |
SSO identity provider not found |
| CANNOT_REMOVE_SSO_IDENTITY_PROVIDER_WITH_MAPPED_GROUPS |
HTTP 409 |
SSO identity provider 'Okta375d4927-1543-4e73-9214-f4dd0c0f431d' contains groups with mapped pools. Remove the SSO user group 'ibox-pool-admins' and try again |
|
Get an Sso Identity Provider
| Description |
Get an SSO identity provider by id
|
| API Endpoint |
GET api/rest/config/sso/idps/{id} |
| URL Parameters |
| id |
Long |
SSO identity provider id |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"signed_assertion": true,
"sign_on_url": "https://55555555.okta.com/home/0oa8f9hrvvI2xb5875d7/aln8f9lgmyeUmiwv95d71",
"name": "Okta1a0da6a2a-09af-4337-96b1-dec7c4068441",
"enabled": true,
"signing_certificate": "MIIDqDCCApCgAwIBAgIGAYZ4CsAIMA0GCSqGSIb3DQEBCwUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxFTATBgNVBAMMDGRldi01MTA4MTA3NDEcMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTAeFw0yMzAyMjIwNzMyMzVaFw0zMzAyMjIwNzMzMzVaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxFTATBgNVBAMMDGRldi01MTA4MTA3NDEcMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK2v8+5fWRCFu2K9jyB75+27wLRg7pC9YCi7Xs+6N0C3XWPQW4Pb8NeYYwcFqpj+CGYVNlg6Qt7V84mJpEkqqDeSmnKW675xhTHhLYmJX6eOMJ7H3reoJPsk62A3Axo6ODJb2aukefm9CF8pLjxAwwGk1fLpmlGBZ+H2uU8N1LMDGlKEBYazyf/ttv+lmUrO5tDDp7ypAZKv9QiJllBnAzSLK8tlQazRueZpN1549IhzyhK0V3az8pBAd/FXh9C+HI78+d+4zGeBG/6bZ1JrOIBHvHvGNSMSgtbHY30dSS5/3klB3Ir2OoRCAhMOefH7AVykL892axbxcIIuhmLrEIcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAD4yZxAMk2XCROEQ5df66pypRG7oMSw9ZoC5Mvt+XC50sBOP76qk55jj2WoeKxxZPuZFraRPvJMrv4wTNuL7/Ss5P4zcihUu1pNZeWLCMv1DL6jmRIjSPUh5QuVsCCKO0jy4pPa6ANNfz6MfiErZYlNrPvCsvwkKn7t088ZaaUw22wiBSKzYX5Lz3CiBDBxbJHucSVVF0zFGIEhV+87m2VigNoBx3zbS6m9oJ3KNmmC1V6NXgSwuepuaxAr6xSY0IfsfejlGiS57kTCi7+whwbAs/q7KrWSd1ehHgi7Db6wRTQoTi6o5crVYWqtM5NoY9EHWrZDIqaLLvKb/RhvGydA==",
"signed_response": true,
"signing_certificate_expiry": 1992670415000,
"id": 4724,
"signing_certificate_serial": "1677051215880",
"issuer": "http://www.okta.com/exkeemapg7T769PU32p71a0da6a2a-09af-4337-96b1-dec7c4068441"
},
"error": null
}
|
| Errors |
| SSO_IDENTITY_PROVIDER_NOT_FOUND |
HTTP 404 |
SSO identity provider not found |
|
Get Cache
| Description |
|
| API Endpoint |
GET api/rest/config/sso/cache/{idpId} |
| URL Parameters |
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"Okta849955ad-1bec-43f8-b302-08a3f8a62145": {
"right": 3363919760,
"left": {}
}
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Sso Identity Providers
| Description |
Get all SSO identity providers
|
| API Endpoint |
GET api/rest/config/sso/idps |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 3,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"signed_assertion": true,
"sign_on_url": "https://55555555.okta.com/home/0oa8f9hrvvI2xb5875d7/aln8f9lgmyeUmiwv95d71",
"name": "Okta1a0da6a2a-09af-4337-96b1-dec7c4068441",
"enabled": true,
"signing_certificate": "MIIDqDCCApCgAwIBAgIGAYZ4CsAIMA0GCSqGSIb3DQEBCwUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxFTATBgNVBAMMDGRldi01MTA4MTA3NDEcMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTAeFw0yMzAyMjIwNzMyMzVaFw0zMzAyMjIwNzMzMzVaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxFTATBgNVBAMMDGRldi01MTA4MTA3NDEcMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK2v8+5fWRCFu2K9jyB75+27wLRg7pC9YCi7Xs+6N0C3XWPQW4Pb8NeYYwcFqpj+CGYVNlg6Qt7V84mJpEkqqDeSmnKW675xhTHhLYmJX6eOMJ7H3reoJPsk62A3Axo6ODJb2aukefm9CF8pLjxAwwGk1fLpmlGBZ+H2uU8N1LMDGlKEBYazyf/ttv+lmUrO5tDDp7ypAZKv9QiJllBnAzSLK8tlQazRueZpN1549IhzyhK0V3az8pBAd/FXh9C+HI78+d+4zGeBG/6bZ1JrOIBHvHvGNSMSgtbHY30dSS5/3klB3Ir2OoRCAhMOefH7AVykL892axbxcIIuhmLrEIcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAD4yZxAMk2XCROEQ5df66pypRG7oMSw9ZoC5Mvt+XC50sBOP76qk55jj2WoeKxxZPuZFraRPvJMrv4wTNuL7/Ss5P4zcihUu1pNZeWLCMv1DL6jmRIjSPUh5QuVsCCKO0jy4pPa6ANNfz6MfiErZYlNrPvCsvwkKn7t088ZaaUw22wiBSKzYX5Lz3CiBDBxbJHucSVVF0zFGIEhV+87m2VigNoBx3zbS6m9oJ3KNmmC1V6NXgSwuepuaxAr6xSY0IfsfejlGiS57kTCi7+whwbAs/q7KrWSd1ehHgi7Db6wRTQoTi6o5crVYWqtM5NoY9EHWrZDIqaLLvKb/RhvGydA==",
"signed_response": true,
"signing_certificate_expiry": 1992670415000,
"id": 4724,
"signing_certificate_serial": "1677051215880",
... TRUNCATED ...
|
| Errors |
See general list of error codes.
|
Get Sso Identity Providers Links
| Description |
Get all SSO identity providers for GUI links
|
| API Endpoint |
GET api/rest/config/sso/idps/links |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
Invalid Operation States |
| System States | Methods |
|
LOCAL
LOCAL_SHUTDOWN
|
ALL
|
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 3,
"pages_total": 1,
"page": 2,
"page_size": 3
},
"result": [
{
"sign_on_url": "/api/rest/config/sso/idps/4724/authenticate",
"id": 4724,
"name": "Okta1a0da6a2a-09af-4337-96b1-dec7c4068441"
},
{
"sign_on_url": "/api/rest/config/sso/idps/4725/authenticate",
"id": 4725,
"name": "Okta294f74b43-90a6-43b9-a327-4235f06f7521"
},
{
"sign_on_url": "/api/rest/config/sso/idps/4726/authenticate",
"id": 4726,
"name": "Okta3db53af99-6b13-4d27-8485-68c517a98e25"
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Support Appliance
Get all Support Appliances
| Description |
Return Racks' support appliances
|
| API Endpoint |
GET api/rest/components/support_appliances |
| URL Parameters |
none
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Get Sa by ID
| Description |
Return support appliance by index
|
| API Endpoint |
GET api/rest/components/support_appliances/{saIdx} |
| URL Parameters |
|
| Roles |
INFINIDAT,
TECHNICIAN,
POOL_ADMIN,
READ_ONLY,
ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"state_description": "",
"vendor": "",
"last_probe_timestamp": 1390254009000,
"firmware": "",
"probe_ttl": 60000,
"state": "ERROR",
"model": "",
"id": 1
},
"error": null
}
|
| Errors |
See general list of error codes.
|
System
General system information and operations
Accept Eula
| Description |
Accept the eula
|
| API Endpoint |
POST api/rest/system/eula/accepted |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
ADMIN,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"status": "ACCEPTED",
"accepted_by": "admin",
"user_accepted_email": "dev.mgmt@infinidat.com",
"eula_snooze_time": 2880,
"eula_version": "3.0",
"accepted_from": "2.3.4.5",
"accepted_on": 1774520223630,
"last_snoozed_on": null,
"eula_first_snoozed_on": null,
"eula_version_accepted": "3.0",
"eula_time_left": 43200
},
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
|
Emergency Shutdown
| Description |
|
| Approval required |
This is a dangerous operation
SHUTTING DOWN THE SYSTEM WILL CAUSE ALL SERVERS TO DISCONNECT
|
| API Endpoint |
POST api/rest/system/operational_state/emergency_shutdown |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| APPROVAL_REQUIRED |
HTTP 403 |
SHUTTING DOWN THE SYSTEM WILL CAUSE ALL SERVERS TO DISCONNECT |
|
Get a Ping Message
| Description |
Get confirmation that the system is available for management API access, without requiring authentication.
|
| API Endpoint |
GET api/rest/system/ping |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
"OK"
|
| Errors |
See general list of error codes.
|
Get Eula
| Description |
Get EULA
|
| API Endpoint |
GET api/rest/system/eula |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"status": "ACCEPTED",
"accepted_by": "admin",
"user_accepted_email": "dev.mgmt@infinidat.com",
"eula_snooze_time": 2880,
"eula_version": "3.0",
"accepted_from": "2.3.4.5",
"accepted_on": 1774520223630,
"last_snoozed_on": null,
"eula_first_snoozed_on": null,
"eula_version_accepted": "3.0",
"eula_time_left": 43200
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Ntp Status
| Description |
Return NTP status
|
| API Endpoint |
GET api/rest/system/ntp_status |
| URL Parameters |
| node_id |
Integer |
State a specific node for status check |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 3,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"ntp_peers": [
{
"delay_milliseconds": 0.042,
"remote": "9.151.141.2",
"offset_milliseconds": -0.018,
"reach": 376,
"poll_seconds": 64,
"tally_code": "candidate",
"when_seconds": 64,
"stratum": 4,
"jitter_milliseconds": 0.063,
"type": "unicast",
"refid": "172.20.255.1"
},
{
"delay_milliseconds": 0.028,
"remote": "9.151.141.3",
"offset_milliseconds": 0.196,
"reach": 377,
"poll_seconds": 64,
"tally_code": "candidate",
"when_seconds": 11,
"stratum": 4,
"jitter_milliseconds": 0.02,
"type": "unicast",
"refid": "172.20.255.1"
},
{
"delay_milliseconds": 0.38,
"remote": "172.20.255.1",
"offset_milliseconds": -0.114,
"reach": 377,
"poll_seconds": 64,
"tally_code": "sys.peer",
"when_seconds": 5,
"stratum": 3,
"jitter_milliseconds": 0.103,
"type": "unicast",
"refid": "109.226.40.40"
}
],
"last_probe_timestamp": 1774519826990,
"node_id": 1
},
{
"ntp_peers": [
{
"delay_milliseconds": 0.025,
... TRUNCATED ...
|
| Errors |
See general list of error codes.
|
Get Power Maintenance Mode
| Description |
Get the Power Maintenance Mode
|
| API Endpoint |
GET api/rest/system/power_maintenance_mode |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"in_maintenance": false,
"duration_seconds": 0
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Ssa Express Info
| Description |
Get SSA Express Info
|
| API Endpoint |
GET api/rest/system/ssa_express_info |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"ssa_express_status": "STATE_ACTIVE",
"total_ssa_express_capacity": 70000000000000,
"free_ssa_express_capacity": 70000000000000,
"used_ssa_express_capacity": 0
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get System Management Statistics
| Description |
Get statistics on the management component of InfiniBox.
|
| API Endpoint |
GET api/rest/system/stats/mgmt |
| URL Parameters |
none
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Get System Security
| Description |
Get system security parameters
|
| API Endpoint |
GET api/rest/system/security |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"fips_best_practice": {
"is_local_users_disabled": false,
"is_http_redirection": false,
"is_certificate_strength_sufficient": true,
"num_users_password_hash_not_secured": 0,
"is_ldap_connections_secured": false,
"certificate_strength": 2048,
"local_users_password_hash": "SHA256"
},
"system_security_state": "FIPS1",
"kmip_connectivity_state": "DISABLED",
"encryption_enabled": false
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get System Statistics
| Description |
Return statistics for the entire system
|
| API Endpoint |
GET api/rest/system/stats |
| URL Parameters |
none
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Get the System Health State
| Description |
Get the system health state.
|
| API Endpoint |
GET api/rest/system/health_state |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"rebuild_1_inprogress": false,
"enclosure_failure_safe_distribution": true,
"missing_drives": 0,
"inactive_nodes": 0,
"rebuild_2_inprogress": false,
"active_cache_ssd_devices": 0,
"active_encrypted_drives": 0,
"bbu_protected_nodes": 1,
"unknown_drives": 0,
"raid_groups_pending_rebuild_2": 0,
"raid_groups_pending_rebuild_1": 0,
"testing_drives": 0,
"ready_drives": 0,
"node_bbu_protection": {
"node-1": "PROTECTED"
},
"phasing_out_drives": 0,
"active_encrypted_cache_ssd_devices": 0,
"bbu_aggregate_charge_percent": 0,
"encryption_enabled": true,
"active_drives": 480,
"failed_drives": 0,
"bbu_charge_level": {}
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get the System Name
| Description |
Get the system name
|
| API Endpoint |
GET api/rest/system/name |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "ibox012-mock-no-bbu",
"error": null
}
|
| Errors |
| AUTHENTICATION_REQUIRED |
HTTP 401 |
The operation requires authentication |
|
Get the System Total Physical Capacity
| Description |
Get the system total physical capacity.
|
| API Endpoint |
GET api/rest/system/capacity/total_physical_capacity |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": 9007199255003136,
"error": null
}
|
| Errors |
See general list of error codes.
|
Get the System Total Virtual Capacity
| Description |
Get the system total virtual capacity.
|
| API Endpoint |
GET api/rest/system/capacity/total_virtual_capacity |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": 22517998137507840,
"error": null
}
|
| Errors |
See general list of error codes.
|
Operational State Activate
| Description |
Activate the system.
|
| API Endpoint |
POST api/rest/system/operational_state/activate |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "The required process started",
"error": null
}
|
| Errors |
| SYSTEM_ACTIVATION_REQUIRES_STANDBY_STATE |
HTTP 409 |
The system can be activated only while in STANDBY state |
|
Operational State Shutdown
| Description |
Shut down the system.
|
| API Endpoint |
POST api/rest/system/operational_state/shutdown |
| URL Parameters |
none
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Operational State Shutdown and Poweroff
| Description |
Shut down and power off the system.
|
| Approval required |
This is a dangerous operation
SHUTTING DOWN THE SYSTEM WILL CAUSE ALL SERVERS TO DISCONNECT
|
| API Endpoint |
POST api/rest/system/operational_state/shutdown_and_poweroff |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
Invalid Operation States |
| System States | Methods |
|
IN_EMERGENCY_SHUTDOWN
EMERGENCY_SHUTDOWN
NOT_READY
|
ALL
|
|
| JSON Data |
none
|
| Returns |
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
SHUTTING DOWN THE SYSTEM WILL CAUSE ALL SERVERS TO DISCONNECT |
|
Set Kms Disabled
| Description |
Disable KMS
|
| Approval required |
This is a dangerous operation
Disabling KMS places the systems encryption key in the system, removing the need for KMS during InfiniBox power up
|
| API Endpoint |
POST api/rest/system/kms_disable |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": false,
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Disabling KMS places the systems encryption key in the system, removing the need for KMS during InfiniBox power up |
| KMS_CANNOT_DISABLE_DUE_TO_ENCRYPTION_MODE |
HTTP 409 |
Cannot disable KMS while encryption is enabled |
|
Set Kms Enabled
| Description |
Enable KMS
|
| Approval required |
This is a dangerous operation
Enabling KMS places the systems encryption keys in the KMS database and removes them from the system. As a result, should the KMS be inaccessible or corrupt then InfiniBox will fail to power up
|
| API Endpoint |
POST api/rest/system/kms_enable |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
TECHNICIAN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": true,
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Enabling KMS places the systems encryption keys in the KMS database and removes them from the system. As a result, should the KMS be inaccessible or corrupt then InfiniBox will fail to power up |
| KMS_ENABLE_MANDATORY_FIELDS_MISSING |
HTTP 409 |
Cannot enable KMS when some of the following configuration mandatory fields are missing: [kms_servers, kms_ca_certificate, infinibox_kmip_private_key, infinibox_kmip_certificate] |
| KMS_FIPS_NOT_ENABLED |
HTTP 409 |
Cannot enable KMS if system is not in FIPS mode |
| KMS_CANNOT_ENABLE_DUE_TO_ENCRYPTION_MODE |
HTTP 409 |
Cannot enable KMS while encryption is enabled |
|
Set Power Maintenance Mode
| Description |
Enable / disable Power Maintenance Mode
|
| Approval required |
This is a dangerous operation
Power Maintenance Mode prevents InfiniBox from taking automated actions following various power issues. Exception: In case of a total power outage, the system will start Emergency Shutdown regardless
|
| API Endpoint |
PUT api/rest/system/power_maintenance_mode |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
TECHNICIAN
|
| System States |
ACTIVE
|
| JSON Data |
{
"in_maintenance": true,
"force": false,
"duration_seconds": 1800
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"in_maintenance": true,
"duration_seconds": 1800
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Power Maintenance Mode prevents InfiniBox from taking automated actions following various power issues. Exception: In case of a total power outage, the system will start Emergency Shutdown regardless |
| CANNOT_DISABLE_POWER_MAINTENANCE_MODE_WITHOUT_FORCE |
HTTP 403 |
Not all nodes are properly protected by the BBUs. Disabling the power maintenance mode at this time will lead to emergency shutdown or node quick exit. If you are sure you want to disable the PMM, use support.power_maintenance_mode.disable --force=yes |
|
Set the System Name
| Description |
Set the system name
|
| API Endpoint |
PUT api/rest/system/name |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
"\"\""
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "some-other-name",
"error": null
}
|
| Errors |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name '/' |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
|
Set Total Virtual Capacity
| Description |
Set system total virtual capacity
|
| Approval required |
This is a dangerous operation
Extending the system virtual capacity requires INFINIDAT support approval
|
| API Endpoint |
PUT api/rest/system/capacity/total_virtual_capacity |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
"22517998139867136"
|
| Returns |
{
"metadata": {
"ready": true
},
"result": 22517998139867136,
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Extending the system virtual capacity requires INFINIDAT support approval |
| SYSTEM_VIRTUAL_CAPACITY_LESS_THAN_USED |
HTTP 409 |
System virtual capacity cannot be less than current total provisioned soft capacity |
| MAX_SYSTEM_VIRTUAL_CAPACITY_LIMIT |
HTTP 409 |
System virtual capacity maximum limit will be exceeded |
| SYSTEM_VIRTUAL_CAPACITY_LESS_THAN_HARD |
HTTP 409 |
System virtual capacity cannot be less than hard capacity |
|
Snooze Eula
| Description |
Snooze the eula
|
| API Endpoint |
POST api/rest/system/eula/snoozed |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT,
POOL_ADMIN
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"status": "SNOOZED",
"accepted_by": null,
"user_accepted_email": null,
"eula_snooze_time": 1,
"eula_version": "3.0",
"accepted_from": null,
"accepted_on": null,
"last_snoozed_on": 1774520229124,
"eula_first_snoozed_on": 1774520229124,
"eula_version_accepted": null,
"eula_time_left": 43200
},
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| EULA_CANNOT_BE_SNOOZED |
HTTP 409 |
EULA can not be snoozed while in stage: SNOOZED |
|
Upgrade the Gui and Infinishell Software
| Description |
Install the GUI and InfiniShell upgrade packages.
|
| Approval required |
This is a dangerous operation
This operation is irreversible. In addition, the GUI and InfiniShell are not available during the update
|
| API Endpoint |
POST api/rest/system/upgrade |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": null,
"error": null
}
|
| Errors |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| APPROVAL_REQUIRED |
HTTP 403 |
This operation is irreversible. In addition, the GUI and InfiniShell are not available during the update |
| UPGRADE_FILE_INVALID |
HTTP 409 |
Upgrade file is invalid: file is empty |
|
Waive Eula
| Description |
Waive the eula
|
| API Endpoint |
POST api/rest/system/eula/waived |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"status": "WAIVED",
"accepted_by": null,
"user_accepted_email": null,
"eula_snooze_time": 2880,
"eula_version": "3.0",
"accepted_from": null,
"accepted_on": null,
"last_snoozed_on": null,
"eula_first_snoozed_on": null,
"eula_version_accepted": null,
"eula_time_left": 43200
},
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
|
System Internal
Get Info
| Description |
|
| API Endpoint |
GET api/internal/system/info |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"nodes_info": [
{
"status": {
"status_code": null,
"status_description": null
},
"uptime": 17,
"ip_addr": [],
"version": "VERSION_TEST",
"hostname": "test_host_name",
"state": "ACTIVE",
"node_id": 17,
"is_secondary": false,
"is_master": true,
"serial_number": 37,
"deployment_id": "DEPLOYMENT_ID_TEST",
"revision": "REVISION_TEST"
}
],
"fc_ports": []
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get IP
| Description |
|
| API Endpoint |
GET api/internal/system/ip |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "172.17.0.1",
"error": null
}
|
| Errors |
See general list of error codes.
|
Get New Info
| Description |
|
| API Endpoint |
GET api/internal/system/new_info |
| URL Parameters |
none
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Get Software Revision
| Description |
|
| API Endpoint |
GET api/internal/system/revision |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "REVISION_TEST",
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Software Version
| Description |
|
| API Endpoint |
GET api/internal/system/software_version |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "VERSION_TEST",
"error": null
}
|
| Errors |
See general list of error codes.
|
Get System Endpoint
| Description |
|
| API Endpoint |
GET api/internal/system/endpoint |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"ip": "172.17.0.1",
"port": 80
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get System Name
| Description |
|
| API Endpoint |
GET api/internal/system/name |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "ibox012-mock-no-bbu",
"error": null
}
|
| Errors |
See general list of error codes.
|
Get System Query
| Description |
|
| API Endpoint |
GET api/internal/system/query |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"system_state": null,
"node_info": [
{
"status": {
"status_code": null,
"status_description": null
},
"uptime": 17,
"ip_addr": [],
"version": "VERSION_TEST",
"hostname": "test_host_name",
"state": "ACTIVE",
"node_id": 17,
"is_secondary": false,
"is_master": true,
"serial_number": 37,
"deployment_id": "DEPLOYMENT_ID_TEST",
"revision": "REVISION_TEST"
}
],
"read_only_system": true,
"after_crash": null,
"obj_name": "com.xn.proto_gen.CoreDefs$SystemQueryResponse"
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get System Serial
| Description |
|
| API Endpoint |
GET api/internal/system/serial |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": 19,
"error": null
}
|
| Errors |
See general list of error codes.
|
Get System Stats
| Description |
|
| API Endpoint |
GET api/internal/system/stats |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ACTIVE,
STANDBY
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"defrag_stats": {
"total_cycles": null,
"total_trie_skips_mod_time": null,
"stripes_count": [],
"total_non_empty_scans": null,
"most_frag_trie": null,
"total_trie_skips_frag_level": null,
"stripes_bases": [],
"vu": 6,
"total_trie_skips_ram": null,
"total_trie_iterations": null,
"total_scans": null,
"counters": {
"trie_ram_usage_percent": 0.01,
"total_ram_usage_bytes": 50,
"trie_frag_level": null,
"ram_usage_snapped_bytes": null,
"non_cache_pmem_usage_percent": null,
"normalized_frag_level": null,
"level_1_ram_usage_non_snapped_bytes": null,
"level_1_vd_sections": null
}
},
"fm_counters": {},
"system_stats": [
{
"current_save_start": null,
"journaler_percentage_occupied": null,
"comm_stats": null,
"ssd_hash_stats": null,
"destage_stats": null,
"config_stats": null,
"pmem_stats": null,
"mem_params": null,
"last_save_duration": null,
"raw_vd_space_stats": null,
"hostname": "",
"total_free_pages": null,
"node_stats": null,
"cache_histograms": null,
"allocated_pages": null,
"ssd_cache_stats": null,
"alloc_stats": null,
"scrub_stats": null,
"node_id": 0,
"raid_stats": null,
"system_free_space": 9006199255003136,
"drive_stats": null,
"vd_space_stats": {
"allocated_size_bytes": 0,
"total_vd_size_bytes": 0,
"num_unused_partitions": 0,
"used_dynamic_spare_bytes": null,
"free_unusable_size_bytes": 0,
"free_allocatable_size_bytes": 0,
"total_spare_partitions": null,
"used_spare_bytes": null,
"drive_enc_stat": [],
"total_spare_bytes": null,
"pmem_to_alloc_ratio": null,
"non_cache_pmem_usage_percentage": null,
"max_unlimited_size_bytes": null,
"used_dynamic_spare_partitions": null,
"max_alloc_size_bytes": 9007199255003136,
"used_spare_partitions": null,
"physical_usage_percentage": null,
"dynamic_spare_drive_cost": null
},
"cache_stats": null,
"ssd_device_stats": null
}
]
},
"error": null
}
|
| Errors |
| NOT_SUPPORTED_IN_SYSTEM_STATE |
HTTP 409 |
Operation is not supported in system state FAILED |
|
Reset Kms Configuration
| Description |
|
| API Endpoint |
POST api/internal/system/reset_kms_configuration |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"kms_ca_certificate": null,
"kms_servers": null,
"infinibox_kmip_certificate": null,
"kms_username": null,
"ignore_kms_certificate": false
},
"error": null
}
|
| Errors |
| KMS_CANNOT_RESET_CONFIGURATION_WHEN_ENABLED |
HTTP 409 |
Cannot reset KMS configuration when KMS is enabled |
|
Reset Time
| Description |
|
| API Endpoint |
POST api/internal/system/eula/reset_time |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"status": "ACCEPTED",
"accepted_by": "infinidat",
"user_accepted_email": "dev.mgmt@infinidat.com",
"eula_snooze_time": 2880,
"eula_version": "3.0",
"accepted_from": "2.3.4.5",
"accepted_on": 1774520492711,
"last_snoozed_on": null,
"eula_first_snoozed_on": null,
"eula_version_accepted": "3.0",
"eula_time_left": 43200
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Reset to Default
| Description |
|
| API Endpoint |
POST api/internal/system/eula/reset_to_default |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"status": "SNOOZABLE",
"accepted_by": null,
"user_accepted_email": null,
"eula_snooze_time": 2880,
"eula_version": "3.0",
"accepted_from": null,
"accepted_on": null,
"last_snoozed_on": null,
"eula_first_snoozed_on": null,
"eula_version_accepted": null,
"eula_time_left": 43200
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Set Encryption Mode
| Description |
|
| API Endpoint |
POST api/internal/system/set_encryption_mode |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
"\"NONE\""
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "NONE",
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('"xyz"') could not be translated to an expected type |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| INVALID_ENCRYPTION_MODE_TRANSITION |
HTTP 409 |
Transitioning between encryption modes requires disabling encryption first |
| TPM_MISSING |
HTTP 409 |
Trusted Platform Module (TPM) is missing on node(s) [1], all TPMs must be present to enable encryption |
| ENCRYPTION_CHANGE_INVALID |
HTTP 409 |
Enabling/disabling encryption is not allowed while the system security state is IN_TRANSITION |
|
System Ready Validation
| Description |
|
| API Endpoint |
GET api/internal/system/ready |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": "OK",
"error": null
}
|
| Errors |
See general list of error codes.
|
Tenant
Create a Tenant
| Description |
Create a tenant
|
| API Endpoint |
POST api/rest/tenants |
| URL Parameters |
none
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"visible_to_sysadmin": false,
"name": "auto-tenant-name-b616598d-"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"entity_counts": {
"db_users": 0,
"hosts": 0,
"plugins": 0,
"pools": 0,
"clusters": 0,
"network_spaces": 0
},
"capacity": {
"allocated_internal_physical_space": 0,
"allocated_physical_space": 0,
"allocated_virtual_space": 0,
"total_physical_capacity": 0,
"total_virtual_capacity": 0
},
"name": "auto-tenant-name-b616598d-",
"created_at": 1774519560921,
"updated_at": 1774519560921,
"nfs_allow_unmapped_users": "TRUST",
"id": 668,
"nfs_group_policy": "USE_CLIENT",
"local_domain_sid": "S-1-5-21-1556028608-4068708648-2036357603",
"anonymous_gid": 65534,
"anonymous_uid": 65534,
"visible_to_sysadmin": false,
"short_tenant_key": 2
},
"error": null
}
|
| Errors |
| MISSING_FIELD |
HTTP 400 |
A field ('name') is missing in an object passed |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('short_tenant_key') |
| WRONG_PARAMETER |
HTTP 400 |
The value (null) of parameter 'nfs_group_policy' does not meet a condition: 'may not be null' |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for ADMIN |
| TENANT_COUNT_LIMIT |
HTTP 409 |
Tenant count limit reached (1) |
| TENANT_NAME_CONFLICT |
HTTP 409 |
A tenant with this name 'default' already exists |
|
Delete a Tenant
| Description |
Delete a tenant
|
| API Endpoint |
DELETE api/rest/tenants/{id} |
| URL Parameters |
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"entity_counts": {
"db_users": 0,
"hosts": 0,
"plugins": 0,
"pools": 0,
"clusters": 0,
"network_spaces": 0
},
"capacity": {
"allocated_internal_physical_space": 0,
"allocated_physical_space": 0,
"allocated_virtual_space": 0,
"total_physical_capacity": 0,
"total_virtual_capacity": 0
},
"name": "tenant-A",
"created_at": 1774519863532,
"updated_at": 1774519863532,
"nfs_allow_unmapped_users": "TRUST",
"id": 6038,
"nfs_group_policy": "USE_CLIENT",
"local_domain_sid": "S-1-5-21-3206103621-2706911766-3865859559",
"anonymous_gid": 65534,
"anonymous_uid": 65534,
"visible_to_sysadmin": true,
"short_tenant_key": 2
},
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for ADMIN |
| TENANT_NOT_FOUND |
HTTP 404 |
Tenant not found |
| TENANT_IN_USE_CANNOT_BE_DELETED |
HTTP 409 |
Tenant has entities |
| DEFAULT_TENANT_CANNOT_BE_DELETED |
HTTP 409 |
Cannot delete default tenant |
| TENANT_JOINED_TO_ACTIVE_DIRECTORY_DOMAIN |
HTTP 409 |
Cannot delete a tenant while joined to an active directory domain |
|
Get a Tenant
| Description |
Return a tenant by ID
|
| API Endpoint |
GET api/rest/tenants/{id} |
| URL Parameters |
|
| Roles |
INFINIDAT,
TECHNICIAN,
ADMIN,
POOL_ADMIN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"entity_counts": {
"db_users": 0,
"hosts": 0,
"plugins": 0,
"pools": 0,
"clusters": 0,
"network_spaces": 0
},
"capacity": {
"allocated_internal_physical_space": 0,
"allocated_physical_space": 0,
"allocated_virtual_space": 0,
"total_physical_capacity": 0,
"total_virtual_capacity": 0
},
"name": "default",
"created_at": 0,
"updated_at": 0,
"nfs_allow_unmapped_users": "TRUST",
"id": 1,
"nfs_group_policy": "USE_CLIENT",
"local_domain_sid": "S-1-5-21-2730587279-3917396790-3688534603",
"anonymous_gid": 65534,
"anonymous_uid": 65534,
"visible_to_sysadmin": true,
"short_tenant_key": 1
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Get all Tenants
| Description |
Return all tenants Filterable and Sortable fields:anonymous_gid,anonymous_uid,created_at,id,local_domain_sid,name,nfs_allow_unmapped_users,nfs_group_policy,short_tenant_key,updated_at,visible_to_sysadmin. |
| API Endpoint |
GET api/rest/tenants |
| URL Parameters |
none
|
| Roles |
INFINIDAT,
TECHNICIAN,
ADMIN,
POOL_ADMIN,
READ_ONLY
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"entity_counts": {
"db_users": 0,
"hosts": 0,
"plugins": 0,
"pools": 0,
"clusters": 0,
"network_spaces": 0
},
"capacity": {
"allocated_internal_physical_space": 0,
"allocated_physical_space": 0,
"allocated_virtual_space": 0,
"total_physical_capacity": 0,
"total_virtual_capacity": 0
},
"name": "default",
"created_at": 0,
"updated_at": 0,
"nfs_allow_unmapped_users": "TRUST",
"id": 1,
"nfs_group_policy": "USE_CLIENT",
"local_domain_sid": "S-1-5-21-2730587279-3917396790-3688534603",
"anonymous_gid": 65534,
"anonymous_uid": 65534,
"visible_to_sysadmin": true,
"short_tenant_key": 1
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Update a Tenant Attribute
| Description |
Update an attribute of a tenant
|
| API Endpoint |
PUT api/rest/tenants/{id} |
| URL Parameters |
|
| Roles |
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"name": "tenant-A"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"entity_counts": {
"db_users": 0,
"hosts": 0,
"plugins": 0,
"pools": 0,
"clusters": 0,
"network_spaces": 0
},
"capacity": {
"allocated_internal_physical_space": 0,
"allocated_physical_space": 0,
"allocated_virtual_space": 0,
"total_physical_capacity": 0,
"total_virtual_capacity": 0
},
"name": "default",
"created_at": 0,
"updated_at": 1774519844892,
"nfs_allow_unmapped_users": "SQUASH",
"id": 1,
"nfs_group_policy": "USE_DIRECTORY_SERVICE",
"local_domain_sid": "S-1-5-21-2730587279-3917396790-3688534603",
"anonymous_gid": 65534,
"anonymous_uid": 65534,
"visible_to_sysadmin": true,
"short_tenant_key": 1
},
"error": null
}
|
| Errors |
| WRONG_PARAMETER |
HTTP 400 |
The value (4294967296) of parameter 'anonymous_gid' does not meet a condition: 'must be less than or equal to 4294967295' |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('short_tenant_key') |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for ADMIN |
| TENANT_NAME_CONFLICT |
HTTP 409 |
A tenant with this name 'tenant-A' already exists |
| DEFAULT_TENANT_NAME_CANNOT_BE_UPDATED |
HTTP 409 |
Cannot update default tenant name |
|
TreeQ
Create a TreeQ
| Description |
Create a TreeQ
|
| API Endpoint |
POST api/rest/filesystems/{fsId}/treeqs |
| URL Parameters |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"soft_inodes": 2,
"path": "/treeqPath1",
"hard_capacity": 1000000000,
"hard_inodes": 50,
"name": "treeqName1"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "treeqName1",
"soft_capacity": null,
"hard_inodes": 50,
"capacity_state": "BELOW_SOFT",
"hard_capacity": 1000000000,
"used_inodes": 1,
"soft_inodes": 2,
"path": "/treeqPath1",
"filesystem_id": 1001,
"used_capacity": 0,
"id": 21955048183431200,
"inodes_state": "BELOW_SOFT"
},
"error": null
}
|
| Errors |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'null' |
| MISSING_FIELD |
HTTP 400 |
A field ('name') is missing in an object passed |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('capacity_state') |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-6840563b-9' is forbidden to modify filesystem 'auto-filesystem--1555751f-' |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
| TREEQ_PATH_TOO_LONG |
HTTP 409 |
TreeQ path is too long, maximum length is 255 |
| TREEQ_INVALID_PATH |
HTTP 409 |
Invalid TreeQ path |
| TREEQ_INVALID_LIMITS_CAPACITY_SOFT_TOO_LOW |
HTTP 409 |
TreeQ soft capacity limit is too low, minimum is 500MB |
| TREEQ_NAME_ALREADY_EXISTS |
HTTP 409 |
TreeQ name already exists in filesystem |
| TREEQ_INVALID_LIMITS_CAPACITY_SOFT_TOO_HIGH |
HTTP 409 |
TreeQ soft capacity cannot be greater than 1000000000000000000 |
| TREEQ_INVALID_LIMITS_CAPACITY_HARD_TOO_LOW |
HTTP 409 |
TreeQ hard capacity limit is too low, minimum is 1GB |
| INVALID_OPTION_FOR_TREEQ_CREATE |
HTTP 409 |
'Mode' option is not available for TreeQs on WINDOWS security-style filesystems |
| TREEQ_INVALID_LIMITS_CAPACITY_HARD_TOO_HIGH |
HTTP 409 |
TreeQ hard capacity cannot be greater than 1000000000000000000 |
| TREEQ_NOT_SUPPORTED |
HTTP 409 |
TreeQ operations are not supported while the filesystem is a replication target |
| TREEQ_INVALID_LIMITS_INODE_HARD_TOO_HIGH |
HTTP 409 |
TreeQ hard iNodes cannot be greater than 1000000000000000000 |
| TREEQ_INVALID_LIMITS_INODE_HARD_TOO_LOW |
HTTP 409 |
TreeQ hard iNodes limit is too low, minimum is 3 |
| TREEQ_INVALID_LIMITS_CAPACITY_INTERVAL_TOO_SMALL |
HTTP 409 |
TreeQ hard capacity has to be at least 100MB above soft capacity |
| TREEQ_INVALID_LIMITS_INODE_SOFT_TOO_LOW |
HTTP 409 |
TreeQ soft iNodes limit is too low, minimum is 2 |
| FILESYSTEM_IS_SUSPENDED |
HTTP 409 |
The operation cannot be performed as the filesystem is suspended ('auto-filesystem--3853f7de-') |
| TREEQ_ILLEGAL_VALUE |
HTTP 409 |
The value '"/"' of 'path' is illegal. TreeQ path is too short, minimum length is 2 |
| TREEQ_INVALID_LIMITS_INODE_INTERVAL_TOO_SMALL |
HTTP 409 |
TreeQ hard iNodes has to be at least 1 above soft iNodes |
| TREEQ_INVALID_LIMITS_INODE_SOFT_TOO_HIGH |
HTTP 409 |
TreeQ soft iNodes cannot be greater than 1000000000000000000 |
| TREEQ_INVALID_LIMITS_CAPACITY_HARD_BELOW_SOFT |
HTTP 409 |
TreeQ hard capacity has to be at least 100MB above soft capacity |
| TREEQ_PATH_NESTING |
HTTP 409 |
TreeQ is only supported on the filesystem root folder |
| TREEQ_INVALID_LIMITS_INODE_HARD_BELOW_SOFT |
HTTP 409 |
TreeQ hard iNodes has to be at least 1 above soft iNodes |
| TREEQ_PATH_MISMATCH |
HTTP 409 |
TreeQ path '/MySnapshotDir' cannot be identical to the name of a filesystem snapshot directory |
| TREEQ_FILESYSTEM_READ_ONLY |
HTTP 409 |
Filesystem is write protected |
|
Get a TreeQ
| Description |
Return a TreeQ by ID
|
| API Endpoint |
GET api/rest/filesystems/{fsId}/treeqs/{id} |
| URL Parameters |
| fsId |
long |
Filesystem ID |
| id |
long |
TreeQ ID |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "treeqName1",
"soft_capacity": null,
"hard_inodes": 50,
"capacity_state": "BELOW_SOFT",
"hard_capacity": 1000000000,
"used_inodes": 1,
"soft_inodes": 2,
"path": "/treeqPath1",
"filesystem_id": 1001,
"used_capacity": 0,
"id": 21955048183431200,
"inodes_state": "BELOW_SOFT"
},
"error": null
}
|
| Errors |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
| TREEQ_NOT_SUPPORTED |
HTTP 409 |
TreeQ operations are not supported while the filesystem is a replication target |
| FILESYSTEM_IS_SUSPENDED |
HTTP 409 |
The operation cannot be performed as the filesystem is suspended ('auto-filesystem--66d1e8be-') |
|
Get all Filesystem TreeQ
| Description |
Return all of the TreeQ of a filesystem Filterable and Sortable fields:capacity_state,filesystem_id,hard_capacity,hard_inodes,id,inodes_state,name,path,soft_capacity,soft_inodes,used_capacity,used_inodes. |
| API Endpoint |
GET api/rest/filesystems/{fsId}/treeqs |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 2,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"name": "treeqName1",
"soft_capacity": null,
"hard_inodes": 50,
"capacity_state": "BELOW_SOFT",
"hard_capacity": 1000000000,
"used_inodes": 3,
"soft_inodes": 2,
"path": "/treeqPath1",
"filesystem_id": 1001,
"used_capacity": 1000,
"id": 21955048183431200,
"inodes_state": "SOFT_EXCEEDED"
},
{
"name": "treeqName2",
"soft_capacity": null,
"hard_inodes": 321,
"capacity_state": "BELOW_SOFT",
"hard_capacity": 321,
"used_inodes": 321,
"soft_inodes": 2,
"path": "/treeqPath2",
"filesystem_id": 1001,
"used_capacity": 300,
"id": 21955048183431201,
"inodes_state": "NONE"
}
],
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('aaaaa') |
| WRONG_PARAMETER |
HTTP 400 |
The value (null) of parameter 'BETWEEN' does not meet a condition: 'not null' |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('123') could not be translated to an expected type |
| NOT_FILTERABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be filtered: ('mode') |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
| FILESYSTEM_IS_SUSPENDED |
HTTP 409 |
The operation cannot be performed as the filesystem is suspended ('auto-filesystem--66d1e8be-') |
| TREEQ_NOT_SUPPORTED |
HTTP 409 |
TreeQ operations are not supported while the filesystem is a replication target |
|
Remove a TreeQ
| Description |
Remove a TreeQ by ID
|
| API Endpoint |
DELETE api/rest/filesystems/{fsId}/treeqs/{id} |
| URL Parameters |
| fsId |
long |
Filesystem ID |
| id |
long |
TreeQ ID |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "treeqName1",
"soft_capacity": null,
"hard_inodes": 50,
"capacity_state": "BELOW_SOFT",
"hard_capacity": 1000000000,
"used_inodes": 1,
"soft_inodes": 2,
"path": "/treeqPath1",
"filesystem_id": 1001,
"used_capacity": 0,
"id": 21955048183431200,
"inodes_state": "BELOW_SOFT"
},
"error": null
}
|
| Errors |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-323dc9cc-9' is forbidden to modify filesystem 'auto-filesystem--c2a7b9d9-' |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
| FILESYSTEM_IS_SUSPENDED |
HTTP 409 |
The operation cannot be performed as the filesystem is suspended ('auto-filesystem--b8777c61-') |
| TREEQ_FILESYSTEM_READ_ONLY |
HTTP 409 |
Filesystem is write protected |
| TREEQ_FILESYSTEM_HAS_EXPORTS |
HTTP 409 |
The TreeQ 'My Treeq' cannot be deleted because it has active exports on filesystem 'My Filesystem' |
| TREEQ_NOT_SUPPORTED |
HTTP 409 |
TreeQ operations are not supported while the filesystem is a replication target |
| TREEQ_FILESYSTEM_HAS_SHARES |
HTTP 409 |
The TreeQ 'My Treeq' cannot be deleted because it has active shares on filesystem 'My Filesystem' |
|
Update a TreeQ Attribute
| Description |
Update an attribute of a TreeQ
|
| API Endpoint |
PUT api/rest/filesystems/{fsId}/treeqs/{id} |
| URL Parameters |
| fsId |
long |
Filesystem ID |
| id |
long |
TreeQ ID |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"name": "treeqName1"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"name": "treeqName1",
"soft_capacity": null,
"hard_inodes": 50,
"capacity_state": "BELOW_SOFT",
"hard_capacity": 1000000000,
"used_inodes": 1,
"soft_inodes": 2,
"path": "/treeqPath1",
"filesystem_id": 1001,
"used_capacity": 0,
"id": 21955048183431200,
"inodes_state": "BELOW_SOFT"
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('path') |
| MISSING_CONTENT |
HTTP 400 |
The request is empty |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'null' |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-f8e567bb-c' is forbidden to modify filesystem 'auto-filesystem--4332e5ca-' |
| FILESYSTEM_NOT_FOUND |
HTTP 404 |
Filesystem not found |
| TREEQ_ILLEGAL_VALUE |
HTTP 409 |
The value '"/y"' of 'name' is illegal. Cannot update name together with limits |
| FILESYSTEM_IS_SUSPENDED |
HTTP 409 |
The operation cannot be performed as the filesystem is suspended ('auto-filesystem--fe461086-') |
| TREEQ_NOT_SUPPORTED |
HTTP 409 |
TreeQ operations are not supported while the filesystem is a replication target |
| TREEQ_WORM_FILESYSTEM |
HTTP 409 |
Cannot rename a WORM Filesystem TreeQ |
| TREEQ_FILESYSTEM_READ_ONLY |
HTTP 409 |
Filesystem is write protected |
| TREEQ_INVALID_LIMITS_CAPACITY_INTERVAL_TOO_SMALL |
HTTP 409 |
TreeQ hard capacity has to be at least 100MB above soft capacity |
|
Users Repository
Create a User Repository
| Description |
Create a repository of users whose members can log into InfiniBox.
|
| API Endpoint |
POST api/rest/config/ldap |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"name": "auto-filter_sort_-60360396",
"schema_definition": {
"group_memberof_attribute": "memberof",
"group_name_attribute": "cn",
"groups_basedn": "cn=users,dc=mgmt,dc=local",
"users_basedn": "cn=users,dc=mgmt,dc=local",
"username_attribute": "sAMAccountName",
"group_class": "group",
"user_class": "user"
},
"bind_username": "administrator",
"servers": null,
"domain_name": "mgmt.local",
"bind_password": "XXXXXXX"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"ldap_port": 636,
"name": "auto-filter_sort_-60360396",
"schema_definition": {
"group_memberof_attribute": "memberof",
"group_name_attribute": "cn",
"group_class": "group",
"user_class": "user",
"username_attribute": "sAMAccountName",
"groups_basedn": "cn=users,dc=mgmt,dc=local",
"users_basedn": "cn=users,dc=mgmt,dc=local"
},
"use_ldaps": true,
"domain_name": "mgmt.local",
"bind_username": "administrator",
"search_order": 0,
"servers": null,
"repository_type": "ActiveDirectory",
"id": 2405
},
"error": null
}
|
| Errors |
| WRONG_PARAMETER |
HTTP 400 |
The value (123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890) of parameter 'domain_name' does not meet a condition: 'size must be between 0 and 255' |
| UNSUPPORTED_VALUE |
HTTP 400 |
The request contains an unsupported value () for field ('servers') |
| INVALID_CHARACTERS_IN_DOMAIN_NAME |
HTTP 400 |
Invalid domain name |
| DOMAIN_NAME_CONFLICT |
HTTP 409 |
Domain name 'mgmt.local' already configured |
| LDAP_NAME_CONFLICT |
HTTP 409 |
LDAP name 'dev' already configured |
| LDAP_REPOSITORIES_LIMIT |
HTTP 409 |
LDAP repositories count has reached the limit of 2 |
| LDAP_SERVERS_LIMIT |
HTTP 409 |
Maximum servers in LDAP repository reached. Please set up to 3 different servers |
|
Delete a User Repository
| Description |
Disconnect a repository from InfiniBox.
|
| Approval required |
This is a dangerous operation
LDAP server ldap has configured groups. Removing the server will remove the groups as well
|
| API Endpoint |
DELETE api/rest/config/ldap/{id} |
| URL Parameters |
| id |
long |
ID of the repository |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"ldap_port": 636,
"name": "repo2",
"schema_definition": {
"group_memberof_attribute": "memberof",
"group_name_attribute": "cn",
"group_class": "group",
"user_class": "user",
"username_attribute": "sAMAccountName",
"groups_basedn": "",
"users_basedn": ""
},
"use_ldaps": true,
"domain_name": null,
"bind_username": "administrator",
"search_order": 1,
"servers": [
"1.0.0.3",
"1.0.0.9"
],
"repository_type": "LDAP",
"id": 6573
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
LDAP server repo1 has configured groups. Removing the server will remove the groups as well |
|
Get a Repository
| Description |
Get a repository that is connected to InfiniBox.
|
| API Endpoint |
GET api/rest/config/ldap/{id} |
| URL Parameters |
| id |
long |
ID of the repository |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"ldap_port": 636,
"name": "repo1",
"schema_definition": {
"group_memberof_attribute": "memberof",
"group_name_attribute": "cn",
"group_class": "group",
"user_class": "user",
"username_attribute": "sAMAccountName",
"groups_basedn": "cn=users,dc=mgmt,dc=local",
"users_basedn": "cn=users,dc=mgmt,dc=local"
},
"use_ldaps": true,
"domain_name": "mgmt.local",
"bind_username": "administrator",
"search_order": 0,
"servers": [],
"repository_type": "ActiveDirectory",
"id": 6650
},
"error": null
}
|
| Errors |
| USERS_REPOSITORY_NOT_FOUND |
HTTP 404 |
Invalid user repository ID |
|
Get Repositories
| Description |
Get all of the repositories that are connected to InfiniBox.
|
| API Endpoint |
GET api/rest/config/ldap |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 2,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"ldap_port": 636,
"name": "auto-ldap-1-e4f6c979-7911-",
"schema_definition": {
"group_memberof_attribute": "memberof",
"group_name_attribute": "cn",
"group_class": "group",
"user_class": "user",
"username_attribute": "sAMAccountName",
"groups_basedn": "cn=users,dc=mgmt,dc=local",
"users_basedn": "cn=users,dc=mgmt,dc=local"
},
"use_ldaps": true,
"domain_name": "mgmt1.local",
"bind_username": "administrator",
"search_order": 1,
"servers": [],
"repository_type": "ActiveDirectory",
"id": 2406
},
{
"ldap_port": 636,
"name": "auto-ldap-2-37284599-b144-",
"schema_definition": {
"group_memberof_attribute": "memberof",
"group_name_attribute": "cn",
"group_class": "group",
"user_class": "user",
"username_attribute": "sAMAccountName",
"groups_basedn": "cn=users,dc=mgmt,dc=local",
"users_basedn": "cn=users,dc=mgmt,dc=local"
},
"use_ldaps": true,
"domain_name": "mgmt2.local",
"bind_username": "administrator",
"search_order": 2,
"servers": [],
"repository_type": "ActiveDirectory",
"id": 2407
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Reload
| Description |
Force refresh of authentication services
|
| API Endpoint |
POST api/rest/config/ldap/reload |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": null,
"error": null
}
|
| Errors |
See general list of error codes.
|
Reorder
| Description |
Reorder the search priority of ldap repositories
|
| API Endpoint |
POST api/rest/config/ldap/set_order |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
[
6900,
6898,
-1
]
|
| Returns |
{
"metadata": {
"ready": true
},
"result": true,
"error": null
}
|
| Errors |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| MISSING_CONTENT |
HTTP 400 |
The request is empty |
| LDAP_LIST_NOT_UNIQUE |
HTTP 400 |
LDAP list must contain unique values |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('[0]') could not be translated to an expected type |
| USERS_REPOSITORY_NOT_FOUND |
HTTP 404 |
Invalid user repository ID |
|
Resolve Domain
| Description |
Resolve the addresses of the domain controllers for a specified domain
|
| API Endpoint |
POST api/rest/config/ldap/resolve_domain |
| URL Parameters |
none
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Test Group by Ldap ID
| Description |
Test specific group in AD by entity-id, and return its DN
|
| API Endpoint |
POST api/rest/config/ldap/{id}/test_group |
| URL Parameters |
| id |
long |
ID of the repository |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Test Ldap by ID
| Description |
Test specific users repository by entity-id
|
| API Endpoint |
POST api/rest/config/ldap/{id}/test |
| URL Parameters |
| id |
long |
ID of the repository |
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Test the Repository Communication to Infini Box
| Description |
Verify that the repository is connected to InfiniBox.
|
| API Endpoint |
POST api/rest/config/ldap/test |
| URL Parameters |
none
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Update the Repository Attributes
| Description |
Update the repository definition.
|
| API Endpoint |
PUT api/rest/config/ldap/{id} |
| URL Parameters |
| id |
long |
ID of the repository |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"servers": [
"1.0.0.9"
]
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"ldap_port": 636,
"name": "repo2",
"schema_definition": {
"group_memberof_attribute": "memberof",
"group_name_attribute": "cn",
"group_class": "group",
"user_class": "user",
"username_attribute": "sAMAccountName",
"groups_basedn": "",
"users_basedn": ""
},
"use_ldaps": true,
"domain_name": null,
"bind_username": "administrator",
"search_order": 1,
"servers": [
"1.0.0.9"
],
"repository_type": "LDAP",
"id": 6573
},
"error": null
}
|
| Errors |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
| UNSUPPORTED_VALUE |
HTTP 400 |
The request contains an unsupported value (1.0.0.3, 1.0.0.3) for field ('servers') |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('servers') could not be translated to an expected type |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('repository_type') |
| LDAP_SERVER_CONFLICT |
HTTP 409 |
LDAP server(s) 'Server' already configured |
| LDAP_NAME_CONFLICT |
HTTP 409 |
LDAP name 'otherName' already configured |
|
Users
InfiniBox supports both in-session and basic authentication.
- To start a new session, log into InfiniBox using: POST /api/rest/users/login {"username": "jabba", "password": "the hut", "clientid": "optional client identifier"}. Upon a successful login the client receives a cookie {"Set-Cookie", "JSESSIONID=6977862313998501146;Version=1;Path=/״}
- Each subsequent request is authenticated with a cookie.
- To end the session, log out of InfiniBox using: POST /api/rest/users/logout
A User object looks like this:
{"id": 17, "username": "sherlock", "email": "sherlock@example.com", "role": "ADMIN"}
Each user belongs to one of the following roles: Admin ,PoolAdmin or ReadOnly. The ReadOnly role provides read-only access to
the API. The Admin and PoolAdmin roles provide read-write access.
Note: user names are case-sensitive.
Create a User
| Description |
Add a user to the InfiniBox.
|
| API Endpoint |
POST api/rest/users |
| URL Parameters |
none
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"password": "Password#1234567890_1",
"role": "POOL_ADMIN",
"name": "auto-POOL_ADMIN-7bdb1375-9",
"email": "POOL_ADMIN@infinidat.com"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"enforce_user_password_policy": true,
"password_digest_version": 1,
"name": "auto-POOL_ADMIN-7bdb1375-9",
"roles": [
"POOL_ADMIN"
],
"enabled": true,
"id": 194,
"role": "POOL_ADMIN",
"is_digest_sufficient": true,
"type": "Local",
"email": "POOL_ADMIN@infinidat.com"
},
"error": null
}
|
| Errors |
| MULTIPLE_ROLES_NOT_SUPPORTED |
HTTP 400 |
A user cannot have multiple roles |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| ROLE_NOT_ALLOWED |
HTTP 400 |
Cannot assign LDAP users with role INFINIDAT |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'Lir,an' |
| EMAIL_INVALID_RECIPIENT |
HTTP 400 |
Invalid email address: 'null' |
| USER_PASSWORD_DOES_NOT_COMPLY_WITH_POLICY |
HTTP 400 |
User operation failed due to the password not complying with the policy |
| MISSING_ROLE |
HTTP 400 |
Cannot have a user without a role |
| MISSING_FIELD |
HTTP 400 |
A field ('password') is missing in an object passed |
| WRONG_PARAMETER |
HTTP 400 |
The value (-1) of parameter 'password_digest_version' does not meet a condition: 'must be greater than 0 and lower or equal to 1' |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('password_digest_version') |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| USER_ROLE_CREATE_FORBIDDEN |
HTTP 403 |
Insufficient privileges to create user with role: [TECHNICIAN] |
| USER_ALREADY_EXISTS |
HTTP 409 |
User 'foobar1' already exists |
| SSO_GROUP_COUNT_LIMIT |
HTTP 409 |
Group cannot be created: the number of SSO groups has reached system limit |
| DUPLICATE_DISTINGUISHED_NAME |
HTTP 409 |
The Distinguished Name 'cn=all' provided is already mapped to group 'group1' on repository 'mgmt'. Please edit the permissions of this group |
| SSO_USER_GROUP_NAME_CONFLICT |
HTTP 409 |
An SSO user group named '123' already exists for SSO identity provider 'Oktaa1113521-d359-41da-9245-ad5f7880b518' |
| USER_COUNT_LIMIT |
HTTP 409 |
User cannot be created: the number of users has reached system limit |
| SSO_USER_GROUP_ROLE_NOT_ALLOWED |
HTTP 409 |
Cannot assign role 'N/A' to SSO users |
| LDAP_GROUP_COUNT_LIMIT |
HTTP 409 |
Group cannot be created: the number of Ldap groups has reached system limit |
|
Delete a User
| Description |
Delete a user
|
| Approval required |
This is a dangerous operation
Deleting SSO user group 'ssoUgName' will invalidate all users currently logged in through SSO identity provider 'ssoIdpName'
|
| API Endpoint |
DELETE api/rest/users/{id} |
| URL Parameters |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"enforce_user_password_policy": true,
"password_digest_version": 1,
"name": "auto-POOL_ADMIN-2bb47277-0",
"roles": [
"POOL_ADMIN"
],
"enabled": true,
"id": 4083,
"role": "POOL_ADMIN",
"is_digest_sufficient": true,
"type": "Local",
"email": "POOL_ADMIN@infinidat.com"
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting SSO user group 'ibox-readers' will invalidate all users currently logged in through SSO identity provider 'Oktac75f6284-ace1-4d58-94d4-9138b9a589b8' |
| USER_ROLE_DELETE_FORBIDDEN |
HTTP 403 |
Insufficient privileges to delete user with role: [INFINIDAT] |
| USER_NOT_FOUND |
HTTP 404 |
User not found |
| USER_CANNOT_BE_SELF_DELETED |
HTTP 409 |
Users cannot delete themselves |
|
Disable User
| Description |
Disable user account
|
| API Endpoint |
POST api/rest/users/{id}/disable |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"enforce_user_password_policy": true,
"password_digest_version": 1,
"name": "auto-ADMIN-e66ba95a-2c7c-4",
"roles": [
"ADMIN"
],
"enabled": false,
"id": 19986,
"role": "ADMIN",
"is_digest_sufficient": true,
"type": "Local",
"email": "ADMIN@infinidat.com"
},
"error": null
}
|
| Errors |
| ACTION_NOT_ALLOWED_FOR_ROLE |
HTTP 403 |
User with role [READ_ONLY] is not allowed to perform this action |
| USER_ROLE_ACCESS_FORBIDDEN |
HTTP 403 |
Your user ('technician') does not have access to user '20062' |
| USER_CANNOT_BE_SELF_MODIFIED |
HTTP 409 |
Users cannot disable themselves |
|
Do Reset Password
| Description |
|
| API Endpoint |
GET api/rest/users/{name}/reset_password/{token} |
| URL Parameters |
| name |
String |
Name of the user |
| token |
String |
|
|
| Roles |
ALL
|
| System States |
ALL
|
Invalid Operation States |
| System States | Methods |
|
LOCAL
LOCAL_SHUTDOWN
|
ALL
|
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"message": "The password has been updated"
},
"error": null
}
|
| Errors |
| PASSWORD_RESET_REQUEST_EXPIRED |
HTTP 403 |
Password reset request has expired |
|
Enable User
| Description |
Enable user account
|
| API Endpoint |
POST api/rest/users/{id}/enable |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"enforce_user_password_policy": true,
"password_digest_version": 1,
"name": "auto-ADMIN-a367a894-f179-4",
"roles": [
"ADMIN"
],
"enabled": true,
"id": 20062,
"role": "ADMIN",
"is_digest_sufficient": true,
"type": "Local",
"email": "ADMIN@infinidat.com"
},
"error": null
}
|
| Errors |
| USER_ROLE_ACCESS_FORBIDDEN |
HTTP 403 |
Your user ('technician') does not have access to user '-1' |
| USER_CANNOT_BE_SELF_MODIFIED |
HTTP 409 |
Users cannot disable themselves |
|
Get a User
| Description |
Get a specific user.
|
| API Endpoint |
GET api/rest/users/{id} |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"enforce_user_password_policy": true,
"password_digest_version": 1,
"name": "auto-POOL_ADMIN-7bdb1375-9",
"roles": [
"POOL_ADMIN"
],
"enabled": true,
"id": 194,
"role": "POOL_ADMIN",
"is_digest_sufficient": true,
"type": "Local",
"email": "POOL_ADMIN@infinidat.com"
},
"error": null
}
|
| Errors |
| USER_ROLE_ACCESS_FORBIDDEN |
HTTP 403 |
Your user ('auto-POOL_ADMIN-8c5b7d08-b') does not have access to user '20143' |
| USER_NOT_FOUND |
HTTP 404 |
User not found |
|
Get a User by Name
| Description |
Get a specific user.
|
| API Endpoint |
GET api/rest/users/{name}/by_username |
| URL Parameters |
| name |
String |
Name of the user |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"enforce_user_password_policy": false,
"password_digest_version": 1,
"name": "infinidat",
"roles": [
"INFINIDAT"
],
"enabled": true,
"id": -1,
"role": "INFINIDAT",
"is_digest_sufficient": true,
"type": "Local",
"email": "dev.mgmt@infinidat.com"
},
"error": null
}
|
| Errors |
| USER_ROLE_ACCESS_FORBIDDEN |
HTTP 403 |
Your user ('auto-POOL_ADMIN-8c5b7d08-b') does not have access to user 'auto-TECHNICIAN-63b61c94-7' |
| USER_NOT_FOUND |
HTTP 404 |
User not found |
|
Get all Ldap Groups
| Description |
Get the InfiniBox Ldap user groups. Filterable and Sortable fields:id,name. |
| API Endpoint |
GET api/rest/users/ldap_groups |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 3,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"dn": "admins.group.1",
"name": "admins1",
"roles": [
"ADMIN"
],
"ldap_id": 19179,
"role": "ADMIN",
"ldap_name": "mgmt1",
"type": "Ldap",
"id": 19181
},
{
"dn": "admins.group.2",
"name": "admins2",
"roles": [
"ADMIN"
],
"ldap_id": 19180,
"role": "ADMIN",
"ldap_name": "mgmt2",
"type": "Ldap",
"id": 19182
},
{
"dn": "guests.group.2",
"name": "guests2",
"roles": [
"READ_ONLY"
],
"ldap_id": 19180,
"role": "READ_ONLY",
"ldap_name": "mgmt2",
"type": "Ldap",
"id": 19183
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get all Sso Groups
| Description |
Get the InfiniBox SSO user groups. Filterable and Sortable fields:id,name. |
| API Endpoint |
GET api/rest/users/sso_groups |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 3,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"idp_id": 19220,
"name": "ibox-admins-1",
"roles": [
"ADMIN"
],
"idp_name": "Okta152a31291-c453-4959-ace6-6312bb162e72",
"role": "ADMIN",
"type": "Sso",
"id": 19222
},
{
"idp_id": 19221,
"name": "ibox-admins-2",
"roles": [
"ADMIN"
],
"idp_name": "Okta2fab51302-0904-4349-8dff-262e191dbdad",
"role": "ADMIN",
"type": "Sso",
"id": 19223
},
{
"idp_id": 19221,
"name": "ibox.guests-2",
"roles": [
"READ_ONLY"
],
"idp_name": "Okta2fab51302-0904-4349-8dff-262e191dbdad",
"role": "READ_ONLY",
"type": "Sso",
"id": 19224
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get all User Roles
| Description |
View all of the user roles provided by InfiniBox.
|
| API Endpoint |
GET api/rest/users/roles |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 6,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
"INFINIDAT",
"ADMIN",
"POOL_ADMIN",
"TECHNICIAN",
"READ_ONLY",
"INFINIGUARD"
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get all Users
| Description |
Get the InfiniBox users. Filterable and Sortable fields:id,name. |
| API Endpoint |
GET api/rest/users |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 3,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"enforce_user_password_policy": false,
"password_digest_version": 1,
"name": "technician",
"roles": [
"TECHNICIAN"
],
"enabled": true,
"id": -3,
"role": "TECHNICIAN",
"is_digest_sufficient": true,
"type": "Local",
"email": "dev.mgmt@infinidat.com"
},
{
"enforce_user_password_policy": false,
"password_digest_version": 1,
"name": "admin",
"roles": [
"ADMIN"
],
"enabled": true,
"id": -2,
"role": "ADMIN",
"is_digest_sufficient": true,
"type": "Local",
"email": "dev.mgmt@infinidat.com"
},
{
"enforce_user_password_policy": false,
"password_digest_version": 1,
"name": "infinidat",
"roles": [
"INFINIDAT"
],
"enabled": true,
"id": -1,
"role": "INFINIDAT",
"is_digest_sufficient": true,
"type": "Local",
"email": "dev.mgmt@infinidat.com"
}
],
"error": null
}
|
| Errors |
| NOT_FILTERABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be filtered: ('ldap_id') |
| AUTHENTICATION_REQUIRED |
HTTP 401 |
The operation requires authentication |
|
Get User Pools
| Description |
Get all of the pools that the user administers.
|
| API Endpoint |
GET api/rest/users/{uid}/pools |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 2,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"non_reducible_host_written_data": null,
"host_written_data": null,
"standard_entities_count": 0,
"updated_at": 1774520345611,
"standard_filesystem_snapshots_count": 0,
"standard_snapshots_count": 0,
"max_extend": -1,
"free_virtual_space": 1000000192512,
"volumes_count": 0,
"allocated_physical_space": 0,
"fs_used_default_critical": 100,
"non_reducible_data_reduction_ratio": null,
"id": 1000,
"reserved_capacity": 100000000000,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"s3_buckets_count": 0,
"standard_filesystems_count": 0,
"non_reducible_data_percents": null,
"reducible_data_reduction_ratio": null,
"vvol_entities_count": 0,
"snapshots_count": 0,
"state": "NORMAL",
"tenant_id": 1,
"fs_used_default_warning": 100,
"type": "STANDARD",
"free_physical_space": 1000000192512,
"data_reduction_ratio": 1.0,
"total_disk_usage": null,
"filesystems_count": 0,
"reducible_data_disk_usage_capacity": null,
"vvol_snapshots_count": 0,
"s3_bound": false,
"thin_capacity_savings": null,
"zeros_capacity": null,
"entities_count": 0,
"physical_capacity_critical": 90,
"standard_volumes_count": 0,
"internal_entities_count": null,
"reducible_host_written_data": null,
"owners": [
4063,
4064
],
"vvol_volumes_count": 0,
"capacity_savings": null,
"name": "auto-pool--e7185ec6-ada5-4",
"virtual_capacity": 1000000192512,
"allocated_internal_physical_space": 0,
"created_at": 1774520344079,
"filesystem_snapshots_count": 0,
"compression_enabled": true,
"qos_policies": [],
"physical_capacity_warning": 80,
"physical_capacity": 1000000192512,
"thick_capacity_savings": null
},
{
"non_reducible_host_written_data": null,
"host_written_data": null,
"standard_entities_count": 0,
"updated_at": 1774520345682,
"standard_filesystem_snapshots_count": 0,
"standard_snapshots_count": 0,
"max_extend": -1,
"free_virtual_space": 1000000192512,
"volumes_count": 0,
"allocated_physical_space": 0,
"fs_used_default_critical": 100,
"non_reducible_data_reduction_ratio": null,
"id": 1001,
"reserved_capacity": 100000000000,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"s3_buckets_count": 0,
"standard_filesystems_count": 0,
"non_reducible_data_percents": null,
"reducible_data_reduction_ratio": null,
"vvol_entities_count": 0,
"snapshots_count": 0,
"state": "NORMAL",
"tenant_id": 1,
"fs_used_default_warning": 100,
"type": "STANDARD",
"free_physical_space": 1000000192512,
"data_reduction_ratio": 1.0,
"total_disk_usage": null,
"filesystems_count": 0,
"reducible_data_disk_usage_capacity": null,
"vvol_snapshots_count": 0,
"s3_bound": false,
"thin_capacity_savings": null,
"zeros_capacity": null,
"entities_count": 0,
"physical_capacity_critical": 90,
"standard_volumes_count": 0,
"internal_entities_count": null,
"reducible_host_written_data": null,
"owners": [
4064
],
"vvol_volumes_count": 0,
"capacity_savings": null,
"name": "auto-pool--23c6e1a5-5b20-4",
"virtual_capacity": 1000000192512,
"allocated_internal_physical_space": 0,
"created_at": 1774520345389,
"filesystem_snapshots_count": 0,
"compression_enabled": true,
"qos_policies": [],
"physical_capacity_warning": 80,
"physical_capacity": 1000000192512,
"thick_capacity_savings": null
}
],
"error": null
}
|
| Errors |
| USER_ROLE_ACCESS_FORBIDDEN |
HTTP 403 |
Your user ('technician') does not have access to user '20207' |
|
Login the Sso User
| Description |
Login the SSO user.
|
| API Endpoint |
POST api/rest/users/login/sso |
| URL Parameters |
none
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Login the User
| Description |
Login the user.
|
| API Endpoint |
POST api/rest/users/login |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
Invalid Operation States |
| System States | Methods |
|
LOCAL
LOCAL_SHUTDOWN
|
ALL
|
|
| JSON Data |
{
"username": "uuuu",
"password": "paspas"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"user_objects": null,
"name": "uuuu",
"roles": [
"ADMIN"
]
},
"error": null
}
|
| Errors |
| BAD_USER |
HTTP 403 |
Authentication request failed |
|
Logout the User
| Description |
Logout the user.
|
| API Endpoint |
POST api/rest/users/logout |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
Invalid Operation States |
| System States | Methods |
|
LOCAL
LOCAL_SHUTDOWN
|
ALL
|
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"user_objects": [
{
"enforce_user_password_policy": false,
"password_digest_version": 1,
"name": "admin",
"roles": [
"ADMIN"
],
"enabled": true,
"id": -2,
"role": "ADMIN",
"is_digest_sufficient": true,
"type": "Local",
"email": "dev.mgmt@infinidat.com"
}
],
"name": "admin",
"roles": [
"ADMIN"
]
},
"error": null
}
|
| Errors |
| AUTHENTICATION_REQUIRED |
HTTP 401 |
The operation requires authentication |
|
Modify User Attribute
| Description |
Modify user attribute
|
| Approval required |
This is a dangerous operation
Enforce Password Policy for user 'user_name' will be disabled
|
| API Endpoint |
PUT api/rest/users/{id} |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
{
"password": "123"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"enforce_user_password_policy": false,
"password_digest_version": 1,
"name": "INFINIDATUser",
"roles": [
"INFINIDAT"
],
"enabled": true,
"id": 13444,
"role": "INFINIDAT",
"is_digest_sufficient": true,
"type": "Local",
"email": "infinidatuser@infinidat.com"
},
"error": null
}
|
| Errors |
| MISSING_ROLE |
HTTP 400 |
Cannot have a user without a role |
| SET_MISSING_ATTRIBUTE |
HTTP 400 |
Attribute not found: 'enabled' |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('enforce_user_password_policy') could not be translated to an expected type |
| INVALID_PASSWORD |
HTTP 400 |
Password must contain only ASCII characters |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
| EMAIL_INVALID_RECIPIENT |
HTTP 400 |
Invalid email address: 'a@gmail.com.' |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('is_digest_sufficient') |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'Lir,an' |
| USER_PASSWORD_DOES_NOT_COMPLY_WITH_POLICY |
HTTP 400 |
User operation failed due to the password not complying with the policy |
| MISSING_FIELD |
HTTP 400 |
A field ('password') is missing in an object passed |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| MISSING_CONTENT |
HTTP 400 |
The request is empty |
| AUTHENTICATION_REQUIRED |
HTTP 401 |
The operation requires authentication |
| USER_ROLE_MODIFY_FORBIDDEN |
HTTP 403 |
Insufficient privileges to modify user with role: [INFINIDAT] |
| APPROVAL_REQUIRED |
HTTP 403 |
Enforce Password Policy for user 'admin' will be disabled |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Changing the enforce_user_password_policy is not allowed for the current roles: [POOL_ADMIN] |
| USER_ROLE_ACCESS_FORBIDDEN |
HTTP 403 |
Your user ('auto-POOL_ADMIN-384a6cf4-3') does not have access to user '-2' |
| USER_NOT_FOUND |
HTTP 404 |
User not found |
| SSO_USER_GROUP_NAME_CONFLICT |
HTTP 409 |
An SSO user group named 'ibox-admins' already exists for SSO identity provider 'Oktac75f6284-ace1-4d58-94d4-9138b9a589b8' |
| DUPLICATE_DISTINGUISHED_NAME |
HTTP 409 |
The Distinguished Name 'cn=all' provided is already mapped to group 'group1' on repository 'mgmt'. Please edit the permissions of this group |
| USER_ALREADY_EXISTS |
HTTP 409 |
User 'local-admin' already exists |
| USER_CANNOT_BE_SELF_MODIFIED |
HTTP 409 |
Users cannot modify their own role |
|
Reset Password for a User
| Description |
Reset the user’s password.
|
| API Endpoint |
POST api/rest/users/{name}/reset_password |
| URL Parameters |
| name |
String |
Name of the user |
|
| Roles |
ALL
|
| System States |
ALL
|
Invalid Operation States |
| System States | Methods |
|
LOCAL
LOCAL_SHUTDOWN
|
ALL
|
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"message": "A password reset link has been sent to the email address registered for this user"
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Vm
Get all Vms
| Description |
Returns vms according to filter and sort parameters. Filterable and Sortable fields:id,name. |
| API Endpoint |
GET api/rest/vms |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"uuid": "naa.6742b0f0000000130000000000000001",
"id": 89,
"name": "vvolc1a211f3-d7b5-4fbc-a244-ca1a75835917"
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Vm by ID
| Description |
Returns a vm by ID.
|
| API Endpoint |
GET api/rest/vms/{id} |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"uuid": "naa.6742b0f0000000130000000000000001",
"id": 89,
"name": "vvolc1a211f3-d7b5-4fbc-a244-ca1a75835917"
},
"error": null
}
|
| Errors |
See general list of error codes.
|
Update Vm
| Description |
Updates a vm attributes with input map data.
|
| API Endpoint |
PUT api/rest/vms/{id} |
| URL Parameters |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"name": "newName"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"uuid": "naa.6742b0f0000000130000000000000001",
"id": 96,
"name": "newName"
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('uuid') |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| VIRTUAL_MACHINE_NOT_FOUND |
HTTP 404 |
Virtual machine not found |
| ATTRIBUTE_NOT_FOUND |
HTTP 404 |
Attribute not found: 'namee' |
|
Volume
Create a Snapshot Group
| Description |
Create a snapshot group for several volumes at once.
|
| API Endpoint |
POST api/rest/volumes/group_snapshot |
| URL Parameters |
none
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"entities": [
{
"id": 1001,
"snap_name": "nnn"
},
{
"id": 1002
},
{
"id": 1003
}
],
"snap_suffix": "_suf",
"snap_prefix": "pre_"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": [
{
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--b4fa8b2a-2c63-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774520049025,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1004,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 1001,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "SNAPSHOT",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": null,
"has_internal_children": null,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
... TRUNCATED ...
|
| Errors |
| DATASET_NAME_WILL_BE_DUPLICATED |
HTTP 400 |
volume name 'pre_auto-volume--6fa42d45-5881_suf' would be duplicated |
| WRONG_PARAMETER |
HTTP 400 |
The value (999) of parameter 'entity id' does not meet a condition: ' unique' |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-0a4963a3-d' is forbidden to modify pool 'auto-pool--6552f3b5-365d-4' |
| VOLUME_NOT_FOUND |
HTTP 404 |
Volume not found |
| VOLUME_NAME_CONFLICT |
HTTP 409 |
An entity with this name already exists |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Create protocol endpoint snapshot is not supported is not supported |
| GROUP_MEMBERS_LIMIT_EXCEEDED |
HTTP 409 |
A snapshot group cannot have more than 2 members |
| ACTIVE_ACTIVE_GROUP_SNAPSHOT_NOT_ALLOWED |
HTTP 409 |
Group snapshot cannot be created on an active active peer |
| DATASET_BELONG_TO_DIFFERENT_POOL |
HTTP 409 |
volume 'auto-volume--3a7d7654-2bd6' belongs to a different pool |
| REPLICATED_VOLUME_SNAPSHOT_NOT_ALLOWED |
HTTP 409 |
Snapshot cannot be created on replication target |
|
Create a Volume
| Description |
Create a new volume.
|
| Approval required |
This is a dangerous operation
Dataset 'datasetName' will be added to SSA Express cache
|
| API Endpoint |
POST api/rest/volumes |
| URL Parameters |
| replicate_to_async_target |
boolean |
Replicate the created snapshot/s to the remote side |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"snapshot_policy_id": 0,
"pool_id": 1000,
"name": "auto-volume--b1f3e85a-097f",
"provtype": "THIN",
"size": 2000000000000
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--dce1e4ba-1773-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774519024480,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1001,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 0,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 2000000000000,
"type": "MASTER",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": 1.0,
"has_internal_children": null,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": null,
"snapshot_policy_name": null,
"is_internal": false,
"reducible_host_written_data": null,
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": "auto-volume--b1f3e85a-097f",
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 1774519024480,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"compression_enabled": true,
"family_id": 1001,
"depth": 0,
"dataset_type": "VOLUME",
"write_protected": false,
"mapped": false,
"replica_ids": [],
"allocated": 0,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": 3906250000
},
"error": null
}
|
| Errors |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('size') could not be translated to an expected type |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('tenant_id') |
| WRONG_PARAMETER |
HTTP 400 |
The value (0) of parameter 'remote_snapshot_retention' does not meet a condition: 'must be greater than or equal to 1' |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
| MISSING_FIELD |
HTTP 400 |
A field ('pool_id') is missing in an object passed |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'auto-infinidat-volume-*-6b' |
| APPROVAL_REQUIRED |
HTTP 403 |
Dataset 'auto-volume--8f57d6bc-dfb0' will be added to SSA Express cache |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for [POOL_ADMIN] |
| SSA_EXPRESS_BUSY |
HTTP 403 |
You cannot add or remove a dataset from SSA Express that is in the process of being removed or added to SSA Express |
| VERSION_MISMATCH |
HTTP 403 |
The target system does not support 'remote_snapshot_retention_lock' attribute |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-0ec1afc1-2' is forbidden to modify pool 'auto-pool--774c64b0-2790-4' |
| INVALID_SSA_EXPRESS_DATASET_TYPE |
HTTP 403 |
SSA Express does not support snapshots, consistency groups, snapshot groups and vVols |
| NO_RMR_SNAPSHOT_FOUND |
HTTP 404 |
No replication snapshots found |
| VOLUME_NOT_FOUND |
HTTP 404 |
Volume not found |
| SNAPSHOT_POLICY_NOT_FOUND |
HTTP 404 |
Snapshot policy not found |
| REPLICA_ALREADY_RECLAIMED |
HTTP 409 |
The entity requested is a replication staging area and has already been reclaimed with name auto-rmr-test-snap-a89b801 |
| MAX_FAMILY_SIZE |
HTTP 409 |
The volume family whose root is 'auto-FamilyTestVolume-f2aa' now has 1 snapshots, which is the maximum allowed. New snapshots for this family can only be created after other snapshots are deleted |
| REPLICA_INCONSISTENT_DATASETS |
HTTP 409 |
Taking a snapshot cannot be completed because at least one dataset has not reached a consistent state |
| PROTOCOL_ENDPOINT_NAME_CONFLICT |
HTTP 409 |
An entity with this name already exists |
| ILLEGAL_POOL_TYPE |
HTTP 409 |
Cannot create a VOLUME 'vol1' in vVol pool 'storage container' because it is dedicated for VMware vVols |
| DATASET_MIN_CAPACITY |
HTTP 409 |
The requested volume size is less than the minimum volume size: 1GB |
| REMOTE_SNAPSHOT_RETENTION_LOCK_INVALID |
HTTP 409 |
The 'remote_snapshot_retention_lock' field for source snapshots to be replicated cannot be set to null |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Please try to suspend the replica again, creating a snapshot from an Active Active replica which is not consistent is not supported |
| DATASET_COUNT_LIMIT |
HTTP 409 |
The request exceeds the dataset count limit |
| INVALID_LOCK_DURATION_EXCEEDS_SNAPSHOT_RETENTION |
HTTP 409 |
A replicated snapshot's lock duration cannot be longer than the snapshot's retention |
| POOL_PHYSICAL_CAPACITY |
HTTP 409 |
Cannot perform the operation because the pool does not have enough physical capacity |
| UNSUPPORTED_REMOTE_SNAPSHOT_RETENTION |
HTTP 409 |
The 'remote_snapshot_retention' field can only be set for snapshots of replicated datasets |
| WRITABLE_LOCKED_SNAPSHOT |
HTTP 409 |
A snapshot cannot be both writable and locked |
| MAX_TREE_DEPTH |
HTTP 409 |
Tree depth limit reached |
| INVALID_LOCK_DURATION |
HTTP 409 |
Lock expiry cannot exceed 365 days |
| UDID_NOT_VALID |
HTTP 409 |
The specified UDID value is not valid |
| INVALID_LOCK_ENTITY_TYPE |
HTTP 409 |
Locking volume is not allowed |
| CANNOT_CREATE_WRITABLE_SNAPSHOT |
HTTP 409 |
A snapshot of a replica target cannot be write-enabled when created |
| UNSUPPORTED_REMOTE_SNAPSHOT_RETENTION_LOCK |
HTTP 409 |
The 'remote_snapshot_retention_lock' field can only be set for snapshots of replicated datasets |
| INVALID_LOCK_EXPIRY |
HTTP 409 |
Lock expiry date has to be in the future |
| ENTITY_NAME_IS_RESERVED |
HTTP 409 |
'Default_Protocol_Endpoint' is a reserved name and cannot be used by volumes |
| CANNOT_TAKE_SNAPSHOT |
HTTP 409 |
Cannot take a snapshot due to a background process. Please retry later |
| AUTO_UDID_UNIQUE_NOT_FOUND |
HTTP 409 |
Cannot assign a unique UDID within the specified range |
| VOLUME_NAME_CONFLICT |
HTTP 409 |
An entity with this name already exists |
| INSUFFICIENT_SSA_EXPRESS_CAPACITY |
HTTP 409 |
Not enough free capacity in SSA Express cache for this action |
| REMOTE_SNAPSHOT_RETENTION_INVALID |
HTTP 409 |
The 'remote_snapshot_retention' field for source snapshots to be replicated cannot be set to null |
| AUTO_UDID_DISABLED |
HTTP 409 |
Auto UDID is disabled |
| SSA_EXPRESS_DATASET_MUST_BE_SSD_ENABLED |
HTTP 409 |
Datasets in SSA Express cache must be SSD enabled |
|
Create Volume Snapshot
| Description |
Create a new volume.
|
| API Endpoint |
POST api/rest/volumes |
| URL Parameters |
| replicate_to_async_target |
boolean |
Replicate the created snapshot/s to the remote side |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"parent_id": 1001,
"name": "auto-volume--8dd33e72-043c"
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--637d59cc-822b-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774519153033,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1002,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 1001,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "SNAPSHOT",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": null,
"has_internal_children": null,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": null,
"snapshot_policy_name": null,
"is_internal": false,
"reducible_host_written_data": null,
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": "auto-volume--8dd33e72-043c",
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 1774519153033,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"compression_enabled": true,
"family_id": 1001,
"depth": 1,
"dataset_type": "VOLUME",
"write_protected": true,
"mapped": false,
"replica_ids": [],
"allocated": 0,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": 1953125
},
"error": null
}
|
| Errors |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('pool_id') |
| INVALID_SSA_EXPRESS_DATASET_TYPE |
HTTP 403 |
SSA Express does not support snapshots, consistency groups, snapshot groups and vVols |
| VOLUME_NOT_FOUND |
HTTP 404 |
Volume not found |
| DATASET_COUNT_LIMIT |
HTTP 409 |
The request exceeds the dataset count limit |
| REPLICA_INCONSISTENT_DATASETS |
HTTP 409 |
Taking a snapshot cannot be completed because at least one dataset has not reached a consistent state |
| VOLUME_NAME_CONFLICT |
HTTP 409 |
An entity with this name already exists |
| MAX_FAMILY_SIZE |
HTTP 409 |
The volume family whose root is 'auto-volume--89937539-86d9' now has 1 snapshots, which is the maximum allowed. New snapshots for this family can only be created after other snapshots are deleted |
|
Delete a Volume
| Description |
Delete a volume.
|
| Approval required |
This is a dangerous operation
Deleting the entity 'dataset_name' will also delete all of its snapshots
|
| API Endpoint |
DELETE api/rest/volumes/{id} |
| URL Parameters |
| id |
long |
ID of the volume |
| force_if_snapshot_locked |
boolean |
force_if_snapshot_locked |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--1376728b-8494-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774519218032,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1001,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 0,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "MASTER",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": 1.0,
"has_internal_children": null,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": null,
"snapshot_policy_name": null,
"is_internal": false,
"reducible_host_written_data": null,
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": "vol1",
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 1774519216920,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"compression_enabled": true,
"family_id": 1001,
"depth": 0,
"dataset_type": "VOLUME",
"write_protected": false,
"mapped": false,
"replica_ids": [],
"allocated": 0,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": 1953125
},
"error": null
}
|
| Errors |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-0ec1afc1-2' is forbidden to modify pool 'auto-pool--774c64b0-2790-4' |
| SSA_EXPRESS_BUSY |
HTTP 403 |
You cannot add or remove a dataset from SSA Express that is in the process of being removed or added to SSA Express |
| APPROVAL_REQUIRED |
HTTP 403 |
Deleting the volume 'auto-volume-for-snapshot-d' will also delete all of its snapshots |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges for deleting a Protocol Endpoint |
| DELETE_LOCKED_SNAPSHOT |
HTTP 409 |
Snapshot 'snap' is locked, and can only be deleted after '2026-03-31 13:29:41' UTC |
| CHILD_VOLUMES_ARE_MAPPED |
HTTP 409 |
The volume 'auto-volume-test--46b38e0d' cannot be deleted. One or more of its children have active mappings |
| REPLICATED_DATASET_DELETE_NOT_ALLOWED |
HTTP 409 |
A replicated volume cannot be deleted. Remove the replication, then delete the volume |
| DELETE_SNAPSHOT_WITH_LOCKED_DESCENDANTS |
HTTP 409 |
Snapshot 'auto-volume--ffe9f7e9-d61f' has locked descendants, and can only be deleted after they expire, on: '2026-03-31 13:29:48' UTC |
| VOLUME_HAS_RMR_SNAPSHOTS |
HTTP 409 |
The volume has replication snapshots |
| VOLUME_IS_MAPPED |
HTTP 409 |
The volume cannot be deleted. Volume 'auto-volume--c7529683-04d2' has active mappings |
| DELETE_VOLUME_IN_PROMOTION_PROCESS |
HTTP 409 |
Cannot delete this volume because a process is running in the background. Please retry later |
| CG_DATASET_DELETE_NOT_ALLOWED |
HTTP 409 |
Volume vol1 belongs to consistency group cg1 and cannot be deleted |
|
Get a Volume
| Description |
Get a volume.
|
| API Endpoint |
GET api/rest/volumes/{id} |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--e6d24649-22cb-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774519029435,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1003,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 0,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "MASTER",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": 1.0,
"has_internal_children": null,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": null,
"snapshot_policy_name": null,
"is_internal": false,
"reducible_host_written_data": null,
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": "auto-volume--89de154e-1f89",
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 1774519029435,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1002,
"compression_enabled": true,
"family_id": 1003,
"depth": 0,
"dataset_type": "VOLUME",
"write_protected": false,
"mapped": true,
"replica_ids": [],
"allocated": 0,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": 1953125
},
"error": null
}
|
| Errors |
| VOLUME_NOT_FOUND |
HTTP 404 |
Volume not found |
| MALFORMED_ID_TYPE |
HTTP 404 |
Object Not Found. Invalid id type (expect to get Number) |
|
Get a Volume Attribute
| Description |
Get a volume attribute.
|
| API Endpoint |
GET api/rest/volumes/{id}/{attribute} |
| URL Parameters |
| id |
long |
ID of the volume |
| attribute |
String |
An attribute of the volume |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": 1000,
"error": null
}
|
| Errors |
See general list of error codes.
|
Get all Internal Volumes
| Description |
Return all internal volumes according to type; master or snapshot Filterable and Sortable fields:_cg_guid,_cg_snapshot_guid,compression_enabled,created_at,data_snapshot_guid,dataset_type,depth,family_id,id,lock_expires_at,mapped,mgmt_snapshot_guid,mobility_source,name,provtype,_reclaimed_snapshot_remote_system_serial,remote_snapshot_retention,remote_snapshot_retention_lock,rmr_active_active_peer,rmr_snapshot_guid,rmr_source,rmr_target,serial,size,snapshot_retention,source_replicated_sg_id,ssa_express_enabled,ssd_enabled,type,udid,updated_at,write_protected. Filterable only fields:reducible_data_percents,reducible_data_reduction_ratio. |
| API Endpoint |
GET api/rest/volumes/internal_volumes/{internal_type} |
| URL Parameters |
| internal_type |
VolumeType |
The type of the internal volume; master or snapshot |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--e1144bdf-b163-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 0,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": null,
"non_reducible_data_reduction_ratio": null,
"id": 1003,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": null,
"parent_id": 0,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": null,
"type": "MASTER",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": 1.0,
"has_internal_children": null,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": null,
"snapshot_policy_name": null,
"is_internal": true,
"reducible_host_written_data": null,
"nguid": null,
"provtype": "THIN",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": "internal-auto-volume--eeb47d75-17ae",
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 0,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"compression_enabled": null,
"family_id": null,
"depth": 0,
"dataset_type": "VOLUME",
"write_protected": true,
"mapped": false,
"replica_ids": [],
"allocated": 0,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": null
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get all Volumes
| Description |
Get all of the volumes. Filterable and Sortable fields:_cg_guid,_cg_snapshot_guid,compression_enabled,created_at,data_snapshot_guid,dataset_type,depth,family_id,id,lock_expires_at,mapped,mgmt_snapshot_guid,mobility_source,name,provtype,_reclaimed_snapshot_remote_system_serial,remote_snapshot_retention,remote_snapshot_retention_lock,rmr_active_active_peer,rmr_snapshot_guid,rmr_source,rmr_target,serial,size,snapshot_retention,source_replicated_sg_id,ssa_express_enabled,ssd_enabled,type,udid,updated_at,write_protected. Filterable only fields:reducible_data_percents,reducible_data_reduction_ratio. |
| API Endpoint |
GET api/rest/volumes |
| URL Parameters |
| include_data_reduction_hist |
boolean |
Show the effective capacity histogram and reserve fields |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 10,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--a8790b33-70aa-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774519115507,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1002,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 0,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "MASTER",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": 1.0,
"has_internal_children": null,
... TRUNCATED ...
|
| Errors |
| NOT_FILTERABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be filtered: ('promote_source_id') |
| UNSUPPORTED_FILTER_RELATION |
HTTP 400 |
The filtering operator 'EQ' is not supported by this resource |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('111') could not be translated to an expected type |
| AUTHENTICATION_REQUIRED |
HTTP 401 |
The operation requires authentication |
|
Get LUNs by Vol ID
| Description |
Returns volume LUNs
|
| API Endpoint |
GET api/rest/volumes/{volume_id}/luns |
| URL Parameters |
| volume_id |
long |
ID of the volume |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 2,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"udid": null,
"host_cluster_id": 1001,
"volume_id": 1003,
"clustered": true,
"host_id": 0,
"id": 98,
"lun": 11
},
{
"udid": null,
"host_cluster_id": 1001,
"volume_id": 1003,
"clustered": true,
"host_id": 1000,
"id": 99,
"lun": 11
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Replication Pairs by Vol ID
| Description |
Returns volume replication pairs
|
| API Endpoint |
GET api/rest/volumes/{id}/replication_pairs |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"local_base_action": "NO_BASE_DATA",
"local_entity": {
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--a940f466-d1ca-4",
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774520749198,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1002,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 0,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"num_blocks": 1953125,
"replication_types": [
"ASYNC_SOURCE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "MASTER",
"has_children": false,
... TRUNCATED ...
|
| Errors |
See general list of error codes.
|
Get Volume Internal Children by ID
| Description |
Return all internal volumes of a volume by its id
|
| API Endpoint |
GET api/rest/volumes/{parent_id}/internal_volumes |
| URL Parameters |
| parent_id |
long |
The id of the parent volume |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--c70aa7af-81f6-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 0,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": null,
"non_reducible_data_reduction_ratio": null,
"id": 1004,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": null,
"parent_id": 1005,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": null,
"type": "SNAPSHOT",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": 1.0,
"has_internal_children": null,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": null,
"snapshot_policy_name": null,
"is_internal": true,
"reducible_host_written_data": null,
"nguid": null,
"provtype": "THIN",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": "internal-auto-volume--66b50d1f-ef16",
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 0,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"compression_enabled": null,
"family_id": null,
"depth": 0,
"dataset_type": "VOLUME",
"write_protected": true,
"mapped": false,
"replica_ids": [],
"allocated": 0,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": null
}
],
"error": null
}
|
| Errors |
See general list of error codes.
|
Get Volumes Raw
| Description |
Returns volumes list
|
| API Endpoint |
GET api/rest/volumes/_raw |
| URL Parameters |
none
|
| JSON Data |
none
|
| Returns |
|
| Errors |
See general list of error codes.
|
| No request examples available |
Move a Volume to Another Pool
| Description |
Move the volume to another pool in InfiniBox.
|
| API Endpoint |
POST api/rest/volumes/{id}/move |
| URL Parameters |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"pool_id": 1001,
"with_capacity": true
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--a9264e9e-9545-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774519577602,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": null,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1002,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 0,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1499999999488,
"type": "MASTER",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": 1.0,
"has_internal_children": false,
"snapshot_policy_id": 3636,
"mobility_source": null,
"tree_allocated": null,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": null,
"snapshot_policy_name": "Default Policy",
"is_internal": false,
"reducible_host_written_data": null,
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THICK",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": "auto-volume--7da030a0-3bfb",
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 1774519577298,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1001,
"compression_enabled": true,
"family_id": 1002,
"depth": 0,
"dataset_type": "VOLUME",
"write_protected": false,
"mapped": false,
"replica_ids": [],
"allocated": null,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": 2929687499
},
"error": null
}
|
| Errors |
| USER_IS_FORBIDDEN |
HTTP 403 |
User 'auto-POOL_ADMIN-d544dcaa-8' is forbidden to modify pool 'auto-pool--be758630-b26b-4' |
| VOLUME_NOT_FOUND |
HTTP 404 |
Volume not found |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Move protocol endpoint is not supported |
| CG_DATASET_MOVE_NOT_ALLOWED |
HTTP 409 |
A dataset in a consistency group cannot be moved |
| DATASET_NOT_MASTER |
HTTP 409 |
The volume is not a master volume |
| POOL_BELONGS_TO_DIFFERENT_TENANT |
HTTP 409 |
Pool 'auto-pool--d2fdd1f7-7ff3-4' belongs to a different tenant |
| REPLICA_UNSUPPORTED_FEATURE |
HTTP 409 |
Replication feature not yet supported: Moving an active-active replicated entity to a pool assigned with a QoS policy |
| INSUFFICIENT_POOL_CAPACITY |
HTTP 409 |
The pool has insufficient capacity. Reason: The capacity of the target pool is insufficient for this action. Pool free capacity is approximately: 1TB, required capacity is approximately: 1.5TB. The capacity is accurate up to 1GB due to internal conversions |
| ILLEGAL_MOVE_TO_VVOL_POOL |
HTTP 409 |
Cannot move VOLUME 'volume-for-move-test' into vVol pool 'test-vvol-move-pool', because 'test-vvol-move-pool' is dedicated for VMware vVols |
| ILLEGAL_POOL_CAPACITY |
HTTP 409 |
The requested capacity is not allowed. Reason: Pool capacity is less than the minimum capacity of 1TB. Wrong capacity value: 327.68KB |
| POOL_VIRTUAL_CAPACITY |
HTTP 409 |
Cannot perform the operation because the pool does not have enough virtual capacity |
| S3_POOL_MOVE_ENTITIES_NOT_ALLOWED |
HTTP 409 |
Entities cannot be moved to or from an S3 pool |
|
Promote Snapshot
| Description |
Promote a snapshot to a master volume
|
| Approval required |
This is a dangerous operation
If this snapshot is promoted, its retention period will be cleared
|
| API Endpoint |
POST api/rest/volumes/{id}/promote |
| URL Parameters |
| id |
long |
The ID of the snapshot to promote |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--7aea0c01-bd07-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774519837812,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1002,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 0,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": 1003,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "MASTER",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": false,
"data_reduction_ratio": 1.0,
"has_internal_children": true,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": null,
"snapshot_policy_name": null,
"is_internal": false,
"reducible_host_written_data": null,
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": 0,
"name": "auto-volume--45001a92-1bfa",
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 1774519837742,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"compression_enabled": true,
"family_id": 1002,
"depth": 0,
"dataset_type": "VOLUME",
"write_protected": false,
"mapped": false,
"replica_ids": [],
"allocated": 0,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": 1953125
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
If this snapshot is promoted, its retention period will be cleared |
| FEATURE_NOT_ENABLED |
HTTP 409 |
Promote Snapshot feature is not enabled |
| POOL_VIRTUAL_CAPACITY |
HTTP 409 |
Cannot perform the operation because the pool does not have enough virtual capacity |
| PROMOTE_SNAPSHOT_WITH_CHILDREN |
HTTP 409 |
This snapshot has sub-snapshots and cannot be promoted |
| PROMOTE_MASTER_ENTITY |
HTTP 409 |
Only snapshots and snap groups can be promoted |
| DATASET_COUNT_LIMIT |
HTTP 409 |
The request exceeds the dataset count limit |
| PROMOTE_VVOL_OR_FILESYSTEM_NOT_SUPPORTED |
HTTP 409 |
A filesystem or vVol cannot be promoted |
| PROMOTE_SNAPSHOT_PART_OF_SG |
HTTP 409 |
This snapshot is part of a snap group and cannot be promoted |
| PROMOTE_LOCKED_SNAPSHOT |
HTTP 409 |
This snapshot is locked and cannot be promoted |
|
Refresh a Volume Snapshot
| Description |
Refresh a volume snapshot
|
| Approval required |
This is a dangerous operation
Refreshing entity 'dataset_name' will overwrite its cg_membersdata
|
| API Endpoint |
POST api/rest/volumes/{id}/refresh |
| URL Parameters |
| id |
long |
ID of the target snapshot |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"source_id": 1003
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--fc5a8359-e7c8-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774520616288,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": "555666",
"non_reducible_data_reduction_ratio": null,
"id": 1005,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": false,
"parent_id": 1003,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "SNAPSHOT",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": null,
"has_internal_children": null,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": null,
"snapshot_policy_name": null,
"is_internal": false,
"reducible_host_written_data": null,
"nguid": null,
"provtype": "THIN",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": "s1",
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 1774520616202,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1001,
"compression_enabled": true,
"family_id": 1003,
"depth": 1,
"dataset_type": "VOLUME",
"write_protected": true,
"mapped": false,
"replica_ids": [],
"allocated": 0,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": 1953125
},
"error": null
}
|
| Errors |
| APPROVAL_REQUIRED |
HTTP 403 |
Refreshing snapshot 'auto-volume--b9613025-1b68' will overwrite its data |
| DATASET_NOT_FOUND |
HTTP 404 |
Dataset not found |
| REFRESH_TARGET_NOT_DIRECT_SNAPSHOT |
HTTP 409 |
The target that is provided for this operation is not a direct snapshot of the source |
| ILLEGAL_POOL_STATE |
HTTP 409 |
Illegal pool state |
| REFRESH_TARGET_IS_MEMBER_OF_SG |
HTTP 409 |
The target is a member of snapshot group 'sg1' |
| REFRESH_TARGET_IS_NOT_POSSIBLE |
HTTP 409 |
Refreshing a snapshot of a replica target can only take place once in a sync cycle. Please wait for the next sync cycle to refresh again |
| TARGET_REPLICATED_SNAPSHOT_REFRESH_NOT_ALLOWED |
HTTP 409 |
A target replicated snapshot cannot be refreshed |
| REPLICA_INCONSISTENT_DATASETS |
HTTP 409 |
Refreshing a snapshot on target cannot be completed because at least one dataset has not reached a consistent state |
| REFRESH_TARGET_IS_RMR_SNAPSHOT |
HTTP 409 |
The target is a replication snapshot |
| INVALID_OPERATION_ON_LOCKED_SNAPSHOT |
HTTP 409 |
This operation is not allowed on a locked snapshot until its lock expires |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Please try to suspend the replica again, refreshing a snapshot from an Active Active replica which is not consistent is not supported |
| REFRESH_TARGET_IS_NOT_AVAILABLE |
HTTP 409 |
Refresh snapshot of a replica target is currently not available since there is no new consistent data to refresh |
| REFRESH_TARGET_HAS_CHILDREN |
HTTP 409 |
The target that is provided for this operation has children |
| REFRESH_TARGET_NOT_SNAPSHOT |
HTTP 409 |
The target that is provided for this operation is not a snapshot |
|
Reset Volume Serial
| Description |
Reset volume serial
|
| API Endpoint |
POST api/rest/volumes/{id}/reset_serial |
| URL Parameters |
| id |
long |
The id of the volume |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--e0668ce8-0a61-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774520296116,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": null,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1001,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 0,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "MASTER",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": 1.0,
"has_internal_children": false,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": null,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": null,
"snapshot_policy_name": null,
"is_internal": false,
"reducible_host_written_data": null,
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": "auto-volume--2be09a03-0268",
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 1774520296116,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"compression_enabled": true,
"family_id": 1001,
"depth": 0,
"dataset_type": "VOLUME",
"write_protected": false,
"mapped": false,
"replica_ids": [],
"allocated": null,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": 1953125
},
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| CANNOT_RESET_VOLUME_SERIAL |
HTTP 409 |
Cannot reset volume serial since it is a snapshot |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Reset protocol endpoint serial is not supported |
|
Restore Volume from Snap
| Description |
Restore volume using supplied snapshot ID
|
| Approval required |
This is a dangerous operation
Restoring entity 'dataset_name' will overwrite its cg_membersdata
|
| API Endpoint |
POST api/rest/volumes/{id}/restore |
| URL Parameters |
| id |
long |
ID of the target volume |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"source_id": 1002
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": true,
"error": null
}
|
| Errors |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| APPROVAL_REQUIRED |
HTTP 403 |
Restoring volume 'auto-volume-for-snapshot-d' will overwrite its data |
| SSA_EXPRESS_BUSY |
HTTP 403 |
You cannot add or remove a dataset from SSA Express that is in the process of being removed or added to SSA Express |
| USER_IS_FORBIDDEN |
HTTP 403 |
'auto-volume--bab191df-4c11' is located in a pool on which the current user has read-only permissions |
| VOLUME_NOT_FOUND |
HTTP 404 |
Volume not found |
| INVALID_OPERATION_ON_LOCKED_SNAPSHOT |
HTTP 409 |
This operation is not allowed on a locked snapshot until its lock expires |
| REPLICATED_DATASET_RESTORE_NOT_ALLOWED |
HTTP 409 |
Replicated volume cannot be restored |
| PROTECTED_DATASET_CANNOT_BE_RESTORED |
HTTP 409 |
A dataset (auto-volume--5f2b6287-c368) that is write-protected cannot be restored |
| ILLEGAL_RESTORE_REQUEST |
HTTP 409 |
Dataset cannot be restored. auto-volume--b7b7c226-e7de is not a descendant of auto-volume-for-snapshot-2-462e3043-8f17-4598-9 |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Restore protocol endpoint is not supported |
| CORE_IN_PROGRESS |
HTTP 409 |
Core service failed to execute the request due to another ongoing request. Core status: STATUS_NORESOURCE, core description: null |
| SYSTEM_READ_ONLY |
HTTP 409 |
The system is now Read-Only. No data can be written while the system is in this state |
|
Simulate a Volume Deletion
| Description |
Estimates the capacity that will be reclaimed following a volume deletion.
|
| Approval required |
This is a dangerous operation
This involves a dataset that was previously part of a promote action. The calculation might be inaccurate
|
| API Endpoint |
POST api/rest/volumes/delete_simulation |
| URL Parameters |
none
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"entities": [
1002
]
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"valid": true,
"space_reclaimable": 0
},
"error": null
}
|
| Errors |
| UNSUPPORTED_VALUE |
HTTP 400 |
The request contains an unsupported value (null) for field ('entities') |
| APPROVAL_REQUIRED |
HTTP 403 |
This involves a dataset that was previously part of a promote action. The calculation might be inaccurate |
|
Take Rmr Snapshot Ownership
| Description |
Takes ownership of the latest RMR snapshot of a volume and gives it requested name.
|
| API Endpoint |
POST api/rest/volumes/{id}/own_snapshot |
| URL Parameters |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--834e9610-5db2-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774520098352,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1002,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": false,
"parent_id": 1001,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "SNAPSHOT",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": null,
"has_internal_children": null,
"snapshot_policy_id": null,
"mobility_source": null,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": null,
"snapshot_policy_name": null,
"is_internal": false,
"reducible_host_written_data": null,
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": "unique_name",
"data_snapshot_guid": null,
"udid": null,
"reducible_data_reduction_ratio": null,
"created_at": 1774520098352,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"compression_enabled": true,
"family_id": 1001,
"depth": 1,
"dataset_type": "VOLUME",
"write_protected": true,
"mapped": false,
"replica_ids": [],
"allocated": 0,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": 1953125
},
"error": null
}
|
| Errors |
| MISSING_CONTENT |
HTTP 400 |
The request is empty |
| VOLUME_NOT_FOUND |
HTTP 404 |
Volume not found |
| NO_RMR_SNAPSHOT_FOUND |
HTTP 404 |
No replication snapshots found |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Take RMR protocol endpoint snapshot is not supported |
| VOLUME_NAME_CONFLICT |
HTTP 409 |
An entity with this name already exists |
| RMR_SNAPSHOT_ALREADY_RECLAIMED |
HTTP 409 |
Replication snapshot has been already reclaimed ManagedVolume [id=1002, name=unique_name, createdAt=1774520098, type=SNAPSHOT, writeProtected=true, size=1000000000, provtype=THIN, mapped=false, serial=a112233445566778899aabbccddeeff, depth=1, pool=Pool [id=1000, name=auto-pool--834e9610-5db2-4, hard_capacity=1000000192512, soft_capacity=1000000192512], rmrTarget=false, rmrSource=false, replicationPairs={IndirectList: not instantiated}, rmrSnapshotGUID=null, lockExpiresAt=null, tenantId=1] |
|
Update a Volume Attribute
| Description |
Update an attribute of a volume. For example: set the volume capacity to be compressed by setting the value of compression_enabled to yes
|
| Approval required |
This is a dangerous operation
Disabling writes to entity 'volume_name' will prevent the hosts from writing to it, which may cause the application to fail
|
| API Endpoint |
PUT api/rest/volumes/{id} |
| URL Parameters |
| id |
long |
ID of the volume |
| force_resize |
boolean |
Allow force resize |
|
| Roles |
POOL_ADMIN,
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
{
"udid": 1234
}
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"non_reducible_host_written_data": null,
"remote_snapshot_retention": null,
"host_written_data": null,
"pool_name": "auto-pool--27bd458f-ac53-4",
"cg_name": null,
"_cg_snapshot_guid": null,
"rmr_target": false,
"updated_at": 1774519445519,
"paths_available": null,
"lock_state": "UNLOCKED",
"used": 0,
"qos_policy_name": null,
"serial": "a112233445566778899aabbccddeeff",
"non_reducible_data_reduction_ratio": null,
"id": 1002,
"qos_shared_policy_name": null,
"ssa_express_enabled": false,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"parent_id": 0,
"source_replicated_sg_id": null,
"remote_snapshot_retention_lock": null,
"snapshot_retention": null,
"mgmt_snapshot_guid": null,
"ssa_express_status": null,
"tenant_id": 1,
"_reclaimed_snapshot_remote_system_serial": null,
"promote_source_id": null,
"created_by_schedule_id": null,
"replication_types": [
"NONE"
],
"created_by_schedule_name": null,
"created_by_snapshot_policy_id": null,
"size": 1000000000,
"type": "MASTER",
"has_children": false,
"qos_shared_policy_id": null,
"rmr_source": false,
"compression_suppressed": null,
"data_reduction_ratio": 1.0,
"has_internal_children": null,
"snapshot_policy_id": 1678,
"mobility_source": null,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"created_by_snapshot_policy_name": null,
"zeros_capacity": null,
"lock_expires_at": null,
"cg_id": null,
"snapshot_policy_name": "Default Policy",
"is_internal": false,
"reducible_host_written_data": null,
"nguid": "8899aabb-ccdd-eeff-a112-230344556677",
"provtype": "THIN",
"capacity_savings_per_entity": null,
"rmr_snapshot_guid": null,
"capacity_savings": null,
"name": "auto-Volume4Test-9bed128a-",
"data_snapshot_guid": null,
"udid": 1234,
"reducible_data_reduction_ratio": null,
"created_at": 1774519445041,
"qos_policy_id": null,
"snapshot_expires_at": null,
"pool_id": 1000,
"compression_enabled": true,
"family_id": 1002,
"depth": 0,
"dataset_type": "VOLUME",
"write_protected": false,
"mapped": false,
"replica_ids": [],
"allocated": 0,
"_cg_guid": null,
"non_reducible_data_percents": null,
"rmr_active_active_peer": false,
"num_blocks": 1953125
},
"error": null
}
|
| Errors |
| NOT_SUPPORTED_MULTIPLE_UPDATE |
HTTP 400 |
This resource does not support updating multiple fields in one request |
| MALFORMED_CONTENT |
HTTP 400 |
The request content is malformed |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('udid') could not be translated to an expected type |
| INVALID_CHARACTERS_IN_NAME |
HTTP 400 |
Invalid characters in name 'blablabla****' |
| WRONG_PARAMETER |
HTTP 400 |
The value (null) of parameter 'write_protected' does not meet a condition: 'must be valid boolean' |
| INVALID_NAME_LENGTH |
HTTP 400 |
Name must be of length between 1 and 65 characters |
| UNSUPPORTED_FIELD |
HTTP 400 |
The request contains an unsupported field ('tenant_id') |
| SSA_EXPRESS_BUSY |
HTTP 403 |
You cannot add or remove a dataset from SSA Express that is in the process of being removed or added to SSA Express |
| REMOTE_PERMISSION_REQUIRED |
HTTP 403 |
The operation failed as it requires permission on the remote system |
| APPROVAL_REQUIRED |
HTTP 403 |
Disabling writes to volume 'auto-volume--7ec1aea0-4314' will prevent the hosts from writing to it, which may cause the application to fail |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: Method is not allowed for [POOL_ADMIN] |
| SSA_EXPRESS_QUEUE_FULL |
HTTP 403 |
The SSA Express queue has reached its limit of 100 datasets. You cannot add more datasets at this time |
| INVALID_SSA_EXPRESS_DATASET_TYPE |
HTTP 403 |
SSA Express does not support snapshots, consistency groups, snapshot groups and vVols |
| POOL_VIRTUAL_CAPACITY |
HTTP 409 |
Cannot perform the operation because the pool does not have enough virtual capacity |
| REPLICA_OPERATION_NOT_ALLOWED_ON_SOURCE_AND_TARGET |
HTTP 409 |
This operation cannot be performed on entity 'auto-volume--05170e76-2097' which is both a replication source and target |
| REPLICA_NOT_ALLOWED_ON_TARGET |
HTTP 409 |
This operation can only be performed on the source side of the replica |
| VOLUME_CANNOT_BE_RESIZED_ACTIVE_AA_REPLICA |
HTTP 409 |
A peer of an active-active replica auto-volume--86d752fe-2c2d cannot be resized when the replica is active. Suspend the replica before resizing the volume |
| DATASET_SHRINKING_NOT_ALLOWED |
HTTP 409 |
volume size cannot be reduced |
| INVALID_LOCK_EXPIRY |
HTTP 409 |
Lock expiry date has to be in the future |
| SNAP_RESIZE_NOT_ALLOWED |
HTTP 409 |
A write-protected snapshot cannot be resized |
| SNAPSHOT_RETENTION_FIELD_NOT_SUPPORTED |
HTTP 409 |
The retention cannot be changed because snapshot 'auto-snap--83c17ca3-36ba-4' is not a replicated snapshot, and it was not created by a snapshot policy |
| COMPRESSION_OPERATION_NOT_ALLOWED |
HTTP 409 |
Compression cannot be enabled or disabled on a single snapshot |
| REPLICA_PARTIAL_FAILURE |
HTTP 409 |
Replica(s) local entity operation (Updating a volume attribute) failed, replica(s) status is unknown. User intervention is required. Replicas in partial failure state: Replica between auto-volume--6c349b55-5bc0 on system ibox012-mock-no-bbu and auto-volume--6c349b55-5bc0 on system fred, Replica between auto-volume--6c349b55-5bc0 on system ibox012-mock-no-bbu and auto-volume--6c349b55-5bc0 on system fred |
| SSA_EXPRESS_DATASET_MUST_BE_SSD_ENABLED |
HTTP 409 |
Datasets in SSA Express cache must be SSD enabled |
| VOLUME_REPLICA_CANNOT_BE_RESIZED_ON_LOCAL_SYSTEM |
HTTP 409 |
A peer of an active-active replica auto-volume--a922f134-93e5 cannot be resized from the lagging side |
| REPLICATED_DATASET_WP_REMOVAL_NOT_ALLOWED |
HTTP 409 |
Replicated volume write-protect attribute cannot be changed |
| UDID_ILLEGAL_MODIFICATION |
HTTP 409 |
Modifying the UDID value of a mapped volume is prohibited |
| ACTIVE_ACTIVE_REPLICA_PROVTYPE_CHANGE_NOT_ALLOWED |
HTTP 409 |
Changing the provisioning type for an active-active replicated entity is not allowed |
| INSUFFICIENT_SSA_EXPRESS_CAPACITY |
HTTP 409 |
Not enough free capacity in SSA Express cache for this action |
| NON_SNAPSHOT_RETENTION_CANNOT_BE_MODIFIED |
HTTP 409 |
Only snapshots and snap groups can have a retention time |
| INVALID_OPERATION_ON_LOCKED_SNAPSHOT |
HTTP 409 |
This operation is not allowed on a locked snapshot until its lock expires |
| WRITE_ENABLE_LOCKED_SNAPSHOT |
HTTP 409 |
Snapshot 'snap' is locked, and can only be write-enabled after '2026-04-02 13:28:59' UTC |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Resizing an Active Active replica which is not consistent. Please try to suspend the replica again is not supported |
| VOLUME_RESIZE_NOT_ALLOWED |
HTTP 409 |
A write-protected volume cannot be resized |
| ILLEGAL_DATASET_SIZE |
HTTP 409 |
The requested volume size is not allowed |
| SNAPSHOT_LOCK_FORBIDDEN |
HTTP 409 |
Snapshot 'p_auto-volume--503475bd-ad14_s' cannot be further locked as it is member of a snap-group |
| UDID_NOT_VALID |
HTTP 409 |
The specified UDID value is not valid |
| UNLOCK_FORBIDDEN |
HTTP 409 |
Snapshot 'snap' is locked until '2026-03-31 13:29:10' UTC, the lock cannot be removed |
| ACTIVE_ACTIVE_REPLICA_CANNOT_BE_WRITE_PROTECTED |
HTTP 409 |
An active-active replicated entity 'auto-volume--86d752fe-2c2d' cannot be write-protected |
| DATASET_SSA_EXPRESS_ALREADY_DISABLED |
HTTP 409 |
Dataset 'auto-volume--6f5532ba-caa5' was not in SSA Express cache |
| SNAPSHOT_RETENTION_INVALID |
HTTP 409 |
The new snapshot retention must be longer than the current one |
| LOCK_EXPIRY_TOO_SHORT |
HTTP 409 |
The lock expiry of snapshot 'snap' cannot be lowered. Current expiry time is '2026-03-31 13:28:59' UTC |
| OPERATION_CANNOT_BE_DONE_ON_CONCURRENT_ASYNC_REPLICA |
HTTP 409 |
Resize dataset failed because it is not supported for concurrent async replica |
| DATASET_NOT_MASTER |
HTTP 409 |
The volume is not a master volume |
| DATASET_SSA_EXPRESS_ALREADY_ENABLED |
HTTP 409 |
Dataset 'auto-volume--6f5532ba-caa5' is already in SSA Express cache |
| REPLICA_UNSUPPORTED_FEATURE |
HTTP 409 |
Replication feature not yet supported: Replicated dataset can be resized only if it is part of an async replica or a suspended active active replica |
| INVALID_LOCK_ENTITY_TYPE |
HTTP 409 |
Locking volume is not allowed |
| REPLICA_IS_RESERVED_FOR_INFINISAFE |
HTTP 409 |
Replica is reserved for infinisafe, Dataset resize is not allowed |
|
Vvol
Delete Vvol
| Description |
Deletes a single vvol.
|
| API Endpoint |
DELETE api/rest/vvols/{id} |
| URL Parameters |
|
| Roles |
ADMIN,
INFINIDAT
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"non_reducible_host_written_data": null,
"host_written_data": null,
"_core_vvol_guid": "3fa340f9-8138-48ad-8569-82d4592c884e",
"updated_at": 1774519077961,
"vvol_type": "Config",
"create_time": null,
"vm_uuid": "naa.6742b0f0000000130000000000000001",
"non_reducible_data_reduction_ratio": null,
"id": 1002,
"size": 1048576,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"uuid": "naa.6742b0f00000001300000000000003ea",
"non_reducible_data_percents": null,
"parent_id": 0,
"type": "MASTER",
"pool_name": "auto-pool-0849823c-68cd-4620-9",
"data_reduction_ratio": 1.0,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"replication_group_id": null,
"guest_os": null,
"zeros_capacity": null,
"_consistent_guid": null,
"reducible_host_written_data": null,
"vm_id": 77,
"provtype": "THIN",
"capacity_savings_per_entity": null,
"capacity_savings": null,
"name": "Config-3ea",
"reducible_data_reduction_ratio": null,
"created_at": 1774519077961,
"pool_id": 1001,
"compression_enabled": true,
"depth": 0,
"is_replicated": false
},
"error": null
}
|
| Errors |
| UNAUTHORIZED |
HTTP 403 |
You are not authorized for this operation, reason: insufficient privileges |
| VVOL_NOT_FOUND |
HTTP 404 |
vVol not found |
| VVOL_CANNOT_BE_DELETED |
HTTP 409 |
The vvol 'Config-3eb' cannot be deleted. reason: vvol is a member of RG: auto-RG-219e2288-1ae9-44ee |
|
Get all Vvols
| Description |
Returns vvols according to filter and sort parameters. Filterable and Sortable fields:_core_vvol_guid,create_time,created_at,depth,guest_os,id,name,pool_id,provtype,size,type,updated_at,uuid,vm_uuid,vvol_type. |
| API Endpoint |
GET api/rest/vvols |
| URL Parameters |
none
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true,
"number_of_objects": 1,
"pages_total": 1,
"page": 1,
"page_size": 50
},
"result": [
{
"disk_usage": null,
"non_reducible_host_written_data": null,
"host_written_data": null,
"_core_vvol_guid": "0ebc56ad-15b4-4981-ac3e-9faf481fbdf6",
"updated_at": 1774518662391,
"vvol_type": "Other",
"create_time": null,
"vm_uuid": null,
"non_reducible_data_reduction_ratio": null,
"id": 55,
"size": 1048576,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"uuid": "naa.6742b0f0000000130000000000000037",
"non_reducible_data_percents": null,
"parent_id": 0,
"type": "MASTER",
"pool_name": "auto-pool-4389fd36-9be9-474a-a",
"data_reduction_ratio": 1.0,
"tree_allocated": null,
"reducible_data_disk_usage_capacity": null,
"replication_group_id": 1002,
"guest_os": null,
"zeros_capacity": null,
"_consistent_guid": null,
"reducible_host_written_data": null,
"vm_id": 0,
"provtype": "THIN",
"capacity_savings_per_entity": null,
"capacity_savings": null,
"name": "Other-37",
"reducible_data_reduction_ratio": null,
"created_at": 1774518662391,
"pool_id": 1001,
"compression_enabled": true,
"depth": 0,
"is_replicated": true
}
],
"error": null
}
|
| Errors |
| NOT_FILTERABLE_FIELD |
HTTP 400 |
The request contains a field that cannot be filtered: ('ssd_enabled') |
| MALFORMED_PARAMETER |
HTTP 400 |
A parameter ('0') could not be translated to an expected type |
| UNSUPPORTED_FILTER_RELATION |
HTTP 400 |
The filtering operator 'IN' is not supported by this resource |
| AUTHENTICATION_REQUIRED |
HTTP 401 |
The operation requires authentication |
| OPERATION_NOT_SUPPORTED |
HTTP 409 |
Sorting by field: 'is_replicated' is not supported |
|
Get Vvol by ID
| Description |
Returns a vvol by ID.
|
| API Endpoint |
GET api/rest/vvols/{id} |
| URL Parameters |
|
| Roles |
ALL
|
| System States |
ALL
|
| JSON Data |
none
|
| Returns |
{
"metadata": {
"ready": true
},
"result": {
"disk_usage": null,
"non_reducible_host_written_data": null,
"host_written_data": null,
"_core_vvol_guid": "c92def24-cba6-42f5-b3cf-96ab13917932",
"updated_at": 1774518678270,
"vvol_type": "Config",
"create_time": null,
"vm_uuid": "naa.6742b0f0000000130000000000000001",
"non_reducible_data_reduction_ratio": null,
"id": 1003,
"size": 1048576,
"non_reducible_data_disk_usage_capacity": null,
"reducible_data_percents": null,
"ssd_enabled": true,
"uuid": "naa.6742b0f00000001300000000000003eb",
"non_reducible_data_percents": null,
"parent_id": 0,
"type": "MASTER",
"pool_name": "auto-pool--e624254c-d942-4",
"data_reduction_ratio": 1.0,
"tree_allocated": 0,
"reducible_data_disk_usage_capacity": null,
"replication_group_id": 1002,
"guest_os": null,
"zeros_capacity": null,
"_consistent_guid": null,
"reducible_host_written_data": null,
"vm_id": 9,
"provtype": "THIN",
"capacity_savings_per_entity": null,
"capacity_savings": null,
"name": "Config-3eb",
"reducible_data_reduction_ratio": null,
"created_at": 1774518678270,
"pool_id": 1001,
"compression_enabled": true,
"depth": 0,
"is_replicated": true
},
"error": null
}
|
| Errors |
| VVOL_NOT_FOUND |
HTTP 404 |
vVol not found |
|