Resource: data_area
Data Area specification for a data module
http://{device}/api/npm.data_manager/2.1/data_areas/items/{data_module_name}/{data_section_id}
{ "available": boolean, "data_module_name": string, "data_section_id": string, "elastic": boolean, "enabled": boolean, "hidden": boolean, "index": integer, "locked": boolean, "parent_data_module": string, "path": string, "quota_size_mb": integer, "status": string, "status_reason": string, "system": boolean, "used_space_mb": integer }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| data_area | <object> | Data Area specification for a data module | Required properties: [data_module_name, data_section_id, quota_size_mb]; |
| data_area.available | <boolean> | True if the data area is available for use | Optional; |
| data_area.data_module_name | <string> | The name of the data module owning this data area | Read-only; |
| data_area.data_section_id | <string> | The ID of the data section this data area belongs to | Read-only; |
| data_area.elastic | <boolean> | If true, this data area will automatically resize to accomodate changes in data areas on the same volume Only one data area belonging to each data section may have this flag set to true | Read-only; Optional; |
| data_area.enabled | <boolean> | Enabled status of the data area | Read-only; Optional; Default is True; |
| data_area.hidden | <boolean> | Hidden from user views | Read-only; Optional; |
| data_area.index | <integer> | The index of the data area within its data section or parent data area | Read-only; Optional; |
| data_area.locked | <boolean> | True if the lock is held by either the client or the system | Optional; |
| data_area.parent_data_module | <string> | If not the empty string, this data area is considered part of the named data area on the same data section | Read-only; Optional; |
| data_area.path | <string> | The path on disk where data is stored | Read-only; Optional; |
| data_area.quota_size_mb | <integer> | Size (in MB) of allocated space | Read-only; Minimum 0; |
| status | <string> | Status of a data area 'active' indicates a working and available area, 'disabled' indicates that the data area is disabled 'failed' indicates a failure due to the data section's availability might not be fixable without data loss 'unconfigured' indicates a repairable failure 'moving' indicates that the data area is currently being relocated | Read-only; Values: active, moving, resizing, failed, disabled; |
| data_area.status_reason | <string> | Reason for the current status, if available | Read-only; Optional; |
| data_area.system | <boolean> | Is the catch-all system data area | Read-only; Optional; |
| data_area.used_space_mb | <integer> | Size (in MB) of stored data | Read-only; Optional; Minimum 0; |
Links
data_area: get
GET http://{device}/api/npm.data_manager/2.1/data_areas/items/{data_module_name}/{data_section_id}
Response Body
Returns a data_area data object.
Relations
data_area: data_module
Related resource Variables| Related var | Data value for replacement |
|---|---|
| name | 0/data_module_name |
data_area: data_section
Related resource Variables| Related var | Data value for replacement |
|---|---|
| id | 0/data_section_id |
data_area: parent
Related resource Variables| Related var | Data value for replacement |
|---|---|
| data_module_name | 0/parent_name |
| data_section_id | 0/data_section_id |
Resource: data_area_event
Signals a change to a data area's presence or status
http://{device}/api/npm.data_manager/2.1/event_queues/data_area_events/{id}
{ "data_module": string, "data_section_id": string, "hdr": event_header, "quota_size_mb": integer, "status": string, "status_reason": string, "used_mb": integer }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| data_area_event | <object> | Signals a change to a data area's presence or status | Required properties: [data_module, quota_size_mb, data_section_id, status]; |
| data_area_event.data_module | <string> | Name of the affected data module | |
| data_area_event.data_section_id | <string> | Data section id | |
| data_area_event.hdr | <event_header> | Common properties for all events | |
| data_area_event.quota_size_mb | <integer> | Quota size | |
| data_area_event.status | <string> | Data area status | |
| data_area_event.status_reason | <string> | Data area status reason | Optional; |
| data_area_event.used_mb | <integer> | Amount of data (in MB) currently used | Optional; |
Links
data_area_event: get
GET http://{device}/api/npm.data_manager/2.1/event_queues/data_area_events/{id}
Response Body
Returns a data_area_event data object.
Relations
Resource: data_area_events
Collection of data area events stored
http://{device}/api/npm.data_manager/2.1/event_queues/data_area_events{?limit,since_id}
{ "items": [ data_area_event ] }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| data_area_events | <object> | Collection of data area events stored | |
| data_area_events.items | <array of <data_area_event>> | Optional; | |
| data_area_events.items[items] | <data_area_event> | Signals a change to a data area's presence or status |
Links
data_area_events: create
POST http://{device}/api/npm.data_manager/2.1/event_queues/data_area_events{?limit,since_id}
Request Body
Provide a data_area_event data object.
Response BodyReturns a data_area_event data object.
data_area_events: get
GET http://{device}/api/npm.data_manager/2.1/event_queues/data_area_events{?limit,since_id}
Response Body
Returns a data_area_events data object.
Resource: data_areas
Collection of data areas
http://{device}/api/npm.data_manager/2.1/data_areas{?data_module_name,data_section_id,status,parent_data_module}
{ "items": [ data_area ] }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| data_areas | <object> | Collection of data areas | |
| data_areas.items | <array of <data_area>> | Optional; | |
| data_areas.items[items] | <data_area> | Data Area specification for a data module |
Links
data_areas: create
POST http://{device}/api/npm.data_manager/2.1/data_areas{?data_module_name,data_section_id,status,parent_data_module}
Request Body
Provide a data_area data object.
Response BodyReturns a data_area data object.
data_areas: get
GET http://{device}/api/npm.data_manager/2.1/data_areas{?data_module_name,data_section_id,status,parent_data_module}
Response Body
Returns a data_areas data object.
Relations
data_areas: data_module
Related resource Variables| Related var | Data value for replacement |
|---|---|
| name | 0/data_module |
Resource: data_module
A description of the storage requirements of a component that stores data on the system
http://{device}/api/npm.data_manager/2.1/data_modules/items/{name}
{ "data_areas_max": integer, "data_areas_min": integer, "expands": boolean, "granularity_mb": integer, "hidden": boolean, "index": integer, "name": string, "parent_data_module": string, "quota_max_mb": integer, "quota_min_mb": integer, "relocatable_data": boolean, "required_role": string, "resizable": boolean }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| data_module | <object> | A description of the storage requirements of a component that stores data on the system | |
| data_module.data_areas_max | <integer> | Maximum number of data areas supported by module | Read-only; Optional; |
| data_module.data_areas_min | <integer> | Minimum number of data areas supported by module | Read-only; Optional; |
| data_module.expands | <boolean> | Whether data areas for this data module expand to fill empty space automatically | Read-only; Optional; |
| data_module.granularity_mb | <integer> | Allowed granularity of quota value | Read-only; Optional; |
| data_module.hidden | <boolean> | True if this should be excluded from user views. | Read-only; Optional; |
| data_module.index | <integer> | Display order index | Read-only; Optional; |
| data_module.name | <string> | Name of the component | Read-only; Optional; |
| data_module.parent_data_module | <string> | Name of the parent data module, or the empty string | Read-only; Optional; |
| data_module.quota_max_mb | <integer> | Minimum space that can be allocated to the data module | Read-only; Optional; |
| data_module.quota_min_mb | <integer> | Maximum size allocatable to this data module | Read-only; Optional; |
| data_module.relocatable_data | <boolean> | Whether data for this module can be relocated without data loss | Read-only; Optional; |
| data_module.required_role | <string> | The role a data section must have to host a data area for this module | Read-only; Optional; |
| data_module.resizable | <boolean> | True if data module's data areas can be resized | Read-only; Optional; |
Links
data_module: get
GET http://{device}/api/npm.data_manager/2.1/data_modules/items/{name}
Response Body
Returns a data_module data object.
Relations
data_module: data_areas
Related resource Variables| Related var | Data value for replacement |
|---|---|
| data_module_name | 0/name |
Resource: data_modules
The collection of all defined data modules, describing the storage requirements of components that store data on the system
http://{device}/api/npm.data_manager/2.1/data_modules
{ "items": [ data_module ] }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| data_modules | <object> | The collection of all defined data modules, describing the storage requirements of components that store data on the system | |
| data_modules.items | <array of <data_module>> | Optional; | |
| data_modules.items[items] | <data_module> | A description of the storage requirements of a component that stores data on the system |
Links
data_modules: get
GET http://{device}/api/npm.data_manager/2.1/data_modules
Response Body
Returns a data_modules data object.
Resource: data_section
A description of a data section, where data areas may be assigned a quota to store data produced by data modules
http://{device}/api/npm.data_manager/2.1/data_sections/items/{id}
{ "default_mode": string, "device": string, "encrypted": boolean, "id": data_section_id, "label": string, "mode": string, "mountpoint": string, "primary": [ string ], "reinitializable": boolean, "roles": [ string ], "size_mb": integer, "status": data_section_status, "status_reason": string, "storage_unit": string, "supported_modes": [ { "name": string, "volume_size_mb": integer } ], "supports_encryption": boolean, "total_space_mb": integer }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| data_section | <object> | A description of a data section, where data areas may be assigned a quota to store data produced by data modules | |
| data_section.default_mode | <string> | Default RAID mode for the volume. | Read-only; Optional; |
| data_section.device | <string> | Internal device name | Optional; |
| data_section.encrypted | <boolean> | True if data section is encrypted. | Read-only; Optional; |
| data_section.id | <data_section_id> | A data section identifier | |
| data_section.label | <string> | Human readable name | Optional; |
| data_section.mode | <string> | Name of currently configured storage mode | Optional; |
| data_section.mountpoint | <string> | Internal mountpoint | Optional; |
| data_section.primary | <array of <string>> | A list of roles for which this data section should be used first | Optional; |
| data_section.primary[items] | <string> | ||
| data_section.reinitializable | <boolean> | Whether this data section can be reinitialized | Read-only; Optional; |
| data_section.roles | <array of <string>> | A list of data roles supported by this data section | Optional; |
| data_section.roles[items] | <string> | ||
| data_section.size_mb | <integer> | Total usable space on the data section, in MiB | Optional; |
| data_section.status | <data_section_status> | The possible statuses of a data section | Values: active, missing, failed, invalid, initializing, uninitialized, unconfigured, unmounted, foreign; |
| data_section.status_reason | <string> | Reason for the current status, if available | Optional; |
| data_section.storage_unit | <string> | If implemented by a storage unit, the serial number of that SU | Optional; |
| data_section.supported_modes | <array of <object>> | A listing of supported data section mode names and their associated volume sizes | Optional; |
| data_section.supported_modes[items] | <object> | ||
| data_section.supported_modes[items].name | <string> | Optional; | |
| data_section.supported_modes[items]. volume_size_mb |
<integer> | Optional; | |
| data_section.supports_encryption | <boolean> | True if data section supports encryption features. | Read-only; Optional; |
| data_section.total_space_mb | <integer> | Total expected usable space on the data section, in MiB. | Optional; |
Links
data_section: get
GET http://{device}/api/npm.data_manager/2.1/data_sections/items/{id}
Response Body
Returns a data_section data object.
data_section: import
Mark a foreign data section for use on this system Foreign data sections cannot be used until they have been imported
POST http://{device}/api/npm.data_manager/2.1/data_sections/items/{id}/import
Request Body
Do not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
Relations
data_section: data_areas
Related resource Variables| Related var | Data value for replacement |
|---|---|
| data_section_id | 0/id |
data_section: disabled_data_areas
Related resource Variables| Related var | Data value for replacement |
|---|---|
| data_section_id | 0/id |
Resource: data_section_event
Signals a change in a data section's presence or status
http://{device}/api/npm.data_manager/2.1/event_queues/data_section_events/{id}
{ "data_section_id": string, "hdr": event_header, "status": string, "status_reason": string }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| data_section_event | <object> | Signals a change in a data section's presence or status | Required properties: [data_section_id, status]; |
| data_section_event.data_section_id | <string> | Data section id | |
| data_section_event.hdr | <event_header> | Common properties for all events | |
| data_section_event.status | <string> | Data section status | |
| data_section_event.status_reason | <string> | Data section status reason | Optional; |
Links
data_section_event: get
GET http://{device}/api/npm.data_manager/2.1/event_queues/data_section_events/{id}
Response Body
Returns a data_section_event data object.
Relations
Resource: data_section_events
Collection of all data section events
http://{device}/api/npm.data_manager/2.1/event_queues/data_section_events{?limit,since_id}
{ "items": [ data_section_event ] }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| data_section_events | <object> | Collection of all data section events | |
| data_section_events.items | <array of <data_section_event>> | Optional; | |
| data_section_events.items[items] | <data_section_event> | Signals a change in a data section's presence or status |
Links
data_section_events: create
POST http://{device}/api/npm.data_manager/2.1/event_queues/data_section_events{?limit,since_id}
Request Body
Provide a data_section_event data object.
Response BodyReturns a data_section_event data object.
data_section_events: get
GET http://{device}/api/npm.data_manager/2.1/event_queues/data_section_events{?limit,since_id}
Response Body
Returns a data_section_events data object.
Resource: data_sections
A collection of all data section information
http://{device}/api/npm.data_manager/2.1/data_sections{?id,roles,primary}
{ "items": [ data_section ] }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| data_sections | <object> | A collection of all data section information | |
| data_sections.items | <array of <data_section>> | Optional; | |
| data_sections.items[items] | <data_section> | A description of a data section, where data areas may be assigned a quota to store data produced by data modules |
Links
data_sections: get
GET http://{device}/api/npm.data_manager/2.1/data_sections{?id,roles,primary}
Response Body
Returns a data_sections data object.
data_sections: rescan
Refresh the internal list of data sections
POST http://{device}/api/npm.data_manager/2.1/data_sections/rescan
Request Body
Do not provide a request body.
Response BodyOn success, the server does not provide any body in the responses.
Resource: disabled_data_areas
Collection of disabled data areas, which are normally filtered out of the data_areas collection
http://{device}/api/npm.data_manager/2.1/disabled_data_areas{?data_module_name,data_section_id,status}
{ "items": [ data_area ] }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| disabled_data_areas | <object> | Collection of disabled data areas, which are normally filtered out of the data_areas collection | |
| disabled_data_areas.items | <array of <data_area>> | Optional; | |
| disabled_data_areas.items[items] | <data_area> | Data Area specification for a data module |
Links
disabled_data_areas: get
GET http://{device}/api/npm.data_manager/2.1/disabled_data_areas{?data_module_name,data_section_id,status}
Response Body
Returns a disabled_data_areas data object.
Relations
disabled_data_areas: data_module
Related resource Variables| Related var | Data value for replacement |
|---|---|
| name | 0/data_module |
Resource: encryption_key
http://{device}/api/npm.data_manager/2.1/encryption_key
{ "encryption_key_set": boolean, "new_encryption_key": string, "old_encryption_key": string, <prop>: any }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| encryption_key | <object> | Required properties: [encryption_key_set]; | |
| encryption_key.encryption_key_set | <boolean> | Read-only; | |
| encryption_key.new_encryption_key | <string> | Optional; | |
| encryption_key.old_encryption_key | <string> | Optional; | |
| encryption_key.<prop> | <any> | Optional; |
Links
encryption_key: generate
POST http://{device}/api/npm.data_manager/2.1/encryption_key/generate
Request Body
Provide a request body with the following structure:
{ "length": integer, <prop>: any }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| encryption_key.links.generate.request | <object> | ||
| encryption_key.links.generate.request. length |
<integer> | Optional; Range: 8 to 32; Default is 16; | |
| encryption_key.links.generate.request. <prop> |
<any> | Optional; |
On success, the server returns a response body with the following structure:
{ "encryption_key": string, <prop>: any }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| encryption_key.links.generate.response | <object> | Required properties: [encryption_key]; | |
| encryption_key.links.generate.response. encryption_key |
<string> | Randomly generated encryption key | |
| encryption_key.links.generate.response. <prop> |
<any> | Optional; |
encryption_key: get
GET http://{device}/api/npm.data_manager/2.1/encryption_key
Response Body
Returns an encryption_key data object.
encryption_key: set
PUT http://{device}/api/npm.data_manager/2.1/encryption_key
Request Body
Provide an encryption_key data object.
Response BodyReturns an encryption_key data object.
encryption_key: unset
POST http://{device}/api/npm.data_manager/2.1/encryption_key/unset
Request Body
Do not provide a request body.
Response BodyReturns an encryption_key data object.
Resource: layout
A layout definition, describing how data areas are assigned
http://{device}/api/npm.data_manager/2.1/layouts/items/{name}
{ "available": boolean, "configurable": boolean, "description": string, "label": string, "name": string, "requires_data_section": boolean, "valid_data_sections": [ string ] }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| layout | <object> | A layout definition, describing how data areas are assigned | |
| layout.available | <boolean> | True if the mode can be selected from the current state, otherwise it is not possible to transition to this layout from the current one | Optional; |
| layout.configurable | <boolean> | True if the layout can be configured | Read-only; Optional; |
| layout.description | <string> | An explanation of the data area layout | Optional; |
| layout.label | <string> | Human-readable layout name | Optional; |
| layout.name | <string> | Layout identifier | Optional; |
| layout.requires_data_section | <boolean> | If true, a data section must be specified as a default target for the layout | Optional; Default is False; |
| layout.valid_data_sections | <array of <string>> | A list of data sections valid for the layout in the current configuration | Optional; |
| layout.valid_data_sections[items] | <string> |
Links
layout: get
GET http://{device}/api/npm.data_manager/2.1/layouts/items/{name}
Response Body
Returns a layout data object.
Relations
Resource: layout_event
Signals a change in the storage layout
http://{device}/api/npm.data_manager/2.1/event_queues/layout_events/{id}
{ "hdr": event_header, "name": string, "status": string }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| layout_event | <object> | Signals a change in the storage layout | Required properties: [name, status]; |
| layout_event.hdr | <event_header> | Common properties for all events | |
| layout_event.name | <string> | Current or target layout name | |
| layout_event.status | <string> | Layout manager status |
Links
layout_event: get
GET http://{device}/api/npm.data_manager/2.1/event_queues/layout_events/{id}
Response Body
Returns a layout_event data object.
Relations
Resource: layout_events
Collection of all data section events
http://{device}/api/npm.data_manager/2.1/event_queues/layout_events{?limit,since_id}
{ "items": [ layout_event ] }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| layout_events | <object> | Collection of all data section events | |
| layout_events.items | <array of <layout_event>> | Optional; | |
| layout_events.items[items] | <layout_event> | Signals a change in the storage layout |
Links
layout_events: create
POST http://{device}/api/npm.data_manager/2.1/event_queues/layout_events{?limit,since_id}
Request Body
Provide a layout_event data object.
Response BodyReturns a layout_event data object.
layout_events: get
GET http://{device}/api/npm.data_manager/2.1/event_queues/layout_events{?limit,since_id}
Response Body
Returns a layout_events data object.
Resource: layout_status
The layout of data areas to enable. Changing this option begins a reconfiguration procedure that will require rebooting
http://{device}/api/npm.data_manager/2.1/layout
{ "configurable": boolean, "configuration": layout_configuration, "customized": boolean, "data_section": string, "name": string, "progress": integer, "status": string }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| layout_status | <object> | The layout of data areas to enable. Changing this option begins a reconfiguration procedure that will require rebooting | Required properties: [name]; |
| layout_status.configurable | <boolean> | If true, the configuration may be changed | Read-only; Optional; |
| layout_status.configuration | <layout_configuration> | Customizable parameters for the selected layout | |
| layout_status.customized | <boolean> | If true, the named layout has been customized and no longer matches defaults. | Read-only; Optional; |
| layout_status.data_section | <string> | Data section targeted by this layout, empty if none required | Optional; Default is ; |
| layout_status.name | <string> | ||
| layout_status.progress | <integer> | Percentage of operation progress as an integer | Read-only; Optional; |
| layout_status.status | <string> | The current status of the layout configuration | Read-only; Optional; Values: idle, pending, reconfiguring, failed, reboot_required; |
Links
layout_status: compare
Compare the proposed layout configuration to the current configuration, returning a description of the changes that would be made
POST http://{device}/api/npm.data_manager/2.1/layout/compare
Request Body
Provide a layout_status data object.
Response BodyReturns a layout_diff data object.
layout_status: get
GET http://{device}/api/npm.data_manager/2.1/layout
Response Body
Returns a layout_status data object.
layout_status: set
PUT http://{device}/api/npm.data_manager/2.1/layout
Request Body
Provide a layout_status data object.
Response BodyReturns a layout_status data object.
layout_status: validate
Checks whether the proposed layout status change is possible given the current layout configuration
POST http://{device}/api/npm.data_manager/2.1/layout/validate
Request Body
Provide a layout_status data object.
Response BodyReturns a layout_configuration_result data object.
Relations
layout_status: layout
Related resource Variables| Related var | Data value for replacement |
|---|---|
| name | 0/name |
Resource: layouts
The collection of all supported storage layouts
http://{device}/api/npm.data_manager/2.1/layouts
{ "items": [ layout ] }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| layouts | <object> | The collection of all supported storage layouts | |
| layouts.items | <array of <layout>> | Optional; | |
| layouts.items[items] | <layout> | A layout definition, describing how data areas are assigned |
Links
layouts: get
GET http://{device}/api/npm.data_manager/2.1/layouts
Response Body
Returns a layouts data object.
Type: data_area_key
The pair of Data Module name and Data Section ID that uniquely identifies a data area
{ "data_module": string, "data_section": string }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| data_area_key | <object> | The pair of Data Module name and Data Section ID that uniquely identifies a data area | |
| data_area_key.data_module | <string> | Optional; | |
| data_area_key.data_section | <string> | Optional; |
Type: data_area_status
Status of a data area 'active' indicates a working and available area, 'disabled' indicates that the data area is disabled 'failed' indicates a failure due to the data section's availability might not be fixable without data loss 'unconfigured' indicates a repairable failure 'moving' indicates that the data area is currently being relocated
string
| Property Name | Type | Description | Notes |
|---|---|---|---|
| data_area_status | <string> | Status of a data area 'active' indicates a working and available area, 'disabled' indicates that the data area is disabled 'failed' indicates a failure due to the data section's availability might not be fixable without data loss 'unconfigured' indicates a repairable failure 'moving' indicates that the data area is currently being relocated | Values: active, moving, resizing, failed, disabled; |
Type: data_section_id
A data section identifier
string
| Property Name | Type | Description | Notes |
|---|---|---|---|
| data_section_id | <string> | A data section identifier |
Type: data_section_mode
Data about a data section's mode
{ "name": string, "volume_size_mb": integer }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| data_section_mode | <object> | Data about a data section's mode | |
| data_section_mode.name | <string> | Optional; | |
| data_section_mode.volume_size_mb | <integer> | Optional; |
Type: data_section_status
The possible statuses of a data section
string
| Property Name | Type | Description | Notes |
|---|---|---|---|
| data_section_status | <string> | The possible statuses of a data section | Values: active, missing, failed, invalid, initializing, uninitialized, unconfigured, unmounted, foreign; |
Type: layout_configuration
Customizable parameters for the selected layout
{ "data_areas": [ { "can_disable": boolean, "data_module_name": string, "data_section_id": string, "elastic": boolean, "enabled": boolean, "hidden": boolean, "index": integer, "label": string, "max_size_mb": integer, "min_size_mb": integer, "parent_data_module": string, "quota_size_mb": integer, "relocatable": boolean, "resizable": boolean, "resizable_data": boolean, "size_locked": [ string ], "used_space_mb": integer, "valid_data_sections": [ string ] } ], "data_sections": [ { "default_mode": string, "encrypted": boolean, "id": string, "label": string, "mode": string, "model": string, "primary": [ string ], "reinitializable": boolean, "reinitialize": boolean, "roles": [ string ], "status": data_section_status, "storage_unit": string, "supported_modes": [ data_section_mode ], "supports_encryption": boolean, "total_space_mb": integer } ], "encrypt_storage_units": boolean, "encryption_available": boolean, "encryption_supported": boolean, "session_id": string, "valid_data_sections": [ string ] }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| layout_configuration | <object> | Customizable parameters for the selected layout | |
| layout_configuration.data_areas | <array of <object>> | A list of all (top-level) data areas assigned to data sections | Optional; |
| layout_configuration.data_areas[items] | <object> | ||
| layout_configuration.data_areas[items]. can_disable |
<boolean> | If true, this data area can be disabled Its size when disabled will reset to 0 | Optional; |
| layout_configuration.data_areas[items]. data_module_name |
<string> | Read-only; Optional; | |
| layout_configuration.data_areas[items]. data_section_id |
<string> | Optional; | |
| layout_configuration.data_areas[items]. elastic |
<boolean> | If true, this data area resizes automatically to adjust for changes in other data areas on the same volume | Optional; |
| layout_configuration.data_areas[items]. enabled |
<boolean> | If false, this data area is not available for use | Optional; |
| layout_configuration.data_areas[items]. hidden |
<boolean> | If true, this is an internal data area for system use. | Optional; |
| layout_configuration.data_areas[items]. index |
<integer> | The index/ordering of the data area on its data section | Optional; |
| layout_configuration.data_areas[items]. label |
<string> | Human-readable name of the data module | Optional; |
| layout_configuration.data_areas[items]. max_size_mb |
<integer> | Maximum available size of the data area | Read-only; Optional; |
| layout_configuration.data_areas[items]. min_size_mb |
<integer> | Minimum allowed size of the data area | Read-only; Optional; |
| layout_configuration.data_areas[items]. parent_data_module |
<string> | If not the empty string, this data area is considered part of the named data area on the same data section | Read-only; Optional; |
| layout_configuration.data_areas[items]. quota_size_mb |
<integer> | The amount of space allocated for this data area | Optional; |
| layout_configuration.data_areas[items]. relocatable |
<boolean> | Whether the data area can be relocated | Optional; |
| layout_configuration.data_areas[items]. resizable |
<boolean> | True if this data area's quota can be changed | Read-only; Optional; |
| layout_configuration.data_areas[items]. resizable_data |
<boolean> | If false, resizing this data section will result in complete loss of data stored here. | Optional; |
| layout_configuration.data_areas[items]. size_locked |
<array of <string>> | A list of data sections whose data areas for the same data module must be kept the same size. | Optional; |
| layout_configuration.data_areas[items]. size_locked[items] |
<string> | ||
| layout_configuration.data_areas[items]. used_space_mb |
<integer> | Read-only; Optional; | |
| layout_configuration.data_areas[items]. valid_data_sections |
<array of <string>> | A list of data sections that this data area may be reassigned to TBD: do we offer min/max size here for UI to use? What is the default size after relocation? If this list is empty, the data area cannot be relocated Relocation may be prevented due to data area status or internal settings | Optional; |
| layout_configuration.data_areas[items]. valid_data_sections[items] |
<string> | ||
| layout_configuration.data_sections | <array of <object>> | Configuration of data sections used in this layout | Optional; |
| layout_configuration.data_sections [items] |
<object> | Data Section identifier | Required properties: [id, mode]; |
| layout_configuration.data_sections [items].default_mode |
<string> | Default RAID mode for the volume. | Read-only; Optional; |
| layout_configuration.data_sections [items].encrypted |
<boolean> | True if encryption is enabled. | Read-only; Optional; |
| layout_configuration.data_sections [items].id |
<string> | Data Section identifier | Read-only; |
| layout_configuration.data_sections [items].label |
<string> | Data Section name | Read-only; Optional; |
| layout_configuration.data_sections [items].mode |
<string> | Name of the current storage mode for the data section | |
| layout_configuration.data_sections [items].model |
<string> | Model of storage unit (if applicable) | Read-only; Optional; |
| layout_configuration.data_sections [items].primary |
<array of <string>> | Roles for which this data section is primary | Read-only; Optional; |
| layout_configuration.data_sections [items].primary[items] |
<string> | Read-only; | |
| layout_configuration.data_sections [items].reinitializable |
<boolean> | Whether this data section can be reinitialized | Read-only; Optional; |
| layout_configuration.data_sections [items].reinitialize |
<boolean> | (Write-only) If true, the data section will be reinitialized into the mode being set | Optional; Default is False; |
| layout_configuration.data_sections [items].roles |
<array of <string>> | Roles supported by the data section | Read-only; Optional; |
| layout_configuration.data_sections [items].roles[items] |
<string> | Read-only; | |
| layout_configuration.data_sections [items].status |
<data_section_status> | The possible statuses of a data section | Values: active, missing, failed, invalid, initializing, uninitialized, unconfigured, unmounted, foreign; |
| layout_configuration.data_sections [items].storage_unit |
<string> | Storage unit name (if applicable) | Read-only; Optional; |
| layout_configuration.data_sections [items].supported_modes |
<array of <data_section_mode>> | Modes supported by the data section for reinitialization | Read-only; Optional; |
| layout_configuration.data_sections [items].supported_modes[items] |
<data_section_mode> | Data about a data section's mode | |
| layout_configuration.data_sections [items].supports_encryption |
<boolean> | True if supports encryption features. | Read-only; Optional; |
| layout_configuration.data_sections [items].total_space_mb |
<integer> | Size of the data section in this mode | Read-only; Optional; |
| layout_configuration. encrypt_storage_units |
<boolean> | Encrypt all storage units | Optional; |
| layout_configuration. encryption_available |
<boolean> | Whether encryption is possible for attached Storage Units. | Optional; |
| layout_configuration. encryption_supported |
<boolean> | Whether encryption is supported in the current configuration. | Optional; |
| layout_configuration.session_id | <string> | Unique identifier for the configured layout | Optional; |
| layout_configuration.valid_data_sections | <array of <string>> | List of valid data section targets | Optional; |
| layout_configuration.valid_data_sections [items] |
<string> |
Type: layout_configuration_result
{ "changes": [ layout_diff ], "configuration": layout_configuration, "customized": boolean, "messages": [ { "description": string, "severity": string } ], "move_conflict": { "conflicting_data_section": string, "moving_from": [ string ], "moving_to": [ string ], <prop>: any }, "valid": boolean }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| layout_configuration_result | <object> | Required properties: [valid, changes, configuration, messages]; | |
| layout_configuration_result.changes | <array of <layout_diff>> | Differences (expressed as actions to be taken) between the current and proposed layout | |
| layout_configuration_result.changes [items] |
<layout_diff> | A collection of data areas that must be operated on in order to convert one storage layout to another. The order in which those operations take place is additionally specified in the ordering list | |
| layout_configuration_result. configuration |
<layout_configuration> | Customizable parameters for the selected layout | |
| layout_configuration_result.customized | <boolean> | If true, the validated settings customize the layout. | Read-only; Optional; |
| layout_configuration_result.messages | <array of <object>> | A list of errors or notice(s) that the user should be aware of | |
| layout_configuration_result.messages [items] |
<object> | ||
| layout_configuration_result.messages [items].description |
<string> | Optional; | |
| layout_configuration_result.messages [items].severity |
<string> | How severe each message is for the user "info" described a simple fact, "notice" warns the user about something they should be aware of, "error" describes something preventing successful configuration | Optional; Values: info, notice, error; |
| layout_configuration_result. move_conflict |
<object> | If present, gives information about conflicting move operations. | Required properties: [conflicting_data_section, moving_to, moving_from]; Optional; |
| layout_configuration_result. move_conflict.conflicting_data_section |
<string> | The data section involved in the conflict. | |
| layout_configuration_result. move_conflict.moving_from |
<array of <string>> | Data modules being moved from the conflict data section. | |
| layout_configuration_result. move_conflict.moving_from[items] |
<string> | ||
| layout_configuration_result. move_conflict.moving_to |
<array of <string>> | Data modules being moved to the conflict data section. | |
| layout_configuration_result. move_conflict.moving_to[items] |
<string> | ||
| layout_configuration_result. move_conflict.<prop> |
<any> | Optional; | |
| layout_configuration_result.valid | <boolean> | False if proposed configuration is invalid |
Type: layout_diff
A collection of data areas that must be operated on in order to convert one storage layout to another. The order in which those operations take place is additionally specified in the ordering list
{ "create": [ { "data_area": data_area_key, "enabled": boolean, "quota_size_mb": integer } ], "delete": [ { "data_area": data_area_key } ], "disable": [ { "data_area": data_area_key } ], "enable": [ { "data_area": data_area_key } ], "grow": [ { "data_area": data_area_key, "quota_size_mb": integer } ], "move": [ { "data_area": data_area_key, "data_section": string } ], "ordering": [ string ], "reinitialize": [ { "id": string, "mode": string } ], "shrink": [ { "data_area": data_area_key, "quota_size_mb": integer } ] }
| Property Name | Type | Description | Notes |
|---|---|---|---|
| layout_diff | <object> | A collection of data areas that must be operated on in order to convert one storage layout to another. The order in which those operations take place is additionally specified in the ordering list | |
| layout_diff.create | <array of <object>> | Optional; | |
| layout_diff.create[items] | <object> | ||
| layout_diff.create[items].data_area | <data_area_key> | The pair of Data Module name and Data Section ID that uniquely identifies a data area | |
| layout_diff.create[items].enabled | <boolean> | Optional; | |
| layout_diff.create[items].quota_size_mb | <integer> | Optional; | |
| layout_diff.delete | <array of <object>> | Optional; | |
| layout_diff.delete[items] | <object> | ||
| layout_diff.delete[items].data_area | <data_area_key> | The pair of Data Module name and Data Section ID that uniquely identifies a data area | |
| layout_diff.disable | <array of <object>> | Optional; | |
| layout_diff.disable[items] | <object> | ||
| layout_diff.disable[items].data_area | <data_area_key> | The pair of Data Module name and Data Section ID that uniquely identifies a data area | |
| layout_diff.enable | <array of <object>> | Optional; | |
| layout_diff.enable[items] | <object> | ||
| layout_diff.enable[items].data_area | <data_area_key> | The pair of Data Module name and Data Section ID that uniquely identifies a data area | |
| layout_diff.grow | <array of <object>> | Optional; | |
| layout_diff.grow[items] | <object> | ||
| layout_diff.grow[items].data_area | <data_area_key> | The pair of Data Module name and Data Section ID that uniquely identifies a data area | |
| layout_diff.grow[items].quota_size_mb | <integer> | Optional; | |
| layout_diff.move | <array of <object>> | Optional; | |
| layout_diff.move[items] | <object> | ||
| layout_diff.move[items].data_area | <data_area_key> | The pair of Data Module name and Data Section ID that uniquely identifies a data area | |
| layout_diff.move[items].data_section | <string> | Optional; | |
| layout_diff.ordering | <array of <string>> | A list of the property names on this object, in the order in which those operations will be performed. | Optional; |
| layout_diff.ordering[items] | <string> | ||
| layout_diff.reinitialize | <array of <object>> | The list of data sections, and the target modes, that will be reinitialized | Optional; |
| layout_diff.reinitialize[items] | <object> | ||
| layout_diff.reinitialize[items].id | <string> | Optional; | |
| layout_diff.reinitialize[items].mode | <string> | Optional; | |
| layout_diff.shrink | <array of <object>> | Optional; | |
| layout_diff.shrink[items] | <object> | ||
| layout_diff.shrink[items].data_area | <data_area_key> | The pair of Data Module name and Data Section ID that uniquely identifies a data area | |
| layout_diff.shrink[items].quota_size_mb | <integer> | Optional; |