Blockbridge REST API
  • OAuth 2 Token Generation
  • OAuth 2 Token Submission
  • Generate a Persistent Access Token
  • Two-Factor Authentication
  • Schema
  • Methods
  • Parameters
  • Request Status
  • Account
  • User Profile
  • OAuth 2 Access Token
  • Authorization
  • Node
  • Site
  • Network Interface
  • Operating System Device
  • System Datastore
  • System Datastore Device
  • Product
  • Virtual Storage Service
  • Virtual Disk
  • iSCSI Initiator Profile
  • iSCSI Target
  • Snapshot
  • Object Store
  • Events
  • Statistics
  • Extensible Metadata Record
  • CA Certificate
  • Blockbridge REST API

    Document last updated 2025-07-01T06:36:31

    This document describes the Blockbridge REST API.

    The Blockbridge REST API allows you to incorporate secure storage provisioning directly into your services. You can use the API to provision storage of a certain media type like SSD or 10k SAS, reliability (RAID-6, SATA, etc.), or from a certain availability zone, even a certain rack. With the API, you can take snapshots, make thin clones, and initiate backups to an object store like Amazon S3 or OpenStack Swift.

    This document begins with a brief overview of concepts and terminology, how to authenticate to the API, and how to manage application authorizations. This is followed by detailed documentation of the API resources.

    Status Test

    Before you begin, let's ensure that your REST API endpoint is operational. Use curl to connect to the Blockbridge REST API of your management node using HTTPS. Request the resource /api/status.

    $ curl -ik https://mgmt-node/api/status
    HTTP/1.1 200 OK
    Content-Type: application/json
    Content-Length: 29
    Server: Goliath
    Date: Mon, 21 Sep 2015 21:57:56 GMT
    
    {"status":200,"message":"ok"}
    

    Curl

    This document contains numerous examples that use the curl command to talk to the API. Replace 'mgmt-node' in the examples with your own Blockbridge management node hostname. These example commands may also lack authentication information that you'll need to make your experimentation work. You can use HTTP basic authentication, as describe below, with the -u command-line option to get going as quickly as possible.

    Authentication

    Nearly every Blockbridge API call must be executed as an authenticated user. There are a few ways to authenticate to the Blockbridge API.

    Basic Authentication

    You can use HTTP basic authentication, supplying the username and password with each request.

    $ curl -iku user:pass https://mgmt-node/api/status/authorization
    HTTP/1.1 200 OK
    ...
    
    {"type":"basic_creds","serial":"USR1B6B194C40626410", ... }
    

    OAuth 2 Token Generation

    Obtain a reusable, time-limited secure access token. By default, the token expires in one hour.

    POST /api/oauth2/token
    

    The username and password are supplied as arguments.

    $ curl -ik -X POST -H 'Content-Type: application/json' -d '{"grant_type":"password", "username":"user", "password":pass"}' https://mgmt-node/api/oauth2/token 
    HTTP/1.1 201 Created
    
    {
        "access_token": "0/wsu/1OR2g5cSjDWC4Kxx5LcrRhB21Hav74XAaRtdXKLSyr/U5HaAhw", 
        "token_type": "Bearer", 
        "expires_in": 3599, 
        "user": {
            "account": {
                "serial": "ACT076BD94C40626440", 
                "name": "system", 
                "id": "account:1:3"
            }, 
            "id": "session:17:3", 
            "user": {
                "serial": "USR1B6B894C40626440", 
                "name": "system", 
                "id": "user_profile:1:3"
            }
        }
    }
    

    In the response JSON, pull the token from the access_token field.

    OAuth 2 Token Submission

    Submit the access token in the HTTP header of each request, as Authorization: Bearer <token>.

    $ curl -ik -H "Authorization: Bearer 1/wSijaLxU7sLhOeSDnAluOFRFdQ51rv9yX2s6/aGJksGBKKNovFTtgw" https://mgmt-node/api/status/authorization/
    HTTP/1.1 200 OK
    ...
    
    {
        "account": {
            "serial": "ACT076BD94C40626460", 
            "name": "user"
        }, 
        "created_at": "2015-09-22T11:11:26.000-04:00", 
        ...
    }
    

    Generate a Persistent Access Token

    For long-term use, create a persistent access token that never expires. These long-lived tokens are managed using the authorization resource. A user may have more than one, and they may be individually revoked.

    $ curl -iku user:pass -d '' https://mgmt-node/api/authorization
    HTTP/1.1 201 Created
    ...
    
    {
        "app_id": null, 
        "access_type": "online", 
        "restrict": "auth", 
        "lifetime": null, 
        "serial": "ATH476B094C40626410", 
        "id": "authz:4:3", 
        "user_id": "user_profile:4:3", 
        "access_token_digest": "DXglP+STaihfPyNC2Mo5g2bfVzsXEryOLSv97MvmX9o", 
        "expires_in": null, 
        "access_token": "1/wSijaLxU7sLhOeSDnAluOFRFdQ51rv9yX2s6/aGJksGBKKNovFTtgw", 
        "created_at": "2015-09-22T11:11:26.744-04:00", 
    }
    

    Two-Factor Authentication

    Each user account has individual control over its two-factor authentication parameters. When enabled, a basic authentication request will fail with 401 Unauthorized and X-Blockbridge-OTP: required.

    $ curl -iku user:pass  https://mgmt-node/api/status/authorization/ 
    HTTP/1.1 401 Unauthorized
    X-Blockbridge-OTP: required
    

    To continue submitting requests for this user, you must generate a time-limited OAuth2 token, supplying the username and password inside the JSON body of the request, along with the appropriate OTP in the request header:

    $ curl -ik -X POST -H 'X-Blockbridge-OTP: 609179' -H 'Content-Type: application/json' -d '{"grant_type":"password", "username":"user", "password":"pass"}' https://mgmt-node/api/oauth2/token 
    HTTP/1.1 201 Created
    ...
    

    Schema

    The Blockbridge API is described by a machine-readable JSON schema. Retrieve the schema directly from your management node with the following command line:

    curl https://mgmt-node/schema/
    

    Methods

    The API uses a standard set of HTTP verbs for RESTful services.

    MethodUsage
    GETUsing the GET method, a client is able to retrieve detailed information about any object in the system. Clients can enumerate objects of each resource type. And, they can obtain sets of user events and statistics for each object.
    DELETERemoves an object from the system. DELETE is idempotent, and multiple attempts to remove an object will receive the same result.
    PATCHUpdates an objects configuration. Blockbridge typically uses PATCH to effect partial updates, as there are very few cases where an object is replaced wholesale.
    POSTCreates a new object.
    PUTReplaces an object's configuration. These few cases are called out in the documentation to follow.

    Parameters

    Submit JSON-encoded parameters in the request body. Actions may have both required and optional parameters, as defined by the schema. Some GET requests have URL-encoded parameters.

    Request Status

    The HTTP status in the response indicates whether a request succeeded or failed. Successful requests receive a JSON-formatted document in response, as described by the schema.

    Success

    StatusDescription
    200 OKrequest succeeded
    201 Createdresource created
    204 No Contentrequest succeeded, but no response body returned

    Error Responses

    When a request fails, the HTTP status code indicates the reason for the failure. Where applicable, JSON-encoded data in the response body offers additional clarification. There are two classes of errors. Client errors result from malformed requests and should be addressed by the client. Blockbridge errors result from problems on the server side.

    Client Errors

    StatusDescription
    400 Bad Requestinvalid request format
    401 Unauthorizedauthentication required
    403 Forbiddenaccess denied to specified resource
    404 Not Foundresource not found
    405 Method Not Allowedmethod not supported by resource
    410 Resource Deletedresource has been deleted

    Blockbridge Errors

    StatusDescription
    500 Internal Server Errorunexpected server failure, internal error
    503 Service Unavailableserver busy, try again later

    Validation Failure

    A request that fails with HTTP status 400 (Bad Request) is likely due to a validation failure. The response body contains detailed information on one or more fields that are in error.

    NameTypeDescriptionExample
    messagestringhuman-readable error messageparameter validation failure
    typestringerror typevalidation
    errorsarraylist of fields and corresponding errors
    statusintegerHTTP status code400

    Each element in the errors array has the schema shown below

    Validation Failure Error

    NameTypeDescriptionExample
    typestringfailure typemissing
    fieldstringJSON field name/capacity
    msgstringhuman-readable error messagemust be present

    Example

    Attempt to create a virtual disk, but neglect to include its capacity. The request fails with HTTP status 400, and the response indicates that the /capacity field is missing.

    $ curl -iku system:system -X POST -H 'Content-Type: application/json' -d '{"vss_id":"VSS186B994C40626440"}' https://mgmt-node/api/vdisk/
    HTTP/1.1 400 Bad Request
    
    {
        "status": 400, 
        "message": "parameter validation failure", 
        "errors": [
            {
                "msg": "must be present", 
                "field": "/capacity", 
                "type": "missing"
            }
        ], 
        "type": "validation"
    }
    

    Account

    Blockbridge is a secure multi-tenant storage system. Each tenant has an Account which is isolated from every other tenant Account. All of the tenant's storage, configuration data, credentials, audit history, and statistics - anything that could be considered private data - is inaccessible to other Accounts.

    Accounts have one or more Users, who are each assigned a set of permissions that control the actions they may perform. One user may be simply an observer: able to query state, but unable to change anything. Another user may be able to provision services, but not remove any existing ones. Another is permitted to manage crypto keys.

    Lastly, the Account object contains contact information for the primary account holder.

    Attributes

    NameTypeDescription
    idstringobject id
    uuiduuidobject uuid
    ctimeintegeraccount create time
    Range: 0 <= value
    mtimeintegeraccount last modified time
    Range: 0 <= value
    idp:idstringno documentation
    idp:labelstringno documentation
    idp:typestringidentity provider type
    one of:"internal" or "openstack"
    serialstringserial number
    usage_idstringaccount_usage id
    disabledbooleanaccount is disabled
    namestringaccount name
    primary_contact:first_namestringFirst Name
    default: ""
    Length: 0..255
    primary_contact:last_namestringLast Name
    default: ""
    Length: 0..255
    primary_contact:companystringcompany name
    Length: 0..255
    primary_contact:address:addrarrayphysical address lines
    primary_contact:address:citystringcity
    primary_contact:address:statestringstate
    primary_contact:address:zipstringzip code
    primary_contact:address:countrystringcountry
    default: "US"
    primary_contact:phone:numberstringPhone number
    Length: 0..24
    primary_contact:phone:validbooleanphone number has been verified for SMS
    primary_contact:phone:tokenstringSMS verification token
    primary_contact:email:addrstringemail address
    Length: 0..255
    primary_contact:email:validbooleanaddress has been verified
    primary_contact:email:tokenstringaddress verification token
    billing_contactnullable objectbilling contact information
    billing_contact:first_namestringFirst Name
    default: ""
    Length: 0..255
    billing_contact:last_namestringLast Name
    default: ""
    Length: 0..255
    billing_contact:companystringcompany name
    Length: 0..255
    billing_contact:address:addrarrayphysical address lines
    billing_contact:address:citystringcity
    billing_contact:address:statestringstate
    billing_contact:address:zipstringzip code
    billing_contact:address:countrystringcountry
    default: "US"
    billing_contact:phone:numberstringPhone number
    Length: 0..24
    billing_contact:phone:validbooleanphone number has been verified for SMS
    billing_contact:phone:tokenstringSMS verification token
    billing_contact:email:addrstringemail address
    Length: 0..255
    billing_contact:email:validbooleanaddress has been verified
    billing_contact:email:tokenstringaddress verification token
    admin_profile_idstringaccount administrative user
    limits:vss_numnullable integernumber of virtual storage services
    limits:size_reserve_totalnullable integermaximum size of storage
    provisioning:size_reserve_maxnullable integermaximum size reserve of a single virtual storage service
    provisioning:iops_reserve_maxnullable integermaximum iops reserve of a single virtual storage service
    provisioning:tags_includearraytags included
    default: []
    provisioning:tags_excludearraytags excluded
    default: []
    provisioning:tags_permitnullable arraytags permitted
    provisioning:tags_permitnullable arraytags permitted

    Account Info

    Retrieve an existing account.

    GET /account/{account_id_or_serial}
    

    Curl Example

    $ curl https://mgmt-node/api/account/account:10:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:55 GMT
    Server: Goliath
    ETag: "b79489b7c6d35e1095871de7ebd93436"
    Content-Type: application/json
    Content-Length: 649
    
    {
      "id": "account:10:10",
      "uuid": "c432e1f5-074d-4ecb-9078-7a5b50574fc0",
      "serial": "ACT0762194C406264FE",
      "evt_qry": "serial=ACT0762194C406264FE",
      "ctime": 1507570012941,
      "mtime": 1507570013202,
      "seq": 1507570013297,
      "status": null,
      "ec": {
        "status": "retrieving",
        "table": null,
        "seq": 1507570012954
      },
      "rec_status": null,
      "usage_id": "account_usage:10:10",
      "name": "account42",
      "primary_contact": {
        "first_name": "",
        "last_name": ""
      },
      "billing_contact": null,
      "admin_profile_id": "user_profile:15:10",
      "disabled": false,
      "limits": {
        "vss_num": 32,
        "size_reserve_total": null
      },
      "provisioning": {
        "size_reserve_max": null,
        "iops_reserve_max": null,
        "tags_include": [
    
        ],
        "tags_exclude": [
    
        ],
        "tags_permit": null
      }
    }
    

    Account List

    Enumerate accounts.

    GET /account
    

    Curl Example

    $ curl https://mgmt-node/api/account \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:53 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 1504
    
    [
      {
        "id": "account:1:10",
        "uuid": "1fb3cea1-0778-4090-a288-d9f7a456f31b",
        "serial": "ACT0762194C40626445",
        "evt_qry": "serial=ACT0762194C40626445",
        "ctime": 1507562835275,
        "mtime": 1507569805914,
        "seq": 1507570010663,
        "status": null,
        "ec": {
          "status": "current",
          "table": {
            "time": 1507570010000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  192,
                  226,
                  226,
                  226
                ],
                "v": "dbg"
              },
              {
                "d": [
                  118,
                  145,
                  145,
                  145
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  9,
                  10,
                  10,
                  10
                ],
                "v": "err"
              }
            ]
          },
          "seq": 1507570010663
        },
        "rec_status": null,
        "usage_id": "account_usage:1:10",
        "name": "system",
        "primary_contact": {
          "first_name": "System user",
          "last_name": ""
        },
        "billing_contact": null,
        "admin_profile_id": "user_profile:1:10",
        "disabled": false,
        "limits": {
          "vss_num": null,
          "size_reserve_total": null
        },
        "provisioning": {
          "size_reserve_max": null,
          "iops_reserve_max": null,
          "tags_include": [
    
          ],
          "tags_exclude": [
    
          ],
          "tags_permit": null
        }
      },
      {
        "id": "account:10:10",
        "uuid": "c432e1f5-074d-4ecb-9078-7a5b50574fc0",
        "serial": "ACT0762194C406264FE",
        "evt_qry": "serial=ACT0762194C406264FE",
        "ctime": 1507570012941,
        "mtime": 1507570013202,
        "seq": 1507570013297,
        "status": null,
        "ec": {
          "status": "retrieving",
          "table": null,
          "seq": 1507570012954
        },
        "rec_status": null,
        "usage_id": "account_usage:10:10",
        "name": "account42",
        "primary_contact": {
          "first_name": "",
          "last_name": ""
        },
        "billing_contact": null,
        "admin_profile_id": "user_profile:15:10",
        "disabled": false,
        "limits": {
          "vss_num": 32,
          "size_reserve_total": null
        },
        "provisioning": {
          "size_reserve_max": null,
          "iops_reserve_max": null,
          "tags_include": [
    
          ],
          "tags_exclude": [
    
          ],
          "tags_permit": null
        }
      }
    ]
    

    Account Create

    Create a new account.

    POST /account
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | name | string | account name
    Length: 1..64 |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | password | string | password to set in primary user profile
    Length: 3..∞ | | permissions:realm:rights:can_switch_user | boolean | can SU to lower level user | | permissions:realm:rights:manage_node_membership | boolean | accept or delete nodes from the management network | | permissions:realm:rights:manage_accounts | boolean | can create or delete other accounts, users and their settings | | permissions:realm:rights:view_logs | boolean | view administrative logs | | permissions:realm:rights:run_admin_tasks | boolean | run realm administrative tasks | | permissions:realm:rights:run_tests | boolean | run realm administrative tests | | permissions:node:all_realm_scope | boolean | apply to all nodes in the realm
    default: true | | permissions:node:nodes | array | scope permissions to specific nodes | | permissions:node:rights:manage_storage | boolean | configure OS devices, iSCSI devices, and system datastores | | permissions:node:rights:manage_networks | boolean | configure networks | | permissions:node:rights:provision_vss | boolean | manually provision virtual storage services | | permissions:node:rights:remove_vss | boolean | remove virtual storage services | | permissions:vss:all_account_scope | boolean | apply to all virtual storage services in the account
    default: true | | permissions:vss:vsses | array | limit scope to specified vsses | | permissions:vss:rights:dismiss_tasks | boolean | dismiss tasks | | permissions:vss:rights:update_vss | boolean | update vss configuration | | permissions:vss:rights:remove_vss | boolean | remove vss | | permissions:vss:rights:set_vss_quota | boolean | set vss quota | | permissions:vss:rights:manage_internal_disks | boolean | manage internal disks | | permissions:vss:rights:manage_external_disks | boolean | manage external disks | | permissions:vss:rights:manage_removable_disks | boolean | manage removable disks | | permissions:vss:rights:manage_disk_cryptography | boolean | manage disk cryptography | | permissions:vss:rights:remove_locked_disks | boolean | remove locked disks | | permissions:vss:rights:validate_data_integrity | boolean | validate data integrity | | permissions:vss:rights:manage_targets | boolean | manage targets | | permissions:vss:rights:manage_profiles | boolean | manage profiles | | permissions:vss:rights:manage_secure_access_tokens | boolean | manage secure access tokens | | permissions:vss:rights:manage_rules | boolean | manage rules | | permissions:vss:rights:replicate_disks | boolean | replicate disks | | permissions:vss:rights:synchronize_disks | boolean | synchronize disks | | permissions:vss:rights:format_disks | boolean | format disks | | permissions:vss:rights:resize_disks | boolean | resize disks | | permissions:vss:rights:manage_snapshots | boolean | manage snapshots | | permissions:vss:rights:backup_disks | boolean | backup disks | | permissions:vss:rights:replicate_and_synchronize_disks | boolean | replicate and synchronize disks (DEPRECATED) | | permissions:vss:rights:compress_disks | boolean | compress disks | | permissions:vss:rights:manage_disk_compression | boolean | manage disk | | permissions:user:rights:manage_users | boolean | create or delete users in an account | | permissions:user:rights:modify_user_contact_settings | boolean | modify user contact info | | permissions:user:rights:reset_user_password | boolean | reset user password | | permissions:user:rights:reset_user_two_factor | boolean | reset two factor authentication | | permissions:user:rights:manage_authorizations | boolean | create or delete persistent authorizations | | permissions:account:rights:modify_contact_settings | boolean | modify account contact settings | | permissions:account:rights:view_events | boolean | view events | | permissions:account:rights:view_statistics | boolean | view statistics | | permissions:account:rights:manage_global_profiles | boolean | manage global profiles | | permissions:account:rights:manage_global_secure_access_tokens | boolean | manage global secure access tokens | | permissions:account:rights:query_catalog | boolean | query product catalog | | permissions:account:rights:provision_vss | boolean | provision vss from catalog | | permissions:account:rights:manage_obj_stores | boolean | manage obj stores | | permissions:account:rights:read_object_storage | boolean | read from object storage | | permissions:account:rights:write_object_storage | boolean | write to object storage | | permissions:account:rights:delete_object_storage | boolean | delete from object storage | | level | integer | privilege level | | access:web | boolean | web access permitted
    default: true | | access:api | boolean | api access permitted | | activated | boolean | user profile activated | | primary_contact:first_name | string | First Name
    default: ""
    Length: 0..255 | | primary_contact:last_name | string | Last Name
    default: ""
    Length: 0..255 | | primary_contact:company | string | company name
    Length: 0..255 | | primary_contact:address:addr | array | physical address lines | | primary_contact:address:city | string | city | | primary_contact:address:state | string | state | | primary_contact:address:zip | string | zip code | | primary_contact:address:country | string | country
    default: "US" | | primary_contact:phone | string | phone number
    Length: 0..24 | | primary_contact:email | email | email address
    Length: 0..128 | | billing_contact:first_name | string | First Name
    default: ""
    Length: 0..255 | | billing_contact:last_name | string | Last Name
    default: ""
    Length: 0..255 | | billing_contact:company | string | company name
    Length: 0..255 | | billing_contact:address:addr | array | physical address lines | | billing_contact:address:city | string | city | | billing_contact:address:state | string | state | | billing_contact:address:zip | string | zip code | | billing_contact:address:country | string | country
    default: "US" | | billing_contact:phone | string | phone number
    Length: 0..24 | | billing_contact:email | email | email address
    Length: 0..128 | | limits:vss_num | nullable integer | number of virtual storage services | | limits:size_reserve_total | nullable integer | maximum size of storage | | provisioning:size_reserve_max | nullable integer | maximum size reserve of a single virtual storage service | | provisioning:iops_reserve_max | nullable integer | maximum iops reserve of a single virtual storage service | | provisioning:tags_include | array | tags included
    default: [] | | provisioning:tags_exclude | array | tags excluded
    default: [] | | provisioning:tags_permit | nullable array | tags permitted | | provisioning:tags_permit | nullable array | tags permitted | | uuid | uuid | account UUID | | user_uuid | uuid | user profile UUID | | template | string | accounte template |

    Curl Example

    $ curl -X POST https://mgmt-node/api/account \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "name": "account42"
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:26:52 GMT
    Server: Goliath
    ETag: "52c9ce267e5b151a1d7e1e6bd8af120d"
    Content-Type: application/json
    Content-Length: 651
    
    {
      "id": "account:10:10",
      "uuid": "c432e1f5-074d-4ecb-9078-7a5b50574fc0",
      "serial": "ACT0762194C406264FE",
      "evt_qry": "serial=ACT0762194C406264FE",
      "ctime": 1507570012941,
      "mtime": 1507570012942,
      "seq": 1507570012954,
      "status": null,
      "ec": {
        "status": "retrieving",
        "table": null,
        "seq": 1507570012954
      },
      "rec_status": null,
      "usage_id": "account_usage:10:10",
      "name": "account42",
      "primary_contact": {
        "first_name": "",
        "last_name": ""
      },
      "billing_contact": null,
      "admin_profile_id": "user_profile:15:10",
      "disabled": false,
      "limits": {
        "vss_num": null,
        "size_reserve_total": null
      },
      "provisioning": {
        "size_reserve_max": null,
        "iops_reserve_max": null,
        "tags_include": [
    
        ],
        "tags_exclude": [
    
        ],
        "tags_permit": null
      }
    }
    

    Account Remove

    Remove an existing account.

    DELETE /account/{account_id_or_serial}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/account/account:10:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:38 GMT
    Server: Goliath
    

    Account Update

    Change the configuration of an existing account.

    PATCH /account/{account_id_or_serial}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | host | string | server hostname originating request (for url) | | primary_contact:first_name | string | First Name
    Length: 0..255 | | primary_contact:last_name | string | Last Name
    Length: 0..255 | | primary_contact:company | string | company name
    Length: 0..255 | | primary_contact:address:addr | array | physical address lines | | primary_contact:address:city | string | city | | primary_contact:address:state | string | state | | primary_contact:address:zip | string | zip code | | primary_contact:address:country | string | country | | primary_contact:phone | string | phone number
    Length: 0..24 | | primary_contact:email | email | email address
    Length: 0..128 | | billing_contact:first_name | string | First Name
    Length: 0..255 | | billing_contact:last_name | string | Last Name
    Length: 0..255 | | billing_contact:company | string | company name
    Length: 0..255 | | billing_contact:address:addr | array | physical address lines | | billing_contact:address:city | string | city | | billing_contact:address:state | string | state | | billing_contact:address:zip | string | zip code | | billing_contact:address:country | string | country | | billing_contact:phone | string | phone number
    Length: 0..24 | | billing_contact:email | email | email address
    Length: 0..128 | | password | string | password of primary user profile
    Length: 3..∞ | | limits:vss_num | nullable integer | number of virtual storage services | | limits:size_reserve_total | nullable integer | maximum size of storage | | provisioning:size_reserve_max | nullable integer | maximum size reserve of a single virtual storage service | | provisioning:iops_reserve_max | nullable integer | maximum iops reserve of a single virtual storage service | | provisioning:tags_include | array | tags included | | provisioning:tags_exclude | array | tags excluded | | provisioning:tags_permit | nullable array | tags permitted | | provisioning:tags_permit | nullable array | tags permitted |

    Curl Example

    $ curl -X PATCH https://mgmt-node/api/account/account:10:10 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "limits": {
        "vss_num": 32
      }
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:53 GMT
    Server: Goliath
    ETag: "b79489b7c6d35e1095871de7ebd93436"
    Content-Type: application/json
    Content-Length: 649
    
    {
      "id": "account:10:10",
      "uuid": "c432e1f5-074d-4ecb-9078-7a5b50574fc0",
      "serial": "ACT0762194C406264FE",
      "evt_qry": "serial=ACT0762194C406264FE",
      "ctime": 1507570012941,
      "mtime": 1507570013202,
      "seq": 1507570013297,
      "status": null,
      "ec": {
        "status": "retrieving",
        "table": null,
        "seq": 1507570012954
      },
      "rec_status": null,
      "usage_id": "account_usage:10:10",
      "name": "account42",
      "primary_contact": {
        "first_name": "",
        "last_name": ""
      },
      "billing_contact": null,
      "admin_profile_id": "user_profile:15:10",
      "disabled": false,
      "limits": {
        "vss_num": 32,
        "size_reserve_total": null
      },
      "provisioning": {
        "size_reserve_max": null,
        "iops_reserve_max": null,
        "tags_include": [
    
        ],
        "tags_exclude": [
    
        ],
        "tags_permit": null
      }
    }
    

    Account Usage

    Display usage for an existing account.

    GET /account/{account_id_or_serial}/usage
    

    Curl Example

    $ curl https://mgmt-node/api/account/account:10:10/usage \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:53 GMT
    Server: Goliath
    ETag: "13f732476b4b2e858afe17d3f88a9350"
    Content-Type: application/json
    Content-Length: 150
    
    {
      "size_reserve": 0,
      "iops_reserve": 0,
      "vss_num": 0,
      "vdisk_num": 0,
      "clones_num": 0,
      "repl_num": 0,
      "snapshot_num": 0,
      "target_num": 0,
      "profile_num": 0,
      "user_num": 1
    }
    

    User Profile

    An Account has one or more Users, who are permitted to administer and consume storage according to various defined roles. Each User has a profile object that has the User's name, email address, password and two-factor authentication information for the API and web application.

    Attributes

    NameTypeDescription
    idstringobject id
    uuiduuidobject uuid
    ctimeintegeruser profile create time
    Range: 0 <= value
    mtimeintegeruser profile last modified time
    Range: 0 <= value
    email_notifybooleanemail notifications enabled
    emailnullable emailemail address
    Length: 0..128
    email_verifiedbooleanemail address has been verified
    sms_notifybooleanSMS notifications enabled
    smsnullable objectnotification number for SMS
    sms:numberstringPhone number
    Length: 0..24
    sms:validbooleanphone number has been verified for SMS
    sms:tokenstringSMS verification token
    loginstringusername
    password_setbooleanis password non-null?
    allow_subooleanadmin allowed to SU to this user
    levelintegeruser privilege level
    timezonestringtimezone
    one of:"local"
    activatedbooleanuser profile activated
    idp:idstringno documentation
    idp:labelstringno documentation
    idp:typestringidentity provider type
    one of:"internal" or "openstack"
    account_adminbooleanuser has account-wide administrative control
    two_factor:authstringtwo-factor authentication type
    one of:"none" or "yubikey" or "google"
    two_factor:yubikey_idstringyubikey OTP for binding unique yubikey to profile
    two_factor:security_emailnullable objectsecurity email address
    two_factor:security_email:addremailsecurity email address
    Length: 0..128
    two_factor:security_email:verifiedbooleansecurity email address has been verified
    two_factor:security_email:bouncebooleanemail is bouncing to security_email_addr
    permissions:realm:rights:can_switch_userbooleancan SU to lower level user
    permissions:realm:rights:manage_node_membershipbooleanaccept or delete nodes from the management network
    permissions:realm:rights:manage_accountsbooleancan create or delete other accounts, users and their settings
    permissions:realm:rights:view_logsbooleanview administrative logs
    permissions:realm:rights:run_admin_tasksbooleanrun realm administrative tasks
    permissions:realm:rights:run_testsbooleanrun realm administrative tests
    permissions:node:all_realm_scopebooleanapply to all nodes in the realm
    permissions:node:nodesarrayscope permissions to specific nodes
    permissions:node:rights:manage_storagebooleanconfigure OS devices, iSCSI devices, and system datastores
    permissions:node:rights:manage_networksbooleanconfigure networks
    permissions:node:rights:provision_vssbooleanmanually provision virtual storage services
    permissions:node:rights:remove_vssbooleanremove virtual storage services
    permissions:vss:all_account_scopebooleanapply to all virtual storage services in the account
    permissions:vss:vssesarraylimit scope to specified vsses
    permissions:vss:rights:dismiss_tasksbooleandismiss tasks
    permissions:vss:rights:update_vssbooleanupdate vss configuration
    permissions:vss:rights:remove_vssbooleanremove vss
    permissions:vss:rights:set_vss_quotabooleanset vss quota
    permissions:vss:rights:manage_internal_disksbooleanmanage internal disks
    permissions:vss:rights:manage_external_disksbooleanmanage external disks
    permissions:vss:rights:manage_removable_disksbooleanmanage removable disks
    permissions:vss:rights:manage_disk_cryptographybooleanmanage disk cryptography
    permissions:vss:rights:remove_locked_disksbooleanremove locked disks
    permissions:vss:rights:validate_data_integritybooleanvalidate data integrity
    permissions:vss:rights:manage_targetsbooleanmanage targets
    permissions:vss:rights:manage_profilesbooleanmanage profiles
    permissions:vss:rights:manage_secure_access_tokensbooleanmanage secure access tokens
    permissions:vss:rights:manage_rulesbooleanmanage rules
    permissions:vss:rights:replicate_disksbooleanreplicate disks
    permissions:vss:rights:synchronize_disksbooleansynchronize disks
    permissions:vss:rights:format_disksbooleanformat disks
    permissions:vss:rights:resize_disksbooleanresize disks
    permissions:vss:rights:manage_snapshotsbooleanmanage snapshots
    permissions:vss:rights:backup_disksbooleanbackup disks
    permissions:vss:rights:replicate_and_synchronize_disksbooleanreplicate and synchronize disks (DEPRECATED)
    permissions:vss:rights:compress_disksbooleancompress disks
    permissions:vss:rights:manage_disk_compressionbooleanmanage disk
    permissions:user:rights:manage_usersbooleancreate or delete users in an account
    permissions:user:rights:modify_user_contact_settingsbooleanmodify user contact info
    permissions:user:rights:reset_user_passwordbooleanreset user password
    permissions:user:rights:reset_user_two_factorbooleanreset two factor authentication
    permissions:user:rights:manage_authorizationsbooleancreate or delete persistent authorizations
    permissions:account:rights:modify_contact_settingsbooleanmodify account contact settings
    permissions:account:rights:view_eventsbooleanview events
    permissions:account:rights:view_statisticsbooleanview statistics
    permissions:account:rights:manage_global_profilesbooleanmanage global profiles
    permissions:account:rights:manage_global_secure_access_tokensbooleanmanage global secure access tokens
    permissions:account:rights:query_catalogbooleanquery product catalog
    permissions:account:rights:provision_vssbooleanprovision vss from catalog
    permissions:account:rights:manage_obj_storesbooleanmanage obj stores
    permissions:account:rights:read_object_storagebooleanread from object storage
    permissions:account:rights:write_object_storagebooleanwrite to object storage
    permissions:account:rights:delete_object_storagebooleandelete from object storage
    access:webbooleanweb access permitted
    access:apibooleanAPI access permitted
    app_defaultstringdefault web-ui application
    one of:"storage" or "infrastructure" or "account" or "securedrive"
    account_idstringaccount ref
    serialstringuser profile serial number
    xmd_refsarrayarray of extensible metadata reference keys
    xrefstringarbitrary string reference
    Length: 1..256
    sessions/serialstringsession serial number
    sessions/idstringsession id
    sessions/created_msintegercreation time, in milliseconds since epoch
    Range: 0 <= value
    sessions/last_msintegertime of last activity on session
    Range: 0 <= value
    sessions/addrnullable stringsource IP of last request on session
    xmd/idstringno documentation
    xmd/refstringarbitrary string reference key
    Length: 1..256
    xmd/mtimeintegerlast modified time of xmd
    Range: 0 <= value
    xmd/tagsarrayobject tags
    xmd/selfbooleanno documentation
    xmd/datanullable stringno documentation

    User Profile Info

    Retrieve an existing user profile.

    GET /user-profile/{user_profile_id_or_serial}
    

    Curl Example

    $ curl https://mgmt-node/api/user-profile/user_profile:16:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:54 GMT
    Server: Goliath
    ETag: "14ea1ef48b481c651dfac513537e09a5"
    Content-Type: application/json
    Content-Length: 2070
    
    {
      "id": "user_profile:16:10",
      "uuid": "11bccdde-f3b6-4b65-a28f-25d0463b1564",
      "serial": "USR1B62194C4062655E",
      "evt_qry": "serial=USR1B62194C4062655E",
      "account_id": "account:10:10",
      "ctime": 1507570014375,
      "mtime": 1507570014709,
      "seq": 1507570014716,
      "label": null,
      "status": null,
      "ec": {
        "table": null,
        "status": "retrieving",
        "seq": 1507570014382
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "login": "account421@account42",
      "activated": false,
      "app_default": "storage",
      "access": {
        "web": true,
        "api": true
      },
      "permissions": {
        "node": {
          "all_realm_scope": false,
          "nodes": [
    
          ],
          "rights": {
            "manage_storage": false,
            "manage_networks": false,
            "provision_vss": false,
            "remove_vss": false
          }
        },
        "vss": {
          "all_account_scope": true,
          "rights": {
            "dismiss_tasks": true,
            "update_vss": true,
            "remove_vss": true,
            "set_vss_quota": true,
            "manage_internal_disks": true,
            "manage_external_disks": true,
            "manage_removable_disks": true,
            "manage_disk_cryptography": true,
            "remove_locked_disks": true,
            "replicate_disks": true,
            "synchronize_disks": true,
            "format_disks": true,
            "resize_disks": true,
            "backup_disks": true,
            "validate_data_integrity": true,
            "manage_snapshots": true,
            "manage_targets": true,
            "manage_profiles": true,
            "manage_secure_access_tokens": true,
            "manage_rules": true
          }
        },
        "realm": {
          "rights": {
            "can_switch_user": false,
            "manage_node_membership": false,
            "manage_accounts": false,
            "view_logs": false,
            "run_admin_tasks": false,
            "run_tests": false
          }
        },
        "user": {
          "rights": {
            "manage_users": true,
            "modify_user_contact_settings": true,
            "reset_user_password": true,
            "reset_user_two_factor": true,
            "manage_authorizations": true
          }
        },
        "account": {
          "rights": {
            "modify_contact_settings": true,
            "manage_global_profiles": true,
            "manage_global_secure_access_tokens": true,
            "view_events": true,
            "view_statistics": true,
            "query_catalog": true,
            "provision_vss": true,
            "manage_obj_stores": true,
            "read_object_storage": true,
            "write_object_storage": true,
            "delete_object_storage": true
          }
        }
      },
      "account_admin": false,
      "allow_su": false,
      "level": 0,
      "timezone": "local",
      "two_factor": {
        "auth": "none"
      },
      "email": null,
      "email_notify": false,
      "email_verified": false,
      "sms": {
        "number": "XXX-XXX-XXXX",
        "valid": false
      },
      "sms_notify": false,
      "password_set": true,
      "sessions": [
    
      ]
    }
    

    User Profile List

    Enumerate user profiles.

    GET /user-profile
    

    Curl Example

    $ curl https://mgmt-node/api/user-profile \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:54 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 7744
    
    [
      {
        "id": "user_profile:16:10",
        "uuid": "11bccdde-f3b6-4b65-a28f-25d0463b1564",
        "serial": "USR1B62194C4062655E",
        "evt_qry": "serial=USR1B62194C4062655E",
        "account_id": "account:10:10",
        "ctime": 1507570014375,
        "mtime": 1507570014375,
        "seq": 1507570014382,
        "label": null,
        "status": null,
        "ec": {
          "table": null,
          "status": "retrieving",
          "seq": 1507570014382
        },
        "rec_status": null,
        "xmd_refs": [
    
        ],
        "xref": null,
        "xmd": null,
        "login": "account421@account42",
        "activated": true,
        "app_default": "storage",
        "access": {
          "web": true,
          "api": true
        },
        "permissions": {
          "node": {
            "all_realm_scope": false,
            "nodes": [
    
            ],
            "rights": {
              "manage_storage": false,
              "manage_networks": false,
              "provision_vss": false,
              "remove_vss": false
            }
          },
          "vss": {
            "all_account_scope": true,
            "rights": {
              "dismiss_tasks": true,
              "update_vss": true,
              "remove_vss": true,
              "set_vss_quota": true,
              "manage_internal_disks": true,
              "manage_external_disks": true,
              "manage_removable_disks": true,
              "manage_disk_cryptography": true,
              "remove_locked_disks": true,
              "replicate_disks": true,
              "synchronize_disks": true,
              "format_disks": true,
              "resize_disks": true,
              "backup_disks": true,
              "validate_data_integrity": true,
              "manage_snapshots": true,
              "manage_targets": true,
              "manage_profiles": true,
              "manage_secure_access_tokens": true,
              "manage_rules": true
            }
          },
          "realm": {
            "rights": {
              "can_switch_user": false,
              "manage_node_membership": false,
              "manage_accounts": false,
              "view_logs": false,
              "run_admin_tasks": false,
              "run_tests": false
            }
          },
          "user": {
            "rights": {
              "manage_users": true,
              "modify_user_contact_settings": true,
              "reset_user_password": true,
              "reset_user_two_factor": true,
              "manage_authorizations": true
            }
          },
          "account": {
            "rights": {
              "modify_contact_settings": true,
              "manage_global_profiles": true,
              "manage_global_secure_access_tokens": true,
              "view_events": true,
              "view_statistics": true,
              "query_catalog": true,
              "provision_vss": true,
              "manage_obj_stores": true,
              "read_object_storage": true,
              "write_object_storage": true,
              "delete_object_storage": true
            }
          }
        },
        "account_admin": false,
        "allow_su": false,
        "level": 0,
        "timezone": "local",
        "two_factor": {
          "auth": "none"
        },
        "email": null,
        "email_notify": false,
        "email_verified": false,
        "sms": {
          "number": "XXX-XXX-XXXX",
          "valid": false
        },
        "sms_notify": false,
        "password_set": true,
        "sessions": [
    
        ]
      },
      {
        "id": "user_profile:1:10",
        "uuid": "f687e09f-85b4-4cad-8e6a-6b8622fb6f8d",
        "serial": "USR1B62194C40626440",
        "evt_qry": "serial=USR1B62194C40626440",
        "account_id": "account:1:10",
        "ctime": 1507562835275,
        "mtime": 1507562839801,
        "seq": 1507570013664,
        "label": null,
        "status": null,
        "ec": {
          "table": {
            "time": 1507570013000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  196,
                  230,
                  230,
                  230
                ],
                "v": "dbg"
              },
              {
                "d": [
                  120,
                  146,
                  146,
                  146
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  9,
                  10,
                  10,
                  10
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507570013664
        },
        "rec_status": null,
        "xmd_refs": [
    
        ],
        "xref": null,
        "xmd": null,
        "login": "system",
        "activated": true,
        "app_default": "infrastructure",
        "access": {
          "web": true,
          "api": true
        },
        "permissions": {
          "node": {
            "all_realm_scope": true,
            "rights": {
              "manage_storage": true,
              "manage_networks": true,
              "provision_vss": true,
              "remove_vss": true
            }
          },
          "vss": {
            "all_account_scope": true,
            "rights": {
              "dismiss_tasks": true,
              "update_vss": true,
              "remove_vss": true,
              "set_vss_quota": true,
              "manage_internal_disks": true,
              "manage_external_disks": true,
              "manage_removable_disks": true,
              "manage_disk_cryptography": true,
              "remove_locked_disks": true,
              "replicate_disks": true,
              "synchronize_disks": true,
              "format_disks": true,
              "resize_disks": true,
              "backup_disks": true,
              "validate_data_integrity": true,
              "manage_snapshots": true,
              "manage_targets": true,
              "manage_profiles": true,
              "manage_secure_access_tokens": true,
              "manage_rules": true
            }
          },
          "realm": {
            "rights": {
              "can_switch_user": true,
              "manage_node_membership": true,
              "manage_accounts": true,
              "view_logs": true,
              "run_admin_tasks": true,
              "run_tests": true
            }
          },
          "user": {
            "rights": {
              "manage_users": true,
              "modify_user_contact_settings": true,
              "reset_user_password": true,
              "reset_user_two_factor": true,
              "manage_authorizations": true
            }
          },
          "account": {
            "rights": {
              "modify_contact_settings": true,
              "manage_global_profiles": true,
              "manage_global_secure_access_tokens": true,
              "view_events": true,
              "view_statistics": true,
              "query_catalog": true,
              "provision_vss": true,
              "manage_obj_stores": true,
              "read_object_storage": true,
              "write_object_storage": true,
              "delete_object_storage": true
            }
          }
        },
        "account_admin": true,
        "allow_su": true,
        "level": 0,
        "timezone": "local",
        "two_factor": {
          "auth": "none"
        },
        "email": null,
        "email_notify": false,
        "email_verified": false,
        "sms": {
          "number": "XXX-XXX-XXXX",
          "valid": false
        },
        "sms_notify": false,
        "password_set": true,
        "sessions": [
          {
            "serial": "SES1662194C40626432",
            "id": "session:6:10",
            "created_ms": 1507566844334,
            "last_ms": 1507566844334,
            "addr": "172.16.5.200"
          },
          {
            "serial": "SES1662194C4062642A",
            "id": "session:7:10",
            "created_ms": 1507567736453,
            "last_ms": 1507569935236,
            "addr": "172.16.9.2"
          },
          {
            "serial": "SES1662194C406264D0",
            "id": "session:8:10",
            "created_ms": 1507567897105,
            "last_ms": 1507567897105,
            "addr": "172.16.5.200"
          },
          {
            "serial": "SES1662194C406264C8",
            "id": "session:9:10",
            "created_ms": 1507567914713,
            "last_ms": 1507567914713,
            "addr": "172.16.5.200"
          },
          {
            "serial": "SES1662194C406264F0",
            "id": "session:10:10",
            "created_ms": 1507567940495,
            "last_ms": 1507568149181,
            "addr": "172.16.5.200"
          },
          {
            "serial": "SES1662194C406264E8",
            "id": "session:11:10",
            "created_ms": 1507568228790,
            "last_ms": 1507569437816,
            "addr": "172.16.5.200"
          },
          {
            "serial": "SES1662194C40626491",
            "id": "session:12:10",
            "created_ms": 1507568321420,
            "last_ms": 1507568321420,
            "addr": "::1"
          },
          {
            "serial": "SES1662194C40626489",
            "id": "session:13:10",
            "created_ms": 1507568758214,
            "last_ms": 1507569935630,
            "addr": "172.16.5.237"
          },
          {
            "serial": "SES1662194C406264B1",
            "id": "session:14:10",
            "created_ms": 1507569793599,
            "last_ms": 1507569793599,
            "addr": "172.16.5.200"
          },
          {
            "serial": "SES1662194C406264A9",
            "id": "session:15:10",
            "created_ms": 1507569963874,
            "last_ms": 1507569963874,
            "addr": "172.16.5.200"
          },
          {
            "serial": "SES1662194C40626555",
            "id": "session:16:10",
            "created_ms": 1507570010499,
            "last_ms": 1507570010499,
            "addr": "172.16.5.200"
          }
        ]
      },
      {
        "id": "user_profile:15:10",
        "uuid": "9af5fd5e-f4b0-411d-9cf8-6f376640d445",
        "serial": "USR1B62194C406264A2",
        "evt_qry": "serial=USR1B62194C406264A2",
        "account_id": "account:10:10",
        "ctime": 1507570012942,
        "mtime": 1507570012942,
        "seq": 1507570012954,
        "label": null,
        "status": null,
        "ec": {
          "table": null,
          "status": "retrieving",
          "seq": 1507570012954
        },
        "rec_status": null,
        "xmd_refs": [
    
        ],
        "xref": null,
        "xmd": null,
        "login": "account42",
        "activated": true,
        "app_default": "storage",
        "access": {
          "web": true,
          "api": false
        },
        "permissions": {
          "node": {
            "all_realm_scope": false,
            "nodes": [
    
            ],
            "rights": {
              "manage_storage": false,
              "manage_networks": false,
              "provision_vss": false,
              "remove_vss": false
            }
          },
          "vss": {
            "all_account_scope": true,
            "rights": {
              "dismiss_tasks": true,
              "update_vss": true,
              "remove_vss": true,
              "set_vss_quota": true,
              "manage_internal_disks": true,
              "manage_external_disks": true,
              "manage_removable_disks": true,
              "manage_disk_cryptography": true,
              "remove_locked_disks": true,
              "replicate_disks": true,
              "synchronize_disks": true,
              "format_disks": true,
              "resize_disks": true,
              "backup_disks": true,
              "validate_data_integrity": true,
              "manage_snapshots": true,
              "manage_targets": true,
              "manage_profiles": true,
              "manage_secure_access_tokens": true,
              "manage_rules": true
            }
          },
          "realm": {
            "rights": {
              "can_switch_user": false,
              "manage_node_membership": false,
              "manage_accounts": false,
              "view_logs": false,
              "run_admin_tasks": false,
              "run_tests": false
            }
          },
          "user": {
            "rights": {
              "manage_users": true,
              "modify_user_contact_settings": true,
              "reset_user_password": true,
              "reset_user_two_factor": true,
              "manage_authorizations": true
            }
          },
          "account": {
            "rights": {
              "modify_contact_settings": true,
              "manage_global_profiles": true,
              "manage_global_secure_access_tokens": true,
              "view_events": true,
              "view_statistics": true,
              "query_catalog": true,
              "provision_vss": true,
              "manage_obj_stores": true,
              "read_object_storage": true,
              "write_object_storage": true,
              "delete_object_storage": true
            }
          }
        },
        "account_admin": true,
        "allow_su": true,
        "level": 0,
        "timezone": "local",
        "two_factor": {
          "auth": "none"
        },
        "email": null,
        "email_notify": false,
        "email_verified": false,
        "sms": {
          "number": "XXX-XXX-XXXX",
          "valid": false
        },
        "sms_notify": false,
        "password_set": false,
        "sessions": [
    
        ]
      }
    ]
    

    User Profile Create

    Create a new user profile.

    POST /user-profile
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | username | string | user-assigned portion of username (username@account)
    Length: 1..64 |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | xmd_refs | array | array of extensible metadata reference keys | | xref | nullable string | arbitrary string reference
    Length: 1..256 | | host | string | server hostname originating request (for url) | | password | nullable string | user-assigned password
    Length: 1..64 | | two_factor:auth | string | two-factor authentication type
    default: "none"
    one of:"none" or "yubikey" or "google" | | two_factor:otp | string | one-time-password from authentication device
    Length: 1..∞ | | two_factor:secret | string | shared AES secret
    pattern: ^[a-fA-F0-9]$
    Length: 1..∞ | | two_factor:private_id | string | yubikey private ID
    pattern: ^[a-fA-F0-9]
    $
    Length: 1..∞ | | two_factor:security_email | email | security email for lost authenticator recovery
    Length: 0..128 | | permissions:realm:rights:can_switch_user | boolean | can SU to lower level user | | permissions:realm:rights:manage_node_membership | boolean | accept or delete nodes from the management network | | permissions:realm:rights:manage_accounts | boolean | can create or delete other accounts, users and their settings | | permissions:realm:rights:view_logs | boolean | view administrative logs | | permissions:realm:rights:run_admin_tasks | boolean | run realm administrative tasks | | permissions:realm:rights:run_tests | boolean | run realm administrative tests | | permissions:node:all_realm_scope | boolean | apply to all nodes in the realm
    default: true | | permissions:node:nodes | array | scope permissions to specific nodes | | permissions:node:rights:manage_storage | boolean | configure OS devices, iSCSI devices, and system datastores | | permissions:node:rights:manage_networks | boolean | configure networks | | permissions:node:rights:provision_vss | boolean | manually provision virtual storage services | | permissions:node:rights:remove_vss | boolean | remove virtual storage services | | permissions:vss:all_account_scope | boolean | apply to all virtual storage services in the account
    default: true | | permissions:vss:vsses | array | limit scope to specified vsses | | permissions:vss:rights:dismiss_tasks | boolean | dismiss tasks | | permissions:vss:rights:update_vss | boolean | update vss configuration | | permissions:vss:rights:remove_vss | boolean | remove vss | | permissions:vss:rights:set_vss_quota | boolean | set vss quota | | permissions:vss:rights:manage_internal_disks | boolean | manage internal disks | | permissions:vss:rights:manage_external_disks | boolean | manage external disks | | permissions:vss:rights:manage_removable_disks | boolean | manage removable disks | | permissions:vss:rights:manage_disk_cryptography | boolean | manage disk cryptography | | permissions:vss:rights:remove_locked_disks | boolean | remove locked disks | | permissions:vss:rights:validate_data_integrity | boolean | validate data integrity | | permissions:vss:rights:manage_targets | boolean | manage targets | | permissions:vss:rights:manage_profiles | boolean | manage profiles | | permissions:vss:rights:manage_secure_access_tokens | boolean | manage secure access tokens | | permissions:vss:rights:manage_rules | boolean | manage rules | | permissions:vss:rights:replicate_disks | boolean | replicate disks | | permissions:vss:rights:synchronize_disks | boolean | synchronize disks | | permissions:vss:rights:format_disks | boolean | format disks | | permissions:vss:rights:resize_disks | boolean | resize disks | | permissions:vss:rights:manage_snapshots | boolean | manage snapshots | | permissions:vss:rights:backup_disks | boolean | backup disks | | permissions:vss:rights:replicate_and_synchronize_disks | boolean | replicate and synchronize disks (DEPRECATED) | | permissions:vss:rights:compress_disks | boolean | compress disks | | permissions:vss:rights:manage_disk_compression | boolean | manage disk | | permissions:user:rights:manage_users | boolean | create or delete users in an account | | permissions:user:rights:modify_user_contact_settings | boolean | modify user contact info | | permissions:user:rights:reset_user_password | boolean | reset user password | | permissions:user:rights:reset_user_two_factor | boolean | reset two factor authentication | | permissions:user:rights:manage_authorizations | boolean | create or delete persistent authorizations | | permissions:account:rights:modify_contact_settings | boolean | modify account contact settings | | permissions:account:rights:view_events | boolean | view events | | permissions:account:rights:view_statistics | boolean | view statistics | | permissions:account:rights:manage_global_profiles | boolean | manage global profiles | | permissions:account:rights:manage_global_secure_access_tokens | boolean | manage global secure access tokens | | permissions:account:rights:query_catalog | boolean | query product catalog | | permissions:account:rights:provision_vss | boolean | provision vss from catalog | | permissions:account:rights:manage_obj_stores | boolean | manage obj stores | | permissions:account:rights:read_object_storage | boolean | read from object storage | | permissions:account:rights:write_object_storage | boolean | write to object storage | | permissions:account:rights:delete_object_storage | boolean | delete from object storage | | access:web | boolean | web access permitted
    default: true | | access:api | boolean | API access permitted
    default: true | | allow_su | boolean | admin allowed to SU to user | | email_notify | boolean | email notifications enabled | | email | nullable email | email address
    Length: 0..128 | | email_verify | boolean | require email address verification | | sms_notify | boolean | SMS notifications enabled | | sms | string | notification number for SMS messages | | sms_verify | boolean | require SMS number verification | | app_default | string | default web-ui application
    default: "storage"
    one of:"storage" or "infrastructure" or "account" or "securedrive" | | account_id | string | account id | | level | integer | user privilege level | | uuid | uuid | object UUID |

    Curl Example

    $ curl -X POST https://mgmt-node/api/user-profile \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "username": "account421",
      "password": "password421",
      "account_id": "account:10:10"
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:26:54 GMT
    Server: Goliath
    ETag: "1f8aac360f9ceb42a4143aa83f8c152b"
    Content-Type: application/json
    Content-Length: 2069
    
    {
      "id": "user_profile:16:10",
      "uuid": "11bccdde-f3b6-4b65-a28f-25d0463b1564",
      "serial": "USR1B62194C4062655E",
      "evt_qry": "serial=USR1B62194C4062655E",
      "account_id": "account:10:10",
      "ctime": 1507570014375,
      "mtime": 1507570014375,
      "seq": 1507570014382,
      "label": null,
      "status": null,
      "ec": {
        "table": null,
        "status": "retrieving",
        "seq": 1507570014382
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "login": "account421@account42",
      "activated": true,
      "app_default": "storage",
      "access": {
        "web": true,
        "api": true
      },
      "permissions": {
        "node": {
          "all_realm_scope": false,
          "nodes": [
    
          ],
          "rights": {
            "manage_storage": false,
            "manage_networks": false,
            "provision_vss": false,
            "remove_vss": false
          }
        },
        "vss": {
          "all_account_scope": true,
          "rights": {
            "dismiss_tasks": true,
            "update_vss": true,
            "remove_vss": true,
            "set_vss_quota": true,
            "manage_internal_disks": true,
            "manage_external_disks": true,
            "manage_removable_disks": true,
            "manage_disk_cryptography": true,
            "remove_locked_disks": true,
            "replicate_disks": true,
            "synchronize_disks": true,
            "format_disks": true,
            "resize_disks": true,
            "backup_disks": true,
            "validate_data_integrity": true,
            "manage_snapshots": true,
            "manage_targets": true,
            "manage_profiles": true,
            "manage_secure_access_tokens": true,
            "manage_rules": true
          }
        },
        "realm": {
          "rights": {
            "can_switch_user": false,
            "manage_node_membership": false,
            "manage_accounts": false,
            "view_logs": false,
            "run_admin_tasks": false,
            "run_tests": false
          }
        },
        "user": {
          "rights": {
            "manage_users": true,
            "modify_user_contact_settings": true,
            "reset_user_password": true,
            "reset_user_two_factor": true,
            "manage_authorizations": true
          }
        },
        "account": {
          "rights": {
            "modify_contact_settings": true,
            "manage_global_profiles": true,
            "manage_global_secure_access_tokens": true,
            "view_events": true,
            "view_statistics": true,
            "query_catalog": true,
            "provision_vss": true,
            "manage_obj_stores": true,
            "read_object_storage": true,
            "write_object_storage": true,
            "delete_object_storage": true
          }
        }
      },
      "account_admin": false,
      "allow_su": false,
      "level": 0,
      "timezone": "local",
      "two_factor": {
        "auth": "none"
      },
      "email": null,
      "email_notify": false,
      "email_verified": false,
      "sms": {
        "number": "XXX-XXX-XXXX",
        "valid": false
      },
      "sms_notify": false,
      "password_set": true,
      "sessions": [
    
      ]
    }
    

    User Profile Remove

    Remove an existing user profile.

    DELETE /user-profile/{user_profile_id_or_serial}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | account_id | string | account id |

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/user-profile/user_profile:16:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:26:55 GMT
    Server: Goliath
    

    User Profile Update

    Change the configuration of an existing user profile.

    PATCH /user-profile/{user_profile_id_or_serial}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | xmd_refs | array | array of extensible metadata reference keys | | host | string | server hostname originating request (for url) | | new_password | nullable string | new password | | auth_password | string | current password; required when changing password for non-admin users | | two_factor:auth | string | two-factor authentication type
    one of:"none" or "yubikey" or "google" | | two_factor:otp | string | one-time-password from authentication device
    Length: 1..∞ | | two_factor:secret | string | shared AES secret
    pattern: ^[a-fA-F0-9]$
    Length: 1..∞ | | two_factor:private_id | string | yubikey private ID
    pattern: ^[a-fA-F0-9]
    $
    Length: 1..∞ | | two_factor:security_email | email | security email for lost authenticator recovery
    Length: 0..128 | | two_factor:state | string | enable or disable two-factor authentication
    one of:"enable" or "disable" | | email_notify | boolean | email notifications are enabled | | email | nullable email | notification email address
    Length: 0..128 | | email_verify | boolean | require email address verification | | sms_notify | boolean | SMS notifications enabled | | sms | string | notification number for SMS messages | | sms_verify | boolean | require SMS number verification | | app_default | string | default web-ui application
    one of:"storage" or "infrastructure" or "account" or "securedrive" | | activated | boolean | user profile activated | | ext_auth:key | nullable string | no documentation | | ext_auth:scope | nullable string | name of external authentication scope | | ext_auth:login | nullable string | mapped external login | | ext_auth:domain | nullable string | mapped external domain | | ext_auth:domain_function | nullable string | mapped external domain function | | permissions:realm:rights:can_switch_user | boolean | can SU to lower level user | | permissions:realm:rights:manage_node_membership | boolean | accept or delete nodes from the management network | | permissions:realm:rights:manage_accounts | boolean | can create or delete other accounts, users and their settings | | permissions:realm:rights:view_logs | boolean | view administrative logs | | permissions:realm:rights:run_admin_tasks | boolean | run realm administrative tasks | | permissions:realm:rights:run_tests | boolean | run realm administrative tests | | permissions:node:all_realm_scope | boolean | apply to all nodes in the realm
    default: true | | permissions:node:nodes | array | scope permissions to specific nodes | | permissions:node:rights:manage_storage | boolean | configure OS devices, iSCSI devices, and system datastores | | permissions:node:rights:manage_networks | boolean | configure networks | | permissions:node:rights:provision_vss | boolean | manually provision virtual storage services | | permissions:node:rights:remove_vss | boolean | remove virtual storage services | | permissions:vss:all_account_scope | boolean | apply to all virtual storage services in the account
    default: true | | permissions:vss:vsses | array | limit scope to specified vsses | | permissions:vss:rights:dismiss_tasks | boolean | dismiss tasks | | permissions:vss:rights:update_vss | boolean | update vss configuration | | permissions:vss:rights:remove_vss | boolean | remove vss | | permissions:vss:rights:set_vss_quota | boolean | set vss quota | | permissions:vss:rights:manage_internal_disks | boolean | manage internal disks | | permissions:vss:rights:manage_external_disks | boolean | manage external disks | | permissions:vss:rights:manage_removable_disks | boolean | manage removable disks | | permissions:vss:rights:manage_disk_cryptography | boolean | manage disk cryptography | | permissions:vss:rights:remove_locked_disks | boolean | remove locked disks | | permissions:vss:rights:validate_data_integrity | boolean | validate data integrity | | permissions:vss:rights:manage_targets | boolean | manage targets | | permissions:vss:rights:manage_profiles | boolean | manage profiles | | permissions:vss:rights:manage_secure_access_tokens | boolean | manage secure access tokens | | permissions:vss:rights:manage_rules | boolean | manage rules | | permissions:vss:rights:replicate_disks | boolean | replicate disks | | permissions:vss:rights:synchronize_disks | boolean | synchronize disks | | permissions:vss:rights:format_disks | boolean | format disks | | permissions:vss:rights:resize_disks | boolean | resize disks | | permissions:vss:rights:manage_snapshots | boolean | manage snapshots | | permissions:vss:rights:backup_disks | boolean | backup disks | | permissions:vss:rights:replicate_and_synchronize_disks | boolean | replicate and synchronize disks (DEPRECATED) | | permissions:vss:rights:compress_disks | boolean | compress disks | | permissions:vss:rights:manage_disk_compression | boolean | manage disk | | permissions:user:rights:manage_users | boolean | create or delete users in an account | | permissions:user:rights:modify_user_contact_settings | boolean | modify user contact info | | permissions:user:rights:reset_user_password | boolean | reset user password | | permissions:user:rights:reset_user_two_factor | boolean | reset two factor authentication | | permissions:user:rights:manage_authorizations | boolean | create or delete persistent authorizations | | permissions:account:rights:modify_contact_settings | boolean | modify account contact settings | | permissions:account:rights:view_events | boolean | view events | | permissions:account:rights:view_statistics | boolean | view statistics | | permissions:account:rights:manage_global_profiles | boolean | manage global profiles | | permissions:account:rights:manage_global_secure_access_tokens | boolean | manage global secure access tokens | | permissions:account:rights:query_catalog | boolean | query product catalog | | permissions:account:rights:provision_vss | boolean | provision vss from catalog | | permissions:account:rights:manage_obj_stores | boolean | manage obj stores | | permissions:account:rights:read_object_storage | boolean | read from object storage | | permissions:account:rights:write_object_storage | boolean | write to object storage | | permissions:account:rights:delete_object_storage | boolean | delete from object storage | | permissions_update_mode | string | user permissions update mode
    default: "merge"
    one of:"replace" or "merge" | | allow_su | boolean | admin allowed to SU to user | | account_id | string | account id |

    Curl Example

    $ curl -X PATCH https://mgmt-node/api/user-profile/user_profile:16:10 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "activated": false
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:54 GMT
    Server: Goliath
    ETag: "14ea1ef48b481c651dfac513537e09a5"
    Content-Type: application/json
    Content-Length: 2070
    
    {
      "id": "user_profile:16:10",
      "uuid": "11bccdde-f3b6-4b65-a28f-25d0463b1564",
      "serial": "USR1B62194C4062655E",
      "evt_qry": "serial=USR1B62194C4062655E",
      "account_id": "account:10:10",
      "ctime": 1507570014375,
      "mtime": 1507570014709,
      "seq": 1507570014716,
      "label": null,
      "status": null,
      "ec": {
        "table": null,
        "status": "retrieving",
        "seq": 1507570014382
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "login": "account421@account42",
      "activated": false,
      "app_default": "storage",
      "access": {
        "web": true,
        "api": true
      },
      "permissions": {
        "node": {
          "all_realm_scope": false,
          "nodes": [
    
          ],
          "rights": {
            "manage_storage": false,
            "manage_networks": false,
            "provision_vss": false,
            "remove_vss": false
          }
        },
        "vss": {
          "all_account_scope": true,
          "rights": {
            "dismiss_tasks": true,
            "update_vss": true,
            "remove_vss": true,
            "set_vss_quota": true,
            "manage_internal_disks": true,
            "manage_external_disks": true,
            "manage_removable_disks": true,
            "manage_disk_cryptography": true,
            "remove_locked_disks": true,
            "replicate_disks": true,
            "synchronize_disks": true,
            "format_disks": true,
            "resize_disks": true,
            "backup_disks": true,
            "validate_data_integrity": true,
            "manage_snapshots": true,
            "manage_targets": true,
            "manage_profiles": true,
            "manage_secure_access_tokens": true,
            "manage_rules": true
          }
        },
        "realm": {
          "rights": {
            "can_switch_user": false,
            "manage_node_membership": false,
            "manage_accounts": false,
            "view_logs": false,
            "run_admin_tasks": false,
            "run_tests": false
          }
        },
        "user": {
          "rights": {
            "manage_users": true,
            "modify_user_contact_settings": true,
            "reset_user_password": true,
            "reset_user_two_factor": true,
            "manage_authorizations": true
          }
        },
        "account": {
          "rights": {
            "modify_contact_settings": true,
            "manage_global_profiles": true,
            "manage_global_secure_access_tokens": true,
            "view_events": true,
            "view_statistics": true,
            "query_catalog": true,
            "provision_vss": true,
            "manage_obj_stores": true,
            "read_object_storage": true,
            "write_object_storage": true,
            "delete_object_storage": true
          }
        }
      },
      "account_admin": false,
      "allow_su": false,
      "level": 0,
      "timezone": "local",
      "two_factor": {
        "auth": "none"
      },
      "email": null,
      "email_notify": false,
      "email_verified": false,
      "sms": {
        "number": "XXX-XXX-XXXX",
        "valid": false
      },
      "sms_notify": false,
      "password_set": true,
      "sessions": [
    
      ]
    }
    

    User Profile Permissions

    Enumerate the permissions of an existing user profile.

    GET /user-profile/permissions
    

    Curl Example

    $ curl https://mgmt-node/api/user-profile/permissions \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:54 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 3052
    
    {
      "node": {
        "all_realm_scope": "apply permissions to all nodes",
        "rights": {
          "manage_storage": "node permission to manage storage",
          "manage_networks": "node permission to manage networks",
          "provision_vss": "node permission to provision vss",
          "remove_vss": "node permission to remove vss"
        }
      },
      "vss": {
        "all_account_scope": "apply permissions to all virtual storage services",
        "rights": {
          "dismiss_tasks": "vss permission to dismiss tasks",
          "update_vss": "vss permission to update vss configuration",
          "remove_vss": "vss permission to remove vss",
          "set_vss_quota": "vss permission to set vss quota",
          "manage_internal_disks": "vss permission to manage internal disks",
          "manage_external_disks": "vss permission to manage external disks",
          "manage_removable_disks": "vss permission to manage removable disks",
          "manage_disk_cryptography": "vss permission to manage disk cryptography",
          "remove_locked_disks": "vss permission to remove locked disks",
          "replicate_disks": "vss permission to configure replication",
          "synchronize_disks": "vss permission to synchronize disk contents",
          "format_disks": "vss permission to format disks",
          "resize_disks": "vss permission to resize disks",
          "backup_disks": "vss permission to backup disks",
          "validate_data_integrity": "vss permission to validate data integrity",
          "manage_snapshots": "vss permission to create, update and remove snapshots",
          "manage_targets": "vss permission to manage targets",
          "manage_profiles": "vss permission to manage profiles",
          "manage_secure_access_tokens": "vss permission to manage secure access tokens",
          "manage_rules": "vss permission to manage rules"
        }
      },
      "realm": {
        "rights": {
          "can_switch_user": "realm permission to switch users",
          "manage_node_membership": "realm permission to manage node membership",
          "manage_accounts": "realm permission to manage accounts",
          "view_logs": "realm permission to view logs",
          "run_admin_tasks": "realm permission to run administrator tasks",
          "run_tests": "realm permission to run tests"
        }
      },
      "user": {
        "rights": {
          "manage_users": "user permission to manage users",
          "modify_user_contact_settings": "user permission to modify user contact settings",
          "reset_user_password": "user permission to reset user password",
          "reset_user_two_factor": "user permission to reset user two-factor authentication",
          "manage_authorizations": "user permission to manage persistent authorizations"
        }
      },
      "account": {
        "rights": {
          "modify_contact_settings": "account permission to modify contact settings",
          "manage_global_profiles": "account permission to manage global profiles",
          "manage_global_secure_access_tokens": "account permission to manage global secure access tokens",
          "view_events": "account permission to view events",
          "view_statistics": "account permission to view statistics",
          "query_catalog": "account permission to query the catalog",
          "provision_vss": "account permission to provision from the catalog",
          "manage_obj_stores": "account permission to manage obj stores",
          "read_object_storage": "account permission to read from object storage",
          "write_object_storage": "account permission to write to object storage",
          "delete_object_storage": "account permission to delete from object storage"
        }
      }
    }
    

    OAuth 2 Access Token

    Submit a username and password to create a time-limited OAuth 2 API access token. Include this token in the Authorization HTTP header in subsequent requests. For example,:

    Authorization: Bearer 0/EYZPk2DHOQ+ep8NyFerJake9NCG+M3WSbsoj5cfn6L5xh0+TYMc6Hw
    

    OAuth 2 Access Token Create

    Exchange authorization of some sort for an access token.

    POST /oauth2/token
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | grant_type | string | type of grant request |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | client_id | string | (optional) client id of request | | client_secret | string | (optional) client supplied secret | | code | string | (optional) code | | redirect_url | string | (optional) redirect url | | username | string | username to request token for | | password | string | password for username | | method | string | (optional) method of authorization | | expires_in | integer | when access token will expire (in seconds) |

    Curl Example

    $ curl -X POST https://mgmt-node/api/oauth2/token \
      -H "Content-Type: application/json" \
      -d \
    '{
      "grant_type": "password",
      "username": "system",
      "password": "system"
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:26:50 GMT
    Server: Goliath
    Cache-Control: no-store
    Pragma: no-cache
    Content-Type: application/json
    Content-Length: 305
    
    {
      "access_token": "0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg",
      "token_type": "Bearer",
      "expires_in": 3599,
      "user": {
        "id": "session:16:10",
        "user": {
          "name": "system",
          "id": "user_profile:1:10",
          "serial": "USR1B62194C40626440"
        },
        "account": {
          "name": "system",
          "id": "account:1:10",
          "serial": "ACT0762194C40626445"
        }
      }
    }
    

    Authorization

    Manage secure application access to the API using revokable authorization tokens. A user may have many authorization tokens, in support of many different applications. Each token may be independently revoked with a DELETE request.

    Attributes

    NameTypeDescription
    idstringobject id
    uuiduuidobject uuid
    ctimeintegerauthorization create time
    Range: 0 <= value
    mtimeintegerauthorization last modified time
    Range: 0 <= value
    serialstringauthorization serial number
    xrefstringarbitrary string reference
    Length: 1..256
    notesnullable stringuser assigned notes
    Length: 0..256
    account_idstringno documentation
    user_idstringno documentation
    fingerprintnullable stringclient-side differentiator to permit multiple authorizations per application/user
    enabledbooleanauthorization is enabled
    default: true
    app_idnullable stringassociated client application (null = no/unspecified application)
    scopenullable stringauthorization scope (null maps to referenced user permissions)
    access_typestringauthorization access type (offline access includes a refresh token)
    default: "online"
    one of:"online" or "offline"
    lifetimenullable integeraccess token lifetime, in seconds since created_at (null = eternal)
    restrictstringhow to restrict user-profile permissions when calculating effective perms
    one of:"none" or "auth"
    enforce_two_factorbooleanenforce user two-factor auth (if configured)
    created_atstringauthorization create time
    updated_atstringauthorization last updated time
    expires_innullable integerauthorization time remaining
    access_token_digeststringbase64-encoded SHA256 digest of access token
    access_token_suffixstringaccess token suffix
    access_token_typestringno documentation
    one of:"Bearer"
    refresh_token_digestnullable stringbase64-encoded SHA256 digest of refresh token (for offline token refresh)
    permissionsnullable objectuser permissions
    permissions:realm:rights:can_switch_userbooleancan SU to lower level user
    permissions:realm:rights:manage_node_membershipbooleanaccept or delete nodes from the management network
    permissions:realm:rights:manage_accountsbooleancan create or delete other accounts, users and their settings
    permissions:realm:rights:view_logsbooleanview administrative logs
    permissions:realm:rights:run_admin_tasksbooleanrun realm administrative tasks
    permissions:realm:rights:run_testsbooleanrun realm administrative tests
    permissions:node:all_realm_scopebooleanapply to all nodes in the realm
    default: true
    permissions:node:nodesarrayscope permissions to specific nodes
    permissions:node:rights:manage_storagebooleanconfigure OS devices, iSCSI devices, and system datastores
    permissions:node:rights:manage_networksbooleanconfigure networks
    permissions:node:rights:provision_vssbooleanmanually provision virtual storage services
    permissions:node:rights:remove_vssbooleanremove virtual storage services
    permissions:vss:all_account_scopebooleanapply to all virtual storage services in the account
    default: true
    permissions:vss:vssesarraylimit scope to specified vsses
    permissions:vss:rights:dismiss_tasksbooleandismiss tasks
    permissions:vss:rights:update_vssbooleanupdate vss configuration
    permissions:vss:rights:remove_vssbooleanremove vss
    permissions:vss:rights:set_vss_quotabooleanset vss quota
    permissions:vss:rights:manage_internal_disksbooleanmanage internal disks
    permissions:vss:rights:manage_external_disksbooleanmanage external disks
    permissions:vss:rights:manage_removable_disksbooleanmanage removable disks
    permissions:vss:rights:manage_disk_cryptographybooleanmanage disk cryptography
    permissions:vss:rights:remove_locked_disksbooleanremove locked disks
    permissions:vss:rights:validate_data_integritybooleanvalidate data integrity
    permissions:vss:rights:manage_targetsbooleanmanage targets
    permissions:vss:rights:manage_profilesbooleanmanage profiles
    permissions:vss:rights:manage_secure_access_tokensbooleanmanage secure access tokens
    permissions:vss:rights:manage_rulesbooleanmanage rules
    permissions:vss:rights:replicate_disksbooleanreplicate disks
    permissions:vss:rights:synchronize_disksbooleansynchronize disks
    permissions:vss:rights:format_disksbooleanformat disks
    permissions:vss:rights:resize_disksbooleanresize disks
    permissions:vss:rights:manage_snapshotsbooleanmanage snapshots
    permissions:vss:rights:backup_disksbooleanbackup disks
    permissions:vss:rights:replicate_and_synchronize_disksbooleanreplicate and synchronize disks (DEPRECATED)
    permissions:vss:rights:compress_disksbooleancompress disks
    permissions:vss:rights:manage_disk_compressionbooleanmanage disk
    permissions:user:rights:manage_usersbooleancreate or delete users in an account
    permissions:user:rights:modify_user_contact_settingsbooleanmodify user contact info
    permissions:user:rights:reset_user_passwordbooleanreset user password
    permissions:user:rights:reset_user_two_factorbooleanreset two factor authentication
    permissions:user:rights:manage_authorizationsbooleancreate or delete persistent authorizations
    permissions:account:rights:modify_contact_settingsbooleanmodify account contact settings
    permissions:account:rights:view_eventsbooleanview events
    permissions:account:rights:view_statisticsbooleanview statistics
    permissions:account:rights:manage_global_profilesbooleanmanage global profiles
    permissions:account:rights:manage_global_secure_access_tokensbooleanmanage global secure access tokens
    permissions:account:rights:query_catalogbooleanquery product catalog
    permissions:account:rights:provision_vssbooleanprovision vss from catalog
    permissions:account:rights:manage_obj_storesbooleanmanage obj stores
    permissions:account:rights:read_object_storagebooleanread from object storage
    permissions:account:rights:write_object_storagebooleanwrite to object storage
    permissions:account:rights:delete_object_storagebooleandelete from object storage
    effective_scopenullable stringauthorization effective scope

    Authorization Info

    Retrieve existing authorizations.

    GET /authorization/{authz_id_or_serial}
    

    Curl Example

    $ curl https://mgmt-node/api/authorization/authz:8:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:55 GMT
    Server: Goliath
    ETag: "15063787638d004d7fa22789908788fa"
    Content-Type: application/json
    Content-Length: 2577
    
    {
      "id": "authz:8:10",
      "serial": "ATH4762194C406264DA",
      "account_id": "account:1:10",
      "user_id": "user_profile:1:10",
      "xref": null,
      "notes": null,
      "fingerprint": null,
      "enabled": true,
      "app_id": null,
      "scope": null,
      "access_type": "online",
      "lifetime": null,
      "restrict": "auth",
      "enforce_two_factor": false,
      "created_at": "2017-10-09T17:26:55.195+00:00",
      "updated_at": "2017-10-09T17:26:55.195+00:00",
      "expires_in": null,
      "access_token_digest": "+rQjeekqAsn2Dpc+SswdGSG8Dj1MpKPzbsGoYP00onc",
      "access_token_suffix": "ZM3mJpCA",
      "refresh_token_digest": null,
      "effective_scope": "r:r=can_switch_user r:r=manage_node_membership r:r=manage_accounts r:r=view_logs r:r=run_admin_tasks r:r=run_tests a:r=modify_contact_settings a:r=view_events a:r=view_statistics a:r=manage_global_profiles a:r=manage_global_secure_access_tokens a:r=query_catalog a:r=provision_vss a:r=manage_obj_stores a:r=read_object_storage a:r=write_object_storage a:r=delete_object_storage n:r=manage_storage n:r=manage_networks n:r=provision_vss n:r=remove_vss v:r=dismiss_tasks v:r=update_vss v:r=remove_vss v:r=set_vss_quota v:r=manage_internal_disks v:r=manage_external_disks v:r=manage_removable_disks v:r=manage_disk_cryptography v:r=remove_locked_disks v:r=replicate_disks v:r=synchronize_disks v:r=format_disks v:r=resize_disks v:r=backup_disks v:r=validate_data_integrity v:r=manage_snapshots v:r=manage_targets v:r=manage_profiles v:r=manage_secure_access_tokens v:r=manage_rules n:o=all v:o=all",
      "permissions": {
        "realm": {
          "rights": {
            "can_switch_user": true,
            "manage_node_membership": true,
            "manage_accounts": true,
            "view_logs": true,
            "run_admin_tasks": true,
            "run_tests": true
          }
        },
        "node": {
          "all_realm_scope": true,
          "rights": {
            "manage_storage": true,
            "manage_networks": true,
            "provision_vss": true,
            "remove_vss": true
          }
        },
        "vss": {
          "all_account_scope": true,
          "rights": {
            "dismiss_tasks": true,
            "update_vss": true,
            "remove_vss": true,
            "set_vss_quota": true,
            "manage_internal_disks": true,
            "manage_external_disks": true,
            "manage_removable_disks": true,
            "manage_disk_cryptography": true,
            "remove_locked_disks": true,
            "replicate_disks": true,
            "synchronize_disks": true,
            "format_disks": true,
            "resize_disks": true,
            "backup_disks": true,
            "validate_data_integrity": true,
            "manage_snapshots": true,
            "manage_targets": true,
            "manage_profiles": true,
            "manage_secure_access_tokens": true,
            "manage_rules": true
          }
        },
        "account": {
          "rights": {
            "modify_contact_settings": true,
            "view_events": true,
            "view_statistics": true,
            "manage_global_profiles": true,
            "manage_global_secure_access_tokens": true,
            "query_catalog": true,
            "provision_vss": true,
            "manage_obj_stores": true,
            "read_object_storage": true,
            "write_object_storage": true,
            "delete_object_storage": true
          }
        }
      }
    }
    

    Authorization List

    Enumerate authorizations.

    GET /authorization
    

    Curl Example

    $ curl https://mgmt-node/api/authorization \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:55 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 18469
    
    [
      {
        "id": "authz:4:10",
        "serial": "ATH4762194C40626418",
        "account_id": "account:1:10",
        "user_id": "user_profile:1:10",
        "xref": null,
        "notes": "authz updated to be disabled",
        "fingerprint": null,
        "enabled": false,
        "app_id": null,
        "scope": null,
        "access_type": "online",
        "lifetime": null,
        "restrict": "auth",
        "enforce_two_factor": false,
        "created_at": "2017-10-09T16:52:24.826+00:00",
        "updated_at": "2017-10-09T16:52:25.211+00:00",
        "expires_in": null,
        "access_token_digest": "3wKrRNRjjMNRG/J9AN3aNdv6sAC/uAWsv2KYzW71g2c",
        "access_token_suffix": "7tASp9eg",
        "refresh_token_digest": null,
        "effective_scope": "r:r=can_switch_user r:r=manage_node_membership r:r=manage_accounts r:r=view_logs r:r=run_admin_tasks r:r=run_tests a:r=modify_contact_settings a:r=view_events a:r=view_statistics a:r=manage_global_profiles a:r=manage_global_secure_access_tokens a:r=query_catalog a:r=provision_vss a:r=manage_obj_stores a:r=read_object_storage a:r=write_object_storage a:r=delete_object_storage n:r=manage_storage n:r=manage_networks n:r=provision_vss n:r=remove_vss v:r=dismiss_tasks v:r=update_vss v:r=remove_vss v:r=set_vss_quota v:r=manage_internal_disks v:r=manage_external_disks v:r=manage_removable_disks v:r=manage_disk_cryptography v:r=remove_locked_disks v:r=replicate_disks v:r=synchronize_disks v:r=format_disks v:r=resize_disks v:r=backup_disks v:r=validate_data_integrity v:r=manage_snapshots v:r=manage_targets v:r=manage_profiles v:r=manage_secure_access_tokens v:r=manage_rules n:o=all v:o=all",
        "permissions": {
          "realm": {
            "rights": {
              "can_switch_user": true,
              "manage_node_membership": true,
              "manage_accounts": true,
              "view_logs": true,
              "run_admin_tasks": true,
              "run_tests": true
            }
          },
          "node": {
            "all_realm_scope": true,
            "rights": {
              "manage_storage": true,
              "manage_networks": true,
              "provision_vss": true,
              "remove_vss": true
            }
          },
          "vss": {
            "all_account_scope": true,
            "rights": {
              "dismiss_tasks": true,
              "update_vss": true,
              "remove_vss": true,
              "set_vss_quota": true,
              "manage_internal_disks": true,
              "manage_external_disks": true,
              "manage_removable_disks": true,
              "manage_disk_cryptography": true,
              "remove_locked_disks": true,
              "replicate_disks": true,
              "synchronize_disks": true,
              "format_disks": true,
              "resize_disks": true,
              "backup_disks": true,
              "validate_data_integrity": true,
              "manage_snapshots": true,
              "manage_targets": true,
              "manage_profiles": true,
              "manage_secure_access_tokens": true,
              "manage_rules": true
            }
          },
          "account": {
            "rights": {
              "modify_contact_settings": true,
              "view_events": true,
              "view_statistics": true,
              "manage_global_profiles": true,
              "manage_global_secure_access_tokens": true,
              "query_catalog": true,
              "provision_vss": true,
              "manage_obj_stores": true,
              "read_object_storage": true,
              "write_object_storage": true,
              "delete_object_storage": true
            }
          }
        }
      },
      {
        "id": "authz:8:10",
        "serial": "ATH4762194C406264DA",
        "account_id": "account:1:10",
        "user_id": "user_profile:1:10",
        "xref": null,
        "notes": null,
        "fingerprint": null,
        "enabled": true,
        "app_id": null,
        "scope": null,
        "access_type": "online",
        "lifetime": null,
        "restrict": "auth",
        "enforce_two_factor": false,
        "created_at": "2017-10-09T17:26:55.195+00:00",
        "updated_at": "2017-10-09T17:26:55.195+00:00",
        "expires_in": null,
        "access_token_digest": "+rQjeekqAsn2Dpc+SswdGSG8Dj1MpKPzbsGoYP00onc",
        "access_token_suffix": "ZM3mJpCA",
        "refresh_token_digest": null,
        "effective_scope": "r:r=can_switch_user r:r=manage_node_membership r:r=manage_accounts r:r=view_logs r:r=run_admin_tasks r:r=run_tests a:r=modify_contact_settings a:r=view_events a:r=view_statistics a:r=manage_global_profiles a:r=manage_global_secure_access_tokens a:r=query_catalog a:r=provision_vss a:r=manage_obj_stores a:r=read_object_storage a:r=write_object_storage a:r=delete_object_storage n:r=manage_storage n:r=manage_networks n:r=provision_vss n:r=remove_vss v:r=dismiss_tasks v:r=update_vss v:r=remove_vss v:r=set_vss_quota v:r=manage_internal_disks v:r=manage_external_disks v:r=manage_removable_disks v:r=manage_disk_cryptography v:r=remove_locked_disks v:r=replicate_disks v:r=synchronize_disks v:r=format_disks v:r=resize_disks v:r=backup_disks v:r=validate_data_integrity v:r=manage_snapshots v:r=manage_targets v:r=manage_profiles v:r=manage_secure_access_tokens v:r=manage_rules n:o=all v:o=all",
        "permissions": {
          "realm": {
            "rights": {
              "can_switch_user": true,
              "manage_node_membership": true,
              "manage_accounts": true,
              "view_logs": true,
              "run_admin_tasks": true,
              "run_tests": true
            }
          },
          "node": {
            "all_realm_scope": true,
            "rights": {
              "manage_storage": true,
              "manage_networks": true,
              "provision_vss": true,
              "remove_vss": true
            }
          },
          "vss": {
            "all_account_scope": true,
            "rights": {
              "dismiss_tasks": true,
              "update_vss": true,
              "remove_vss": true,
              "set_vss_quota": true,
              "manage_internal_disks": true,
              "manage_external_disks": true,
              "manage_removable_disks": true,
              "manage_disk_cryptography": true,
              "remove_locked_disks": true,
              "replicate_disks": true,
              "synchronize_disks": true,
              "format_disks": true,
              "resize_disks": true,
              "backup_disks": true,
              "validate_data_integrity": true,
              "manage_snapshots": true,
              "manage_targets": true,
              "manage_profiles": true,
              "manage_secure_access_tokens": true,
              "manage_rules": true
            }
          },
          "account": {
            "rights": {
              "modify_contact_settings": true,
              "view_events": true,
              "view_statistics": true,
              "manage_global_profiles": true,
              "manage_global_secure_access_tokens": true,
              "query_catalog": true,
              "provision_vss": true,
              "manage_obj_stores": true,
              "read_object_storage": true,
              "write_object_storage": true,
              "delete_object_storage": true
            }
          }
        }
      },
      {
        "id": "authz:5:10",
        "serial": "ATH4762194C40626400",
        "account_id": "account:1:10",
        "user_id": "user_profile:1:10",
        "xref": null,
        "notes": "authz updated to be disabled",
        "fingerprint": null,
        "enabled": false,
        "app_id": null,
        "scope": null,
        "access_type": "online",
        "lifetime": null,
        "restrict": "auth",
        "enforce_two_factor": false,
        "created_at": "2017-10-09T16:57:13.342+00:00",
        "updated_at": "2017-10-09T16:57:13.740+00:00",
        "expires_in": null,
        "access_token_digest": "zKVffwlpVKIxvE3BqRMJOmK4EKwbSrewJVRhEdLqOQA",
        "access_token_suffix": "USFxtvCQ",
        "refresh_token_digest": null,
        "effective_scope": "r:r=can_switch_user r:r=manage_node_membership r:r=manage_accounts r:r=view_logs r:r=run_admin_tasks r:r=run_tests a:r=modify_contact_settings a:r=view_events a:r=view_statistics a:r=manage_global_profiles a:r=manage_global_secure_access_tokens a:r=query_catalog a:r=provision_vss a:r=manage_obj_stores a:r=read_object_storage a:r=write_object_storage a:r=delete_object_storage n:r=manage_storage n:r=manage_networks n:r=provision_vss n:r=remove_vss v:r=dismiss_tasks v:r=update_vss v:r=remove_vss v:r=set_vss_quota v:r=manage_internal_disks v:r=manage_external_disks v:r=manage_removable_disks v:r=manage_disk_cryptography v:r=remove_locked_disks v:r=replicate_disks v:r=synchronize_disks v:r=format_disks v:r=resize_disks v:r=backup_disks v:r=validate_data_integrity v:r=manage_snapshots v:r=manage_targets v:r=manage_profiles v:r=manage_secure_access_tokens v:r=manage_rules n:o=all v:o=all",
        "permissions": {
          "realm": {
            "rights": {
              "can_switch_user": true,
              "manage_node_membership": true,
              "manage_accounts": true,
              "view_logs": true,
              "run_admin_tasks": true,
              "run_tests": true
            }
          },
          "node": {
            "all_realm_scope": true,
            "rights": {
              "manage_storage": true,
              "manage_networks": true,
              "provision_vss": true,
              "remove_vss": true
            }
          },
          "vss": {
            "all_account_scope": true,
            "rights": {
              "dismiss_tasks": true,
              "update_vss": true,
              "remove_vss": true,
              "set_vss_quota": true,
              "manage_internal_disks": true,
              "manage_external_disks": true,
              "manage_removable_disks": true,
              "manage_disk_cryptography": true,
              "remove_locked_disks": true,
              "replicate_disks": true,
              "synchronize_disks": true,
              "format_disks": true,
              "resize_disks": true,
              "backup_disks": true,
              "validate_data_integrity": true,
              "manage_snapshots": true,
              "manage_targets": true,
              "manage_profiles": true,
              "manage_secure_access_tokens": true,
              "manage_rules": true
            }
          },
          "account": {
            "rights": {
              "modify_contact_settings": true,
              "view_events": true,
              "view_statistics": true,
              "manage_global_profiles": true,
              "manage_global_secure_access_tokens": true,
              "query_catalog": true,
              "provision_vss": true,
              "manage_obj_stores": true,
              "read_object_storage": true,
              "write_object_storage": true,
              "delete_object_storage": true
            }
          }
        }
      },
      {
        "id": "authz:1:10",
        "serial": "ATH4762194C40626441",
        "account_id": "account:1:10",
        "user_id": "user_profile:1:10",
        "xref": null,
        "notes": null,
        "fingerprint": null,
        "enabled": true,
        "app_id": null,
        "scope": null,
        "access_type": "online",
        "lifetime": null,
        "restrict": "none",
        "enforce_two_factor": false,
        "created_at": "2017-10-09T15:27:15.198+00:00",
        "updated_at": "2017-10-09T15:27:15.198+00:00",
        "expires_in": null,
        "access_token_digest": "ZR1XPlVBm4h2aouqN0q/Ark46/iw7lu4xV7zfd8Elho",
        "access_token_suffix": "5jYFny4w",
        "refresh_token_digest": null,
        "effective_scope": "r:r=can_switch_user r:r=manage_node_membership r:r=manage_accounts r:r=view_logs r:r=run_admin_tasks r:r=run_tests a:r=modify_contact_settings a:r=view_events a:r=view_statistics a:r=manage_global_profiles a:r=manage_global_secure_access_tokens a:r=query_catalog a:r=provision_vss a:r=manage_obj_stores a:r=read_object_storage a:r=write_object_storage a:r=delete_object_storage u:r=manage_users u:r=modify_user_contact_settings u:r=reset_user_password u:r=reset_user_two_factor u:r=manage_authorizations n:r=manage_storage n:r=manage_networks n:r=provision_vss n:r=remove_vss v:r=dismiss_tasks v:r=update_vss v:r=remove_vss v:r=set_vss_quota v:r=manage_internal_disks v:r=manage_external_disks v:r=manage_removable_disks v:r=manage_disk_cryptography v:r=remove_locked_disks v:r=replicate_disks v:r=synchronize_disks v:r=format_disks v:r=resize_disks v:r=backup_disks v:r=validate_data_integrity v:r=manage_snapshots v:r=manage_targets v:r=manage_profiles v:r=manage_secure_access_tokens v:r=manage_rules n:o=all v:o=all",
        "permissions": {
          "realm": {
            "rights": {
              "can_switch_user": true,
              "manage_node_membership": true,
              "manage_accounts": true,
              "view_logs": true,
              "run_admin_tasks": true,
              "run_tests": true
            }
          },
          "node": {
            "all_realm_scope": true,
            "rights": {
              "manage_storage": true,
              "manage_networks": true,
              "provision_vss": true,
              "remove_vss": true
            }
          },
          "vss": {
            "all_account_scope": true,
            "rights": {
              "dismiss_tasks": true,
              "update_vss": true,
              "remove_vss": true,
              "set_vss_quota": true,
              "manage_internal_disks": true,
              "manage_external_disks": true,
              "manage_removable_disks": true,
              "manage_disk_cryptography": true,
              "remove_locked_disks": true,
              "replicate_disks": true,
              "synchronize_disks": true,
              "format_disks": true,
              "resize_disks": true,
              "backup_disks": true,
              "validate_data_integrity": true,
              "manage_snapshots": true,
              "manage_targets": true,
              "manage_profiles": true,
              "manage_secure_access_tokens": true,
              "manage_rules": true
            }
          },
          "user": {
            "rights": {
              "manage_users": true,
              "modify_user_contact_settings": true,
              "reset_user_password": true,
              "reset_user_two_factor": true,
              "manage_authorizations": true
            }
          },
          "account": {
            "rights": {
              "modify_contact_settings": true,
              "view_events": true,
              "view_statistics": true,
              "manage_global_profiles": true,
              "manage_global_secure_access_tokens": true,
              "query_catalog": true,
              "provision_vss": true,
              "manage_obj_stores": true,
              "read_object_storage": true,
              "write_object_storage": true,
              "delete_object_storage": true
            }
          }
        }
      },
      {
        "id": "authz:6:10",
        "serial": "ATH4762194C40626438",
        "account_id": "account:1:10",
        "user_id": "user_profile:1:10",
        "xref": null,
        "notes": "authz updated to be disabled",
        "fingerprint": null,
        "enabled": false,
        "app_id": null,
        "scope": null,
        "access_type": "online",
        "lifetime": null,
        "restrict": "auth",
        "enforce_two_factor": false,
        "created_at": "2017-10-09T17:23:18.287+00:00",
        "updated_at": "2017-10-09T17:23:18.687+00:00",
        "expires_in": null,
        "access_token_digest": "2xjPfMNO8Vsee3cF9Nf7Pc0Hvh4tIg6dSKmTLLOhUqc",
        "access_token_suffix": "cb7BffIQ",
        "refresh_token_digest": null,
        "effective_scope": "r:r=can_switch_user r:r=manage_node_membership r:r=manage_accounts r:r=view_logs r:r=run_admin_tasks r:r=run_tests a:r=modify_contact_settings a:r=view_events a:r=view_statistics a:r=manage_global_profiles a:r=manage_global_secure_access_tokens a:r=query_catalog a:r=provision_vss a:r=manage_obj_stores a:r=read_object_storage a:r=write_object_storage a:r=delete_object_storage n:r=manage_storage n:r=manage_networks n:r=provision_vss n:r=remove_vss v:r=dismiss_tasks v:r=update_vss v:r=remove_vss v:r=set_vss_quota v:r=manage_internal_disks v:r=manage_external_disks v:r=manage_removable_disks v:r=manage_disk_cryptography v:r=remove_locked_disks v:r=replicate_disks v:r=synchronize_disks v:r=format_disks v:r=resize_disks v:r=backup_disks v:r=validate_data_integrity v:r=manage_snapshots v:r=manage_targets v:r=manage_profiles v:r=manage_secure_access_tokens v:r=manage_rules n:o=all v:o=all",
        "permissions": {
          "realm": {
            "rights": {
              "can_switch_user": true,
              "manage_node_membership": true,
              "manage_accounts": true,
              "view_logs": true,
              "run_admin_tasks": true,
              "run_tests": true
            }
          },
          "node": {
            "all_realm_scope": true,
            "rights": {
              "manage_storage": true,
              "manage_networks": true,
              "provision_vss": true,
              "remove_vss": true
            }
          },
          "vss": {
            "all_account_scope": true,
            "rights": {
              "dismiss_tasks": true,
              "update_vss": true,
              "remove_vss": true,
              "set_vss_quota": true,
              "manage_internal_disks": true,
              "manage_external_disks": true,
              "manage_removable_disks": true,
              "manage_disk_cryptography": true,
              "remove_locked_disks": true,
              "replicate_disks": true,
              "synchronize_disks": true,
              "format_disks": true,
              "resize_disks": true,
              "backup_disks": true,
              "validate_data_integrity": true,
              "manage_snapshots": true,
              "manage_targets": true,
              "manage_profiles": true,
              "manage_secure_access_tokens": true,
              "manage_rules": true
            }
          },
          "account": {
            "rights": {
              "modify_contact_settings": true,
              "view_events": true,
              "view_statistics": true,
              "manage_global_profiles": true,
              "manage_global_secure_access_tokens": true,
              "query_catalog": true,
              "provision_vss": true,
              "manage_obj_stores": true,
              "read_object_storage": true,
              "write_object_storage": true,
              "delete_object_storage": true
            }
          }
        }
      },
      {
        "id": "authz:7:10",
        "serial": "ATH4762194C40626420",
        "account_id": "account:1:10",
        "user_id": "user_profile:1:10",
        "xref": null,
        "notes": "authz updated to be disabled",
        "fingerprint": null,
        "enabled": false,
        "app_id": null,
        "scope": null,
        "access_type": "online",
        "lifetime": null,
        "restrict": "auth",
        "enforce_two_factor": false,
        "created_at": "2017-10-09T17:26:08.527+00:00",
        "updated_at": "2017-10-09T17:26:08.944+00:00",
        "expires_in": null,
        "access_token_digest": "c+9quISbNsmFNpUMqZVdXip4YBN/SRCfWJI9/c+hj8c",
        "access_token_suffix": "41uymTyw",
        "refresh_token_digest": null,
        "effective_scope": "r:r=can_switch_user r:r=manage_node_membership r:r=manage_accounts r:r=view_logs r:r=run_admin_tasks r:r=run_tests a:r=modify_contact_settings a:r=view_events a:r=view_statistics a:r=manage_global_profiles a:r=manage_global_secure_access_tokens a:r=query_catalog a:r=provision_vss a:r=manage_obj_stores a:r=read_object_storage a:r=write_object_storage a:r=delete_object_storage n:r=manage_storage n:r=manage_networks n:r=provision_vss n:r=remove_vss v:r=dismiss_tasks v:r=update_vss v:r=remove_vss v:r=set_vss_quota v:r=manage_internal_disks v:r=manage_external_disks v:r=manage_removable_disks v:r=manage_disk_cryptography v:r=remove_locked_disks v:r=replicate_disks v:r=synchronize_disks v:r=format_disks v:r=resize_disks v:r=backup_disks v:r=validate_data_integrity v:r=manage_snapshots v:r=manage_targets v:r=manage_profiles v:r=manage_secure_access_tokens v:r=manage_rules n:o=all v:o=all",
        "permissions": {
          "realm": {
            "rights": {
              "can_switch_user": true,
              "manage_node_membership": true,
              "manage_accounts": true,
              "view_logs": true,
              "run_admin_tasks": true,
              "run_tests": true
            }
          },
          "node": {
            "all_realm_scope": true,
            "rights": {
              "manage_storage": true,
              "manage_networks": true,
              "provision_vss": true,
              "remove_vss": true
            }
          },
          "vss": {
            "all_account_scope": true,
            "rights": {
              "dismiss_tasks": true,
              "update_vss": true,
              "remove_vss": true,
              "set_vss_quota": true,
              "manage_internal_disks": true,
              "manage_external_disks": true,
              "manage_removable_disks": true,
              "manage_disk_cryptography": true,
              "remove_locked_disks": true,
              "replicate_disks": true,
              "synchronize_disks": true,
              "format_disks": true,
              "resize_disks": true,
              "backup_disks": true,
              "validate_data_integrity": true,
              "manage_snapshots": true,
              "manage_targets": true,
              "manage_profiles": true,
              "manage_secure_access_tokens": true,
              "manage_rules": true
            }
          },
          "account": {
            "rights": {
              "modify_contact_settings": true,
              "view_events": true,
              "view_statistics": true,
              "manage_global_profiles": true,
              "manage_global_secure_access_tokens": true,
              "query_catalog": true,
              "provision_vss": true,
              "manage_obj_stores": true,
              "read_object_storage": true,
              "write_object_storage": true,
              "delete_object_storage": true
            }
          }
        }
      },
      {
        "id": "authz:3:10",
        "serial": "ATH4762194C40626461",
        "account_id": "account:1:10",
        "user_id": "user_profile:1:10",
        "xref": null,
        "notes": "authz updated to be disabled",
        "fingerprint": null,
        "enabled": false,
        "app_id": null,
        "scope": null,
        "access_type": "online",
        "lifetime": null,
        "restrict": "auth",
        "enforce_two_factor": false,
        "created_at": "2017-10-09T15:38:47.532+00:00",
        "updated_at": "2017-10-09T15:38:47.907+00:00",
        "expires_in": null,
        "access_token_digest": "C4nYZuzLrQPzugNyjRREMwXP9QBXhCDNzYYoYBD25p0",
        "access_token_suffix": "QR4Wo+nQ",
        "refresh_token_digest": null,
        "effective_scope": "r:r=can_switch_user r:r=manage_node_membership r:r=manage_accounts r:r=view_logs r:r=run_admin_tasks r:r=run_tests a:r=modify_contact_settings a:r=view_events a:r=view_statistics a:r=manage_global_profiles a:r=manage_global_secure_access_tokens a:r=query_catalog a:r=provision_vss a:r=manage_obj_stores a:r=read_object_storage a:r=write_object_storage a:r=delete_object_storage n:r=manage_storage n:r=manage_networks n:r=provision_vss n:r=remove_vss v:r=dismiss_tasks v:r=update_vss v:r=remove_vss v:r=set_vss_quota v:r=manage_internal_disks v:r=manage_external_disks v:r=manage_removable_disks v:r=manage_disk_cryptography v:r=remove_locked_disks v:r=replicate_disks v:r=synchronize_disks v:r=format_disks v:r=resize_disks v:r=backup_disks v:r=validate_data_integrity v:r=manage_snapshots v:r=manage_targets v:r=manage_profiles v:r=manage_secure_access_tokens v:r=manage_rules n:o=all v:o=all",
        "permissions": {
          "realm": {
            "rights": {
              "can_switch_user": true,
              "manage_node_membership": true,
              "manage_accounts": true,
              "view_logs": true,
              "run_admin_tasks": true,
              "run_tests": true
            }
          },
          "node": {
            "all_realm_scope": true,
            "rights": {
              "manage_storage": true,
              "manage_networks": true,
              "provision_vss": true,
              "remove_vss": true
            }
          },
          "vss": {
            "all_account_scope": true,
            "rights": {
              "dismiss_tasks": true,
              "update_vss": true,
              "remove_vss": true,
              "set_vss_quota": true,
              "manage_internal_disks": true,
              "manage_external_disks": true,
              "manage_removable_disks": true,
              "manage_disk_cryptography": true,
              "remove_locked_disks": true,
              "replicate_disks": true,
              "synchronize_disks": true,
              "format_disks": true,
              "resize_disks": true,
              "backup_disks": true,
              "validate_data_integrity": true,
              "manage_snapshots": true,
              "manage_targets": true,
              "manage_profiles": true,
              "manage_secure_access_tokens": true,
              "manage_rules": true
            }
          },
          "account": {
            "rights": {
              "modify_contact_settings": true,
              "view_events": true,
              "view_statistics": true,
              "manage_global_profiles": true,
              "manage_global_secure_access_tokens": true,
              "query_catalog": true,
              "provision_vss": true,
              "manage_obj_stores": true,
              "read_object_storage": true,
              "write_object_storage": true,
              "delete_object_storage": true
            }
          }
        }
      }
    ]
    

    Authorization Create

    Create a persistent API authorization token.

    POST /authorization
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | fingerprint | nullable string | client-side differentiator to permit multiple authorizations per application/user | | app_id | nullable string | associated client application (null = no/unspecified application) | | notes | nullable string | user assigned notes
    Length: 0..256 | | scope | nullable string | authorization scope (null maps to referenced user permissions) | | enabled | boolean | authorization is enabled
    default: true | | access_type | string | authorization access type (offline access includes a refresh token)
    default: "online"
    one of:"online" or "offline" | | restrict | string | specify how the user permissions are mapped/filtered
    default: "auth"
    one of:"none" or "auth" | | permissions:realm:rights:can_switch_user | boolean | can SU to lower level user | | permissions:realm:rights:manage_node_membership | boolean | accept or delete nodes from the management network | | permissions:realm:rights:manage_accounts | boolean | can create or delete other accounts, users and their settings | | permissions:realm:rights:view_logs | boolean | view administrative logs | | permissions:realm:rights:run_admin_tasks | boolean | run realm administrative tasks | | permissions:realm:rights:run_tests | boolean | run realm administrative tests | | permissions:node:all_realm_scope | boolean | apply to all nodes in the realm
    default: true | | permissions:node:nodes | array | scope permissions to specific nodes | | permissions:node:rights:manage_storage | boolean | configure OS devices, iSCSI devices, and system datastores | | permissions:node:rights:manage_networks | boolean | configure networks | | permissions:node:rights:provision_vss | boolean | manually provision virtual storage services | | permissions:node:rights:remove_vss | boolean | remove virtual storage services | | permissions:vss:all_account_scope | boolean | apply to all virtual storage services in the account
    default: true | | permissions:vss:vsses | array | limit scope to specified vsses | | permissions:vss:rights:dismiss_tasks | boolean | dismiss tasks | | permissions:vss:rights:update_vss | boolean | update vss configuration | | permissions:vss:rights:remove_vss | boolean | remove vss | | permissions:vss:rights:set_vss_quota | boolean | set vss quota | | permissions:vss:rights:manage_internal_disks | boolean | manage internal disks | | permissions:vss:rights:manage_external_disks | boolean | manage external disks | | permissions:vss:rights:manage_removable_disks | boolean | manage removable disks | | permissions:vss:rights:manage_disk_cryptography | boolean | manage disk cryptography | | permissions:vss:rights:remove_locked_disks | boolean | remove locked disks | | permissions:vss:rights:validate_data_integrity | boolean | validate data integrity | | permissions:vss:rights:manage_targets | boolean | manage targets | | permissions:vss:rights:manage_profiles | boolean | manage profiles | | permissions:vss:rights:manage_secure_access_tokens | boolean | manage secure access tokens | | permissions:vss:rights:manage_rules | boolean | manage rules | | permissions:vss:rights:replicate_disks | boolean | replicate disks | | permissions:vss:rights:synchronize_disks | boolean | synchronize disks | | permissions:vss:rights:format_disks | boolean | format disks | | permissions:vss:rights:resize_disks | boolean | resize disks | | permissions:vss:rights:manage_snapshots | boolean | manage snapshots | | permissions:vss:rights:backup_disks | boolean | backup disks | | permissions:vss:rights:replicate_and_synchronize_disks | boolean | replicate and synchronize disks (DEPRECATED) | | permissions:vss:rights:compress_disks | boolean | compress disks | | permissions:vss:rights:manage_disk_compression | boolean | manage disk | | permissions:user:rights:manage_users | boolean | create or delete users in an account | | permissions:user:rights:modify_user_contact_settings | boolean | modify user contact info | | permissions:user:rights:reset_user_password | boolean | reset user password | | permissions:user:rights:reset_user_two_factor | boolean | reset two factor authentication | | permissions:user:rights:manage_authorizations | boolean | create or delete persistent authorizations | | permissions:account:rights:modify_contact_settings | boolean | modify account contact settings | | permissions:account:rights:view_events | boolean | view events | | permissions:account:rights:view_statistics | boolean | view statistics | | permissions:account:rights:manage_global_profiles | boolean | manage global profiles | | permissions:account:rights:manage_global_secure_access_tokens | boolean | manage global secure access tokens | | permissions:account:rights:query_catalog | boolean | query product catalog | | permissions:account:rights:provision_vss | boolean | provision vss from catalog | | permissions:account:rights:manage_obj_stores | boolean | manage obj stores | | permissions:account:rights:read_object_storage | boolean | read from object storage | | permissions:account:rights:write_object_storage | boolean | write to object storage | | permissions:account:rights:delete_object_storage | boolean | delete from object storage | | uuid | uuid | object UUID | | xref | string | arbitrary string reference
    Length: 1..256 | | enforce_two_factor | boolean | enforce user two-factor auth (if configured) | | user_id | string | user profile id |

    Curl Example

    $ curl -X POST https://mgmt-node/api/authorization \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:26:55 GMT
    Server: Goliath
    Cache-Control: no-store
    Pragma: no-cache
    Content-Type: application/json
    Content-Length: 2672
    
    {
      "id": "authz:8:10",
      "serial": "ATH4762194C406264DA",
      "account_id": "account:1:10",
      "user_id": "user_profile:1:10",
      "xref": null,
      "notes": null,
      "fingerprint": null,
      "enabled": true,
      "app_id": null,
      "scope": null,
      "access_type": "online",
      "lifetime": null,
      "restrict": "auth",
      "enforce_two_factor": false,
      "created_at": "2017-10-09T17:26:55.195+00:00",
      "updated_at": "2017-10-09T17:26:55.195+00:00",
      "expires_in": null,
      "access_token_digest": "+rQjeekqAsn2Dpc+SswdGSG8Dj1MpKPzbsGoYP00onc",
      "access_token_suffix": "ZM3mJpCA",
      "refresh_token_digest": null,
      "effective_scope": "r:r=can_switch_user r:r=manage_node_membership r:r=manage_accounts r:r=view_logs r:r=run_admin_tasks r:r=run_tests a:r=modify_contact_settings a:r=view_events a:r=view_statistics a:r=manage_global_profiles a:r=manage_global_secure_access_tokens a:r=query_catalog a:r=provision_vss a:r=manage_obj_stores a:r=read_object_storage a:r=write_object_storage a:r=delete_object_storage n:r=manage_storage n:r=manage_networks n:r=provision_vss n:r=remove_vss v:r=dismiss_tasks v:r=update_vss v:r=remove_vss v:r=set_vss_quota v:r=manage_internal_disks v:r=manage_external_disks v:r=manage_removable_disks v:r=manage_disk_cryptography v:r=remove_locked_disks v:r=replicate_disks v:r=synchronize_disks v:r=format_disks v:r=resize_disks v:r=backup_disks v:r=validate_data_integrity v:r=manage_snapshots v:r=manage_targets v:r=manage_profiles v:r=manage_secure_access_tokens v:r=manage_rules n:o=all v:o=all",
      "permissions": {
        "realm": {
          "rights": {
            "can_switch_user": true,
            "manage_node_membership": true,
            "manage_accounts": true,
            "view_logs": true,
            "run_admin_tasks": true,
            "run_tests": true
          }
        },
        "node": {
          "all_realm_scope": true,
          "rights": {
            "manage_storage": true,
            "manage_networks": true,
            "provision_vss": true,
            "remove_vss": true
          }
        },
        "vss": {
          "all_account_scope": true,
          "rights": {
            "dismiss_tasks": true,
            "update_vss": true,
            "remove_vss": true,
            "set_vss_quota": true,
            "manage_internal_disks": true,
            "manage_external_disks": true,
            "manage_removable_disks": true,
            "manage_disk_cryptography": true,
            "remove_locked_disks": true,
            "replicate_disks": true,
            "synchronize_disks": true,
            "format_disks": true,
            "resize_disks": true,
            "backup_disks": true,
            "validate_data_integrity": true,
            "manage_snapshots": true,
            "manage_targets": true,
            "manage_profiles": true,
            "manage_secure_access_tokens": true,
            "manage_rules": true
          }
        },
        "account": {
          "rights": {
            "modify_contact_settings": true,
            "view_events": true,
            "view_statistics": true,
            "manage_global_profiles": true,
            "manage_global_secure_access_tokens": true,
            "query_catalog": true,
            "provision_vss": true,
            "manage_obj_stores": true,
            "read_object_storage": true,
            "write_object_storage": true,
            "delete_object_storage": true
          }
        }
      },
      "access_token": "1/Yw7mTN5iY0ncIb3auY/1fl25VQsNWAx2xrIn5A4tseDjDuZM3mJpCA",
      "refresh_token": null
    }
    

    Authorization Remove

    Remove a persistent API authorization token.

    DELETE /authorization/{authz_id_or_serial}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/authorization/authz:8:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:38 GMT
    Server: Goliath
    

    Authorization Update

    Change a persistent API authorization token.

    PATCH /authorization/{authz_id_or_serial}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | enabled | boolean | authorization is enabled
    default: true | | notes | nullable string | user assigned notes
    Length: 0..256 | | scope | nullable string | authorization scope (null maps to referenced user permissions) | | permissions:realm:rights:can_switch_user | boolean | can SU to lower level user | | permissions:realm:rights:manage_node_membership | boolean | accept or delete nodes from the management network | | permissions:realm:rights:manage_accounts | boolean | can create or delete other accounts, users and their settings | | permissions:realm:rights:view_logs | boolean | view administrative logs | | permissions:realm:rights:run_admin_tasks | boolean | run realm administrative tasks | | permissions:realm:rights:run_tests | boolean | run realm administrative tests | | permissions:node:all_realm_scope | boolean | apply to all nodes in the realm
    default: true | | permissions:node:nodes | array | scope permissions to specific nodes | | permissions:node:rights:manage_storage | boolean | configure OS devices, iSCSI devices, and system datastores | | permissions:node:rights:manage_networks | boolean | configure networks | | permissions:node:rights:provision_vss | boolean | manually provision virtual storage services | | permissions:node:rights:remove_vss | boolean | remove virtual storage services | | permissions:vss:all_account_scope | boolean | apply to all virtual storage services in the account
    default: true | | permissions:vss:vsses | array | limit scope to specified vsses | | permissions:vss:rights:dismiss_tasks | boolean | dismiss tasks | | permissions:vss:rights:update_vss | boolean | update vss configuration | | permissions:vss:rights:remove_vss | boolean | remove vss | | permissions:vss:rights:set_vss_quota | boolean | set vss quota | | permissions:vss:rights:manage_internal_disks | boolean | manage internal disks | | permissions:vss:rights:manage_external_disks | boolean | manage external disks | | permissions:vss:rights:manage_removable_disks | boolean | manage removable disks | | permissions:vss:rights:manage_disk_cryptography | boolean | manage disk cryptography | | permissions:vss:rights:remove_locked_disks | boolean | remove locked disks | | permissions:vss:rights:validate_data_integrity | boolean | validate data integrity | | permissions:vss:rights:manage_targets | boolean | manage targets | | permissions:vss:rights:manage_profiles | boolean | manage profiles | | permissions:vss:rights:manage_secure_access_tokens | boolean | manage secure access tokens | | permissions:vss:rights:manage_rules | boolean | manage rules | | permissions:vss:rights:replicate_disks | boolean | replicate disks | | permissions:vss:rights:synchronize_disks | boolean | synchronize disks | | permissions:vss:rights:format_disks | boolean | format disks | | permissions:vss:rights:resize_disks | boolean | resize disks | | permissions:vss:rights:manage_snapshots | boolean | manage snapshots | | permissions:vss:rights:backup_disks | boolean | backup disks | | permissions:vss:rights:replicate_and_synchronize_disks | boolean | replicate and synchronize disks (DEPRECATED) | | permissions:vss:rights:compress_disks | boolean | compress disks | | permissions:vss:rights:manage_disk_compression | boolean | manage disk | | permissions:user:rights:manage_users | boolean | create or delete users in an account | | permissions:user:rights:modify_user_contact_settings | boolean | modify user contact info | | permissions:user:rights:reset_user_password | boolean | reset user password | | permissions:user:rights:reset_user_two_factor | boolean | reset two factor authentication | | permissions:user:rights:manage_authorizations | boolean | create or delete persistent authorizations | | permissions:account:rights:modify_contact_settings | boolean | modify account contact settings | | permissions:account:rights:view_events | boolean | view events | | permissions:account:rights:view_statistics | boolean | view statistics | | permissions:account:rights:manage_global_profiles | boolean | manage global profiles | | permissions:account:rights:manage_global_secure_access_tokens | boolean | manage global secure access tokens | | permissions:account:rights:query_catalog | boolean | query product catalog | | permissions:account:rights:provision_vss | boolean | provision vss from catalog | | permissions:account:rights:manage_obj_stores | boolean | manage obj stores | | permissions:account:rights:read_object_storage | boolean | read from object storage | | permissions:account:rights:write_object_storage | boolean | write to object storage | | permissions:account:rights:delete_object_storage | boolean | delete from object storage | | enforce_two_factor | boolean | enforce user two-factor auth (if configured) |

    Curl Example

    $ curl -X PATCH https://mgmt-node/api/authorization/authz:8:10 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "enabled": false,
      "notes": "authz updated to be disabled"
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:55 GMT
    Server: Goliath
    ETag: "919bea09732c41cb208b03cd10885a81"
    Content-Type: application/json
    Content-Length: 2604
    
    {
      "id": "authz:8:10",
      "serial": "ATH4762194C406264DA",
      "account_id": "account:1:10",
      "user_id": "user_profile:1:10",
      "xref": null,
      "notes": "authz updated to be disabled",
      "fingerprint": null,
      "enabled": false,
      "app_id": null,
      "scope": null,
      "access_type": "online",
      "lifetime": null,
      "restrict": "auth",
      "enforce_two_factor": false,
      "created_at": "2017-10-09T17:26:55.195+00:00",
      "updated_at": "2017-10-09T17:26:55.603+00:00",
      "expires_in": null,
      "access_token_digest": "+rQjeekqAsn2Dpc+SswdGSG8Dj1MpKPzbsGoYP00onc",
      "access_token_suffix": "ZM3mJpCA",
      "refresh_token_digest": null,
      "effective_scope": "r:r=can_switch_user r:r=manage_node_membership r:r=manage_accounts r:r=view_logs r:r=run_admin_tasks r:r=run_tests a:r=modify_contact_settings a:r=view_events a:r=view_statistics a:r=manage_global_profiles a:r=manage_global_secure_access_tokens a:r=query_catalog a:r=provision_vss a:r=manage_obj_stores a:r=read_object_storage a:r=write_object_storage a:r=delete_object_storage n:r=manage_storage n:r=manage_networks n:r=provision_vss n:r=remove_vss v:r=dismiss_tasks v:r=update_vss v:r=remove_vss v:r=set_vss_quota v:r=manage_internal_disks v:r=manage_external_disks v:r=manage_removable_disks v:r=manage_disk_cryptography v:r=remove_locked_disks v:r=replicate_disks v:r=synchronize_disks v:r=format_disks v:r=resize_disks v:r=backup_disks v:r=validate_data_integrity v:r=manage_snapshots v:r=manage_targets v:r=manage_profiles v:r=manage_secure_access_tokens v:r=manage_rules n:o=all v:o=all",
      "permissions": {
        "realm": {
          "rights": {
            "can_switch_user": true,
            "manage_node_membership": true,
            "manage_accounts": true,
            "view_logs": true,
            "run_admin_tasks": true,
            "run_tests": true
          }
        },
        "node": {
          "all_realm_scope": true,
          "rights": {
            "manage_storage": true,
            "manage_networks": true,
            "provision_vss": true,
            "remove_vss": true
          }
        },
        "vss": {
          "all_account_scope": true,
          "rights": {
            "dismiss_tasks": true,
            "update_vss": true,
            "remove_vss": true,
            "set_vss_quota": true,
            "manage_internal_disks": true,
            "manage_external_disks": true,
            "manage_removable_disks": true,
            "manage_disk_cryptography": true,
            "remove_locked_disks": true,
            "replicate_disks": true,
            "synchronize_disks": true,
            "format_disks": true,
            "resize_disks": true,
            "backup_disks": true,
            "validate_data_integrity": true,
            "manage_snapshots": true,
            "manage_targets": true,
            "manage_profiles": true,
            "manage_secure_access_tokens": true,
            "manage_rules": true
          }
        },
        "account": {
          "rights": {
            "modify_contact_settings": true,
            "view_events": true,
            "view_statistics": true,
            "manage_global_profiles": true,
            "manage_global_secure_access_tokens": true,
            "query_catalog": true,
            "provision_vss": true,
            "manage_obj_stores": true,
            "read_object_storage": true,
            "write_object_storage": true,
            "delete_object_storage": true
          }
        }
      }
    }
    

    Node

    A Blockbridge Node is an instance of Blockbridge node software running on physical or virtual hardware. It can be a management node, a storage node, or a converged node.

    • A management node provides configuration, monitoring, and other administrative capabilities. The management web application and API clients are terminated at the management node.
    • A storage node delivers secure storage services using direct-attached and iSCSI storage. Client iSCSI connections are terminated at a storage node.
    • A converged node contains both a management node and a storage node in one system. For most management purposes (including in the management web application) converged nodes are treated as a distinct management node and storage node.

    Attributes

    NameTypeDescription
    idstringobject id
    uuiduuidobject uuid
    labelstringuser assigned label
    Length: 1..64
    serialstringnode serial number
    install_tokenstringgenerated installation token
    install_modestringinstallation mode
    activation_codestringgenerated activation code
    activation_statestringactivation state
    license:typestringlicense type
    one of:"none" or "development" or "evaluation" or "production" or "subscription"
    license:minutes_remainingintegerlicense minutes remaining
    license:tokenstringlicense token
    eula:acceptedbooleanend user license accepted
    eula:accepted_atnullable integerend user license accepted at (time)
    Range: 0 <= value
    registration:allowbooleanallow registrations for this node
    notesnullable stringuser assigned notes
    Length: 0..256
    ctimeintegernode create time
    Range: 0 <= value
    mtimeintegernode last modified time
    Range: 0 <= value
    site_idstringsite node is located in
    typestringnode type
    one of:"management" or "storage" or "disk"
    ipnullable objectnode ip address for management
    ip:pub_addripv4public address of service target interface
    ip:pub_descstringpublic address description
    ip:prv_addripv4private address of system interface
    ip:prv_descstringprivate address description
    ip:pub_addr_user_setbooleanpublic address set by user
    ip:prv_addr_user_setbooleanprivate address set by user
    management:castringno documentation
    one of:"none" or "embedded"
    management:hostnamestringno documentation
    Length: 1..∞
    enabledbooleannode enabled for use
    openstack_idp:idnullable stringno documentation
    openstack_idp:uuidnullable uuidno documentation
    openstack_idp:labelstringno documentation
    Length: 1..∞
    openstack_idp:typestringidentity provider type
    one of:"internal" or "openstack"
    openstack_idp:enabledbooleanidentity provider enabled
    openstack_idp:urlnullable stringidP API endpoint
    openstack_idp:auth:user:idnullable stringlook up user by idp-specific index
    openstack_idp:auth:user:namenullable stringlook up user by name/login
    openstack_idp:auth:user:passwordnullable stringauthenticate using supplied password
    openstack_idp:auth:project:idnullable stringlook up project by idp-specific index
    openstack_idp:auth:project:namenullable stringlook up project by name
    openstack_idp:auth:domain:idnullable stringlook up domain by idp-specific index
    openstack_idp:auth:domain:namenullable stringlook up domain by name
    openstack_idp:auto_create_accountbooleanautomatically create mapped accounts
    openstack_idp:auto_create_userbooleanautomatically create mapped users
    openstack_idp:accepted_rolesarrayaccepted roles
    openstack_idp:recheck_intervalnullable integertime after which a token must be re-validated (in seconds)
    openstack_portal_filternullable objectIP filter rule
    openstack_portal_filter:ipipv4IP address
    openstack_portal_filter:maskipv4netmask
    tagsarrayobject tags
    visibility_ctlstringobject visibility control
    one of:"default" or "show" or "hide"
    restrictedbooleannode present but restricted from use
    converged_sn_idstringid of converged storage node
    converged_mn_idstringid of converged management node
    disk_nodesarrayobject tags
    params:scheduling_algorithms/typestringscheduling algorithm type
    one of:"ideal_usage"
    params:scheduling_algorithms/labelnullable stringno documentation
    params:scheduling_algorithms/ideal_usage_pctnullable stringno documentation
    params:scheduling_algorithms/min_usage_pctnullable stringno documentation
    params:scheduling_algorithms/capacity_weight_pctnullable stringno documentation
    params:scheduling_algorithms/iops_weight_pctnullable stringno documentation
    params:scheduling_algorithms/defaultnullable stringno documentation
    params:service_templates/typestringservice type name
    Length: 1..32
    params:service_templates/descriptionstringservice type description
    Length: 1..256
    params:service_templates/defaultbooleandefault template
    params:service_templates/tags:includearrayinclude array
    params:service_templates/tags:excludearrayexclude array
    params:service_templates/size:reserve_minnullable integerminimum size reserve
    params:service_templates/size:reserve_maxnullable integermaximum size reserve
    params:service_templates/size:limit_percentnullable integerSet the hard limit on storage consumption to a percentage of the size reserved. Must be at least 100% of the reserved size. If null, it's unlimited.
    Range: 100 <= value
    params:service_templates/iops:rationullable integerbaseline IOPS ratio, specified as a ratio of IOPS to reserved size (in IOPS/GiB)
    params:service_templates/iops:burstnullable integerIOPS burst limit (in IOPS)
    params:service_templates/iops:burst_creditnullable integermaximum burst credits (in IOPS credits); not supported with provisioned IOPS
    params:service_templates/iops:minnullable integerminimum IOPS
    params:service_templates/iops:maxnullable integermaximum IOPS
    params:service_templates/iops:typestringhow limited IOPS are specified
    one of:"disabled" or "capacity-scaled"
    params:service_templates/iops:burst_typestringhow burst IOPS are specified
    one of:"disabled" or "admin-fixed" or "capacity-scaled"
    params:service_templates/iops:burst_rationullable integerbaseline burst IOPS ratio, specified as a ratio of burst IOPS to reserved size (in IOPS/GiB)
    params:service_templates/piops:typestringhow provisioned IOPS are specified
    one of:"disabled" or "admin-fixed" or "capacity-scaled" or "user-specified"
    params:service_templates/piops:valuenullable integerfixed IOPS value
    Range: 1 <= value
    params:service_templates/piops:rationullable integerbaseline provisioned IOPS ratio, specified as a ratio of IOPS to reserved size (in IOPS/GiB)
    params:service_templates/piops:minnullable integerminimum provisioned IOPS
    params:service_templates/piops:maxnullable integermaximum provisioned IOPS
    params:account_templates/provisioning:size_reserve_maxnullable integermaximum size reserve of a single virtual storage service
    params:account_templates/provisioning:iops_reserve_maxnullable integermaximum iops reserve of a single virtual storage service
    params:account_templates/provisioning:tags_includearraytags included
    params:account_templates/provisioning:tags_excludearraytags excluded
    params:account_templates/provisioning:tags_permitnullable arraytags permitted
    params:account_templates/provisioning:tags_permitnullable arraytags permitted
    params:account_templates/limits:vss_numnullable integernumber of virtual storage services
    params:account_templates/limits:size_reserve_totalnullable integermaximum size of storage
    params:account_templates/permissions:realm:rights:can_switch_userbooleancan SU to lower level user
    params:account_templates/permissions:realm:rights:manage_node_membershipbooleanaccept or delete nodes from the management network
    params:account_templates/permissions:realm:rights:manage_accountsbooleancan create or delete other accounts, users and their settings
    params:account_templates/permissions:realm:rights:view_logsbooleanview administrative logs
    params:account_templates/permissions:realm:rights:run_admin_tasksbooleanrun realm administrative tasks
    params:account_templates/permissions:realm:rights:run_testsbooleanrun realm administrative tests
    params:account_templates/permissions:node:all_realm_scopebooleanapply to all nodes in the realm
    params:account_templates/permissions:node:nodesarrayscope permissions to specific nodes
    params:account_templates/permissions:node:rights:manage_storagebooleanconfigure OS devices, iSCSI devices, and system datastores
    params:account_templates/permissions:node:rights:manage_networksbooleanconfigure networks
    params:account_templates/permissions:node:rights:provision_vssbooleanmanually provision virtual storage services
    params:account_templates/permissions:node:rights:remove_vssbooleanremove virtual storage services
    params:account_templates/permissions:vss:all_account_scopebooleanapply to all virtual storage services in the account
    params:account_templates/permissions:vss:vssesarraylimit scope to specified vsses
    params:account_templates/permissions:vss:rights:dismiss_tasksbooleandismiss tasks
    params:account_templates/permissions:vss:rights:update_vssbooleanupdate vss configuration
    params:account_templates/permissions:vss:rights:remove_vssbooleanremove vss
    params:account_templates/permissions:vss:rights:set_vss_quotabooleanset vss quota
    params:account_templates/permissions:vss:rights:manage_internal_disksbooleanmanage internal disks
    params:account_templates/permissions:vss:rights:manage_external_disksbooleanmanage external disks
    params:account_templates/permissions:vss:rights:manage_removable_disksbooleanmanage removable disks
    params:account_templates/permissions:vss:rights:manage_disk_cryptographybooleanmanage disk cryptography
    params:account_templates/permissions:vss:rights:remove_locked_disksbooleanremove locked disks
    params:account_templates/permissions:vss:rights:replicate_and_synchronize_disksbooleanreplicate and synchronize disks
    params:account_templates/permissions:vss:rights:validate_data_integritybooleanvalidate data integrity
    params:account_templates/permissions:vss:rights:manage_targetsbooleanmanage targets
    params:account_templates/permissions:vss:rights:manage_profilesbooleanmanage profiles
    params:account_templates/permissions:vss:rights:manage_secure_access_tokensbooleanmanage secure access tokens
    params:account_templates/permissions:vss:rights:manage_rulesbooleanmanage rules
    params:account_templates/permissions:vss:rights:replicate_disksbooleanreplicate disks
    params:account_templates/permissions:vss:rights:synchronize_disksbooleansynchronize disks
    params:account_templates/permissions:vss:rights:format_disksbooleanformat disks
    params:account_templates/permissions:vss:rights:resize_disksbooleanresize disks
    params:account_templates/permissions:vss:rights:backup_disksbooleanbackup disks
    params:account_templates/permissions:vss:rights:manage_snapshotsbooleanmanage snapshots
    params:account_templates/permissions:vss:rights:compress_disksbooleancompress disks
    params:account_templates/permissions:vss:rights:manage_disk_compressionbooleanmanage disk
    params:account_templates/permissions:user:rights:manage_usersbooleancreate or delete users in an account
    params:account_templates/permissions:user:rights:modify_user_contact_settingsbooleanmodify user contact info
    params:account_templates/permissions:user:rights:reset_user_passwordbooleanreset user password
    params:account_templates/permissions:user:rights:reset_user_two_factorbooleanreset two factor authentication
    params:account_templates/permissions:user:rights:manage_authorizationsbooleancreate or delete persistent authorizations
    params:account_templates/permissions:account:rights:modify_contact_settingsbooleanmodify account contact settings
    params:account_templates/permissions:account:rights:view_eventsbooleanview events
    params:account_templates/permissions:account:rights:view_statisticsbooleanview statistics
    params:account_templates/permissions:account:rights:manage_global_profilesbooleanmanage global profiles
    params:account_templates/permissions:account:rights:manage_global_secure_access_tokensbooleanmanage global secure access tokens
    params:account_templates/permissions:account:rights:query_catalogbooleanquery product catalog
    params:account_templates/permissions:account:rights:provision_vssbooleanprovision vss from catalog
    params:account_templates/permissions:account:rights:manage_obj_storesbooleanmanage object stores
    params:account_templates/permissions:account:rights:read_object_storagebooleanread from object storage
    params:account_templates/permissions:account:rights:write_object_storagebooleanwrite to object storage
    params:account_templates/permissions:account:rights:delete_object_storagebooleandelete from object storage
    params:account_templates/typestringaccount template name
    Length: 1..32
    params:account_templates/descriptionstringaccount template description
    Length: 1..256
    params:account_templates/defaultbooleandefault template
    params:scheduling_workloads/workloadstringworkload
    one of:"lower_iops" or "normal_iops" or "higher_iops"
    params:scheduling_workloads/iopsintegerworkload IOPS
    status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    status:detailnullable stringstatus detail
    default_visibilitystringobject visibility default
    one of:"show" or "hide"
    visibilitystringobject visibility status
    one of:"show" or "hide"
    isotimenullable date-timelocal time on node
    humantimenullable stringhuman-readable time on node
    build_versionnullable stringversion of software running on node
    build_timenullable stringtime and date that node software was built
    versionnullable objectbuild version
    version:hashstringbuild hash
    version:minorintegerbuild minor version
    version:majorintegerbuild major version
    version:timestampintegerbuild timestamp
    version:patchintegerbuild patch version
    version:tagstringbuild tag
    version:releasestringbuild release
    cpu_processorsnullable integernumber of processors on node
    cpu_modelnullable stringvendor and model of first CPU on node
    mem_totalnullable integersystem memory on node
    kernel_versionnullable stringkernel version on node
    enclosuresnullable stringenclosure data
    sn:usage:vdisk_intnullable integerinternal virtual disks on node
    sn:usage:rulesnullable integerrules on node
    sn:usage:vssnullable integervirtual storage services on node
    sn:usage:targetsnullable integertargets on node
    sn:usage:removablenullable integerremovable virtual disks on node
    sn:usage:sdsnullable integerdatastores on node
    sn:usage:clonesnullable integercloned disks on node
    sn:usage:iscsi_devnullable integeriSCSI devices on node
    sn:usage:snapshotsnullable integersnapshots on node
    sn:usage:repl_slavesnullable integerreplication slave virtual disks on node
    sn:usage:vdisk_int_cap_mbnullable integersum of internal virtual disk capacities in megabytes
    sn:usage:conn_securenullable integersecure iSCSI session connections to node targets
    sn:usage:conn_insecurenullable integerinsecure iSCSI session connections to node targets
    sn:usage:vdisk_extnullable integerexternal virtual disks on node
    sn:usage:os_devnullable integerOS devices on node
    sn:usage:sessionsnullable integeriSCSI sessions connected to node targets
    sn:usage:accountsnullable integeraccounts on node
    sn:usage:profilesnullable integerinitiator profiles on node
    sn:usage:repl_mastersnullable integerreplication master virtual disks on node
    sn:usage:vss_maxnullable integermaximum number of virtual storage services on the node
    sn:usage:session_maxnullable integermaximum number of iSCSI sessions on the node
    sn:usage:target_maxnullable integermaximum number of iSCSI targets on the node
    sn:usage:vdisk_maxnullable integermaximum number of virtual disks on the node
    sn:usage:os_dev_maxnullable integermaximum number of configurable os devices on the node
    sn:usage:profile_maxnullable integermaximum number of initiator profiles on the node
    sn:usage:rule_maxnullable integermaximum number of rules on the node
    sn:usage:devnullable integeriSCSI and OS devices on node
    sn:usage:vdisknullable integervirtual disks on node
    sn:usage:connnullable integeriSCSI session connections to node targets
    sn:usage:nvme_qpsnullable integerNVMe queue pairs, including admin queues
    sn:usage:sessions_nvmenullable integerNVMe sessions (associations) connected to node targets
    sn:usage:sessions_iscsinullable integeriSCSI sessions connected to node targets
    sn:cplx_numnullable integernumber of processor complexes
    sn:cplx/idstringprocessor complex id
    sn:cplx/status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    sn:cplx/status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    sn:cplx/status:detailnullable stringstatus detail
    sn:cplx/data_cache_sizenullable integersize of processor complex data cache
    sn:cplx/meta_cache_size_limitnullable integerlimit on total memory that may be reserved for metadata caching
    sn:cplx/max_data_log_sizenullable integermaximum data log size that may be created
    sn:cplx/max_meta_cache_sizenullable integermaximum metadata cache size that may be specified
    sn:cplx/availablebooleanavailable for datastore placement
    sn:cplx/labelstringcustomer-friendly textual label
    restore:start_timenullable integernode restore start time
    Range: 0 <= value
    restore:end_timenullable integernode restore end time (success or failure)
    Range: 0 <= value
    restore:statenullable stringnode restore job state
    one of:"starting" or "running" or "success" or "failed"
    restore:errorsnullable integercount of errors during node restore, see event log for details
    restore:phasenullable stringdescription of current node restore phase
    Length: 0..80
    restore:failurenullable stringon node restore failure, description of reason
    Length: 0..80
    cluster:reports/idstringname of cluster member that generated this report
    cluster:reports/members/activenullable booleancluster member is actively hosting services
    cluster:reports/members/cluster_ipnullable ipv4cluster network address of member
    cluster:reports/members/rolenullable stringcluster member role
    one of:"active" or "passive" or "vote"
    cluster:reports/members/failovernullable booleanthis cluster member is passive and ready for accept failover
    cluster:reports/members/status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    cluster:reports/members/status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    cluster:reports/members/status:detailnullable stringstatus detail
    cluster:reports/members/status_ipnullable ipv4address of cluster member from which it reports status
    cluster:reports/members/idstringcluster member name
    cluster:reports/members/statenullable stringcluster member state
    one of:"dirty" or "standby" or "maintenance" or "clean" or "offline"
    cluster:reports/members/onlinenullable booleancluster member is online
    cluster:reports/failovernullable stringcluster member failover capability
    one of:"available" or "unavailable"
    cluster:reports/status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    cluster:reports/status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    cluster:reports/status:detailnullable stringstatus detail
    cluster:members/activenullable booleancluster member is actively hosting services
    cluster:members/cluster_ipnullable ipv4cluster network address of member
    cluster:members/rolenullable stringcluster member role
    one of:"active" or "passive" or "vote"
    cluster:members/failovernullable booleanthis cluster member is passive and ready for accept failover
    cluster:members/status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    cluster:members/status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    cluster:members/status:detailnullable stringstatus detail
    cluster:members/status_ipnullable ipv4address of cluster member from which it reports status
    cluster:members/idstringcluster member name
    cluster:members/statenullable stringcluster member state
    one of:"dirty" or "standby" or "maintenance" or "clean" or "offline"
    cluster:members/onlinenullable booleancluster member is online
    cluster:failovernullable stringcluster failover capability
    one of:"available" or "unavailable"
    cluster:status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    cluster:status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    cluster:status:detailnullable stringstatus detail
    cluster:is_clusternullable booleannode is running in cluster mode

    Node Info

    Retrieve an existing node.

    GET /node/{node_id_or_serial}
    

    Curl Example

    $ curl https://mgmt-node/api/node/node:10000 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:50 GMT
    Server: Goliath
    ETag: "6b394f6213c622e08f82de002403957d"
    Content-Type: application/json
    Content-Length: 2163
    
    {
      "id": "node:10000",
      "uuid": "4347e01f-f106-4735-bfbf-68addda9982f",
      "serial": "NOD0F68194C40601558",
      "evt_qry": "serial=NOD0F68194C40601558",
      "ctime": 1507562835087,
      "mtime": 1507569964547,
      "seq": 1507569993701,
      "label": "node101",
      "notes": "node updated to 101",
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507569969000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                94,
                160,
                160,
                160
              ],
              "v": "dbg"
            },
            {
              "d": [
                45,
                85,
                85,
                85
              ],
              "v": "info"
            },
            {
              "d": [
                1,
                2,
                2,
                2
              ],
              "v": "warn"
            },
            {
              "d": [
                2,
                2,
                2,
                2
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507569969666
      },
      "rec_status": null,
      "site_id": "site:10",
      "type": [
        "storage"
      ],
      "tags": [
    
      ],
      "disk_nodes": [
    
      ],
      "license": {
        "type": [
          "evaluation"
        ],
        "minutes_remaining": 43100,
        "token": "8cf63f34593571104393cb8306b6cb13"
      },
      "activation_code": null,
      "activation_state": "activated",
      "install_mode": "solo",
      "install_token": "WyJpMSIsIm1hc3Rlci1ob28yd29vMWFlcGhlaTZjIiwic3MiLDMxNzg5MjYwODJd",
      "ip": {
        "pub_addr": "172.16.100.61",
        "pub_addr_user_set": true,
        "prv_addr": "10.10.200.23",
        "prv_addr_user_set": true
      },
      "build_time": "Thu Oct 05 10:32 UTC 2017",
      "build_version": "4.0.0-4252.1",
      "cpu_model": "Intel Xeon E312xx (Sandy Bridge)",
      "cpu_processors": 1,
      "mem_total": 1929072640,
      "humantime": "Mon Oct 09 17:26 UTC 2017",
      "isotime": "2017-10-09T17:26+00:00",
      "version": {
        "major": 4,
        "minor": 0,
        "patch": 0,
        "release": "4252.1",
        "tag": "",
        "hash": "f41b54b0c02b9ecbee50ffca17fc1d74a6e20672",
        "timestamp": 1507199541000
      },
      "restore": {
        "start_time": null,
        "end_time": null,
        "state": null,
        "errors": null,
        "phase": null,
        "failure": null
      },
      "sn": {
        "data_cache_size": 536870912,
        "meta_cache_size_limit": 134217728,
        "max_data_log_size": 142078242,
        "max_meta_cache_size": 134217728,
        "usage": {
          "accounts": 0,
          "sds": 0,
          "os_dev": 8,
          "iscsi_dev": 0,
          "vss": 0,
          "vdisk_int": 0,
          "vdisk_ext": 0,
          "clones": 0,
          "snapshots": 0,
          "removable": 0,
          "repl_masters": 0,
          "repl_slaves": 0,
          "profiles": 0,
          "targets": 0,
          "rules": 0,
          "sessions": 0,
          "conn_insecure": 0,
          "conn_secure": 0,
          "vdisk_int_cap_mb": 0,
          "os_dev_max": 64,
          "profile_max": 8192,
          "rule_max": 16384,
          "session_max": 8192,
          "target_max": 8192,
          "vdisk_max": 4096,
          "vss_max": 4096
        }
      },
      "cluster": {
        "is_cluster": false,
        "failover": null,
        "members": [
    
        ],
        "status": {
          "value": "pending",
          "indicator": "degraded",
          "detail": "unable to connect to cluster"
        }
      }
    }
    

    Node List

    Enumerate nodes.

    GET /node
    

    Curl Example

    $ curl https://mgmt-node/api/node \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:50 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 6744
    
    [
      {
        "id": "node:10000",
        "uuid": "4347e01f-f106-4735-bfbf-68addda9982f",
        "serial": "NOD0F68194C40601558",
        "evt_qry": "serial=NOD0F68194C40601558",
        "ctime": 1507562835087,
        "mtime": 1507569964547,
        "seq": 1507569993701,
        "label": "node101",
        "notes": "node updated to 101",
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507569969000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  94,
                  160,
                  160,
                  160
                ],
                "v": "dbg"
              },
              {
                "d": [
                  45,
                  85,
                  85,
                  85
                ],
                "v": "info"
              },
              {
                "d": [
                  1,
                  2,
                  2,
                  2
                ],
                "v": "warn"
              },
              {
                "d": [
                  2,
                  2,
                  2,
                  2
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507569969666
        },
        "rec_status": null,
        "site_id": "site:10",
        "type": [
          "storage"
        ],
        "tags": [
    
        ],
        "disk_nodes": [
    
        ],
        "license": {
          "type": [
            "evaluation"
          ],
          "minutes_remaining": 43100,
          "token": "8cf63f34593571104393cb8306b6cb13"
        },
        "activation_code": null,
        "activation_state": "activated",
        "install_mode": "solo",
        "install_token": "WyJpMSIsIm1hc3Rlci1ob28yd29vMWFlcGhlaTZjIiwic3MiLDMxNzg5MjYwODJd",
        "ip": {
          "pub_addr": "172.16.100.61",
          "pub_addr_user_set": true,
          "prv_addr": "10.10.200.23",
          "prv_addr_user_set": true
        },
        "build_time": "Thu Oct 05 10:32 UTC 2017",
        "build_version": "4.0.0-4252.1",
        "cpu_model": "Intel Xeon E312xx (Sandy Bridge)",
        "cpu_processors": 1,
        "mem_total": 1929072640,
        "humantime": "Mon Oct 09 17:26 UTC 2017",
        "isotime": "2017-10-09T17:26+00:00",
        "version": {
          "major": 4,
          "minor": 0,
          "patch": 0,
          "release": "4252.1",
          "tag": "",
          "hash": "f41b54b0c02b9ecbee50ffca17fc1d74a6e20672",
          "timestamp": 1507199541000
        },
        "restore": {
          "start_time": null,
          "end_time": null,
          "state": null,
          "errors": null,
          "phase": null,
          "failure": null
        },
        "sn": {
          "data_cache_size": 536870912,
          "meta_cache_size_limit": 134217728,
          "max_data_log_size": 142078242,
          "max_meta_cache_size": 134217728,
          "usage": {
            "accounts": 0,
            "sds": 0,
            "os_dev": 8,
            "iscsi_dev": 0,
            "vss": 0,
            "vdisk_int": 0,
            "vdisk_ext": 0,
            "clones": 0,
            "snapshots": 0,
            "removable": 0,
            "repl_masters": 0,
            "repl_slaves": 0,
            "profiles": 0,
            "targets": 0,
            "rules": 0,
            "sessions": 0,
            "conn_insecure": 0,
            "conn_secure": 0,
            "vdisk_int_cap_mb": 0,
            "os_dev_max": 64,
            "profile_max": 8192,
            "rule_max": 16384,
            "session_max": 8192,
            "target_max": 8192,
            "vdisk_max": 4096,
            "vss_max": 4096
          }
        },
        "cluster": {
          "is_cluster": false,
          "failover": null,
          "members": [
    
          ],
          "status": {
            "value": "pending",
            "indicator": "degraded",
            "detail": "unable to connect to cluster"
          }
        }
      },
      {
        "id": "node:10",
        "uuid": "c323c428-2336-4bc4-9412-839e2d325261",
        "serial": "NOD0F68194C406264FD",
        "evt_qry": "serial=NOD0F68194C406264FD",
        "ctime": 1507562833437,
        "mtime": 1507569970863,
        "seq": 1507569970885,
        "label": "management node",
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": null,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "v": "dbg",
                "d": [
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "v": "info",
                "d": [
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "v": "warn",
                "d": [
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "v": "err",
                "d": [
                  0,
                  0,
                  0,
                  0
                ]
              }
            ]
          },
          "status": "current",
          "seq": 1507562839605
        },
        "rec_status": null,
        "site_id": "site:10",
        "type": [
          "management"
        ],
        "tags": [
    
        ],
        "disk_nodes": null,
        "license": {
          "type": [
            "evaluation"
          ],
          "minutes_remaining": 43100,
          "token": "8cf63f34593571104393cb8306b6cb13"
        },
        "eula": {
          "accepted": true,
          "accepted_at": 1507563022812
        },
        "activation_code": null,
        "activation_state": null,
        "params": {
          "scheduling_algorithms": [
            {
              "type": [
                "ideal_usage"
              ],
              "label": "ideal-usage",
              "ideal_usage_pct": 50,
              "min_usage_pct": 10,
              "capacity_weight_pct": 50,
              "iops_weight_pct": 50,
              "default": true
            }
          ],
          "service_templates": [
            {
              "type": [
                "gp"
              ],
              "description": "General Purpose",
              "default": true,
              "tags": {
                "include": [
    
                ],
                "exclude": [
    
                ]
              },
              "size": {
                "reserve_min": 1073741824,
                "reserve_max": 17592186044416,
                "limit_percent": 200
              },
              "iops": {
                "ratio": 3,
                "burst": 3000,
                "burst_credit": 5400000,
                "min": 100,
                "max": 3000
              },
              "piops": {
                "type": [
                  "disabled"
                ],
                "value": null,
                "ratio": null,
                "min": null,
                "max": null
              }
            },
            {
              "type": [
                "piops"
              ],
              "description": "Provisioned IOPS",
              "default": false,
              "tags": {
                "include": [
    
                ],
                "exclude": [
    
                ]
              },
              "size": {
                "reserve_min": 4294967296,
                "reserve_max": 17592186044416,
                "limit_percent": 200
              },
              "iops": {
                "ratio": 50,
                "burst": null,
                "burst_credit": null,
                "min": 100,
                "max": 20000
              },
              "piops": {
                "type": [
                  "user-specified"
                ],
                "value": null,
                "ratio": 50,
                "min": 100,
                "max": 20000
              }
            },
            {
              "type": [
                "unlimited"
              ],
              "description": "Unlimited Provisioning",
              "default": false,
              "tags": {
                "include": [
    
                ],
                "exclude": [
    
                ]
              },
              "size": {
                "reserve_min": 1048576,
                "reserve_max": null,
                "limit_percent": null
              },
              "iops": {
                "ratio": null,
                "burst": null,
                "burst_credit": null,
                "min": null,
                "max": null
              },
              "piops": {
                "type": [
                  "disabled"
                ],
                "value": null,
                "ratio": null,
                "min": null,
                "max": null
              }
            }
          ],
          "scheduling_workloads": [
            {
              "workload": "lower_iops",
              "iops": 100
            },
            {
              "workload": "normal_iops",
              "iops": 500
            },
            {
              "workload": "higher_iops",
              "iops": 2000
            }
          ],
          "account_templates": [
            {
              "type": [
                "standard"
              ],
              "description": "Standard Account",
              "default": true,
              "provisioning": {
                "size_reserve_max": null,
                "iops_reserve_max": null,
                "tags_include": [
    
                ],
                "tags_exclude": [
    
                ],
                "tags_permit": null
              },
              "limits": {
                "vss_num": null,
                "size_reserve_total": null
              },
              "permissions": {
                "vss": {
                  "all_account_scope": true,
                  "rights": {
                    "dismiss_tasks": true,
                    "update_vss": true,
                    "remove_vss": true,
                    "set_vss_quota": true,
                    "manage_internal_disks": true,
                    "manage_external_disks": true,
                    "manage_removable_disks": true,
                    "manage_disk_cryptography": true,
                    "remove_locked_disks": true,
                    "replicate_disks": true,
                    "synchronize_disks": true,
                    "format_disks": true,
                    "resize_disks": true,
                    "backup_disks": true,
                    "validate_data_integrity": true,
                    "manage_snapshots": true,
                    "manage_targets": true,
                    "manage_profiles": true,
                    "manage_secure_access_tokens": true,
                    "manage_rules": true
                  }
                },
                "user": {
                  "rights": {
                    "manage_users": true,
                    "modify_user_contact_settings": true,
                    "reset_user_password": true,
                    "reset_user_two_factor": true,
                    "manage_authorizations": true
                  }
                },
                "account": {
                  "rights": {
                    "modify_contact_settings": true,
                    "view_events": true,
                    "view_statistics": true,
                    "manage_global_profiles": true,
                    "manage_global_secure_access_tokens": true,
                    "query_catalog": true,
                    "provision_vss": true,
                    "manage_obj_stores": true,
                    "read_object_storage": true,
                    "write_object_storage": true,
                    "delete_object_storage": true
                  }
                }
              }
            }
          ]
        },
        "openstack_idp": {
          "id": "idp:1:10",
          "uuid": "e1f2692a-4543-443c-9c08-c7afc4349b2f",
          "label": "openstack",
          "type": [
            "openstack"
          ],
          "enabled": false,
          "url": null,
          "auth": {
            "user": {
              "id": null,
              "name": "admin",
              "password": null
            },
            "project": {
              "id": null,
              "name": "admin"
            },
            "domain": {
              "id": "default",
              "name": null
            }
          },
          "auto_create_account": true,
          "auto_create_user": true,
          "accepted_roles": [
    
          ],
          "recheck_interval": 60
        },
        "install_mode": null,
        "install_token": null,
        "ip": {
          "pub_addr": "172.16.100.61",
          "pub_addr_user_set": true,
          "prv_addr": "10.10.200.23",
          "prv_addr_user_set": true
        },
        "build_time": "Thu Oct 05 10:32 UTC 2017",
        "build_version": "4.0.0-4252.1",
        "cpu_model": null,
        "cpu_processors": null,
        "mem_total": null,
        "humantime": "Mon Oct 09 17:26 UTC 2017",
        "isotime": "2017-10-09T17:26+00:00",
        "version": {
          "major": 4,
          "minor": 0,
          "patch": 0,
          "release": "4252.1",
          "tag": "",
          "hash": "f41b54b0c02b9ecbee50ffca17fc1d74a6e20672",
          "timestamp": 1507199541000
        },
        "restore": {
          "start_time": null,
          "end_time": null,
          "state": null,
          "errors": null,
          "phase": null,
          "failure": null
        },
        "cluster": {
          "is_cluster": false,
          "failover": null,
          "members": [
    
          ],
          "status": {
            "value": "pending",
            "indicator": "degraded",
            "detail": "unable to connect to cluster"
          }
        }
      }
    ]
    

    Node Create

    Create a new storage node.

    POST /node
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | site_id | string | site id | | type | string | type of processing node
    one of:"management" or "storage" or "disk" |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | uuid | uuid | UUID to use for created object | | label | string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | license | string | software license bundle | | mode | string | node clustering mode
    default: "solo"
    one of:"solo" or "cluster" | | pub_ipaddr | ipv4 | node public IP address | | pub_ipaddr_desc | string | node public IP address description | | prv_ipaddr | ipv4 | node private IP address | | prv_ipaddr_desc | string | node private IP address description | | maintenance:mode | string | maintenance mode
    one of:"none" or "restrict" or "rendezvous" | | maintenance:restrict/type | string | restriction type
    one of:"svc_purchase" or "pt_queue_user" or "pt_queue_admin" or "pt_queue_remote" or "pt_rpc_send" or "pt_rpc_recv" or "pt_sched_user" or "pt_sched_admin" or "rpc_send" or "rpc_recv" or "rc_task_add" or "rc_task_sched" or "rc_msg_send" or "rc_msg_recv" or "cp_proxy" or "slp_send_boot" | | maintenance:restrict/set | boolean | restriction set | | maintenance:reason | string | reason for restriction | | params:scheduling_algorithms/type | string | scheduling algorithm type
    one of:"ideal_usage" | | params:scheduling_algorithms/label | nullable string | no documentation | | params:scheduling_algorithms/ideal_usage_pct | nullable string | no documentation | | params:scheduling_algorithms/min_usage_pct | nullable string | no documentation | | params:scheduling_algorithms/capacity_weight_pct | nullable string | no documentation | | params:scheduling_algorithms/iops_weight_pct | nullable string | no documentation | | params:scheduling_algorithms/default | nullable string | no documentation | | params:service_templates/type | string | service type name
    Length: 1..32 | | params:service_templates/description | string | service type description
    Length: 1..256 | | params:service_templates/default | boolean | default template | | params:service_templates/tags:include | array | include array | | params:service_templates/tags:exclude | array | exclude array | | params:service_templates/size:reserve_min | nullable integer | minimum size reserve | | params:service_templates/size:reserve_max | nullable integer | maximum size reserve | | params:service_templates/size:limit_percent | nullable integer | Set the hard limit on storage consumption to a percentage of the size reserved. Must be at least 100% of the reserved size. If null, it's unlimited.
    Range: 100 <= value | | params:service_templates/iops:ratio | nullable integer | baseline IOPS ratio, specified as a ratio of IOPS to reserved size (in IOPS/GiB) | | params:service_templates/iops:burst | nullable integer | IOPS burst limit (in IOPS) | | params:service_templates/iops:burst_credit | nullable integer | maximum burst credits (in IOPS credits); not supported with provisioned IOPS | | params:service_templates/iops:min | nullable integer | minimum IOPS | | params:service_templates/iops:max | nullable integer | maximum IOPS | | params:service_templates/iops:type | string | how limited IOPS are specified
    default: "disabled"
    one of:"disabled" or "capacity-scaled" | | params:service_templates/iops:burst_type | string | how burst IOPS are specified
    default: "disabled"
    one of:"disabled" or "admin-fixed" or "capacity-scaled" | | params:service_templates/iops:burst_ratio | nullable integer | baseline burst IOPS ratio, specified as a ratio of burst IOPS to reserved size (in IOPS/GiB) | | params:service_templates/piops:type | string | how provisioned IOPS are specified
    default: "disabled"
    one of:"disabled" or "admin-fixed" or "capacity-scaled" or "user-specified" | | params:service_templates/piops:value | nullable integer | fixed IOPS value
    Range: 1 <= value | | params:service_templates/piops:ratio | nullable integer | baseline provisioned IOPS ratio, specified as a ratio of IOPS to reserved size (in IOPS/GiB) | | params:service_templates/piops:min | nullable integer | minimum provisioned IOPS | | params:service_templates/piops:max | nullable integer | maximum provisioned IOPS | | cert_fingerprint | string | TLS certificate fingerprint | | openstack_idp:id | nullable string | no documentation | | openstack_idp:uuid | nullable uuid | no documentation | | openstack_idp:label | string | no documentation
    default: "openstack"
    Length: 1..∞ | | openstack_idp:type | string | identity provider type
    default: "openstack"
    one of:"internal" or "openstack" | | openstack_idp:enabled | boolean | identity provider enabled | | openstack_idp:url | nullable string | idP API endpoint | | openstack_idp:auth:user:id | nullable string | look up user by idp-specific index | | openstack_idp:auth:user:name | nullable string | look up user by name/login
    default: "admin" | | openstack_idp:auth:user:password | nullable string | authenticate using supplied password | | openstack_idp:auth:project:id | nullable string | look up project by idp-specific index | | openstack_idp:auth:project:name | nullable string | look up project by name
    default: "admin" | | openstack_idp:auth:domain:id | nullable string | look up domain by idp-specific index
    default: "default" | | openstack_idp:auth:domain:name | nullable string | look up domain by name | | openstack_idp:auto_create_account | boolean | automatically create mapped accounts
    default: true | | openstack_idp:auto_create_user | boolean | automatically create mapped users
    default: true | | openstack_idp:accepted_roles | array | accepted roles
    default: [] | | openstack_idp:recheck_interval | nullable integer | time after which a token must be re-validated (in seconds)
    default: 60 | | visibility_ctl | string | object visibility control
    default: "default"
    one of:"default" or "show" or "hide" | | tags | array | object tags |

    Curl Example

    $ curl -X POST https://mgmt-node/api/node \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "label": "node100",
      "site_id": "site:18",
      "type": [
        "storage"
      ]
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:27:39 GMT
    Server: Goliath
    ETag: "a7e87547e5dc760784a3217a9335a328"
    Content-Type: application/json
    Content-Length: 1759
    
    {
      "id": "node:10001",
      "uuid": "e69e5740-19bd-4e5d-a5a8-4ec04776b7d4",
      "serial": "NOD0F68194C40601540",
      "evt_qry": "serial=NOD0F68194C40601540",
      "ctime": 1507570059104,
      "mtime": 1507570059104,
      "seq": 1507570059150,
      "label": "node100",
      "notes": null,
      "status": {
        "value": "degraded",
        "indicator": "degraded",
        "detail": "node not registered"
      },
      "ec": {
        "table": null,
        "status": "retrieving",
        "seq": 1507570059150
      },
      "rec_status": null,
      "site_id": "site:18",
      "type": [
        "storage"
      ],
      "tags": [
    
      ],
      "disk_nodes": [
    
      ],
      "license": {
        "type": [
          "none"
        ],
        "token": "8cf63f34593571104393cb8306b6cb13"
      },
      "activation_code": "WyJhMSIsIjEwLjEwLjIwMC4yMyIsMjA0MDAsMTAwMDEsInN0b3JhZ2UiLCIyMGNhZWQxMTJkMWEzODZiMWRhOGYxM2NiZmJiYzhiMiJd",
      "activation_state": "node not registered",
      "install_mode": "solo",
      "install_token": "WyJpMSIsIm1hc3Rlci1ob28yd29vMWFlcGhlaTZjIiwic3MiLDMxNzg5MjYwODJd",
      "ip": null,
      "build_time": null,
      "build_version": null,
      "cpu_model": null,
      "cpu_processors": null,
      "mem_total": null,
      "humantime": null,
      "isotime": null,
      "version": null,
      "restore": {
        "start_time": null,
        "end_time": null,
        "state": null,
        "errors": null,
        "phase": null,
        "failure": null
      },
      "sn": {
        "data_cache_size": null,
        "meta_cache_size_limit": null,
        "max_data_log_size": null,
        "max_meta_cache_size": null,
        "usage": {
          "accounts": null,
          "sds": null,
          "os_dev": null,
          "iscsi_dev": null,
          "vss": null,
          "vdisk_int": null,
          "vdisk_ext": null,
          "clones": null,
          "snapshots": null,
          "removable": null,
          "repl_masters": null,
          "repl_slaves": null,
          "profiles": null,
          "targets": null,
          "rules": null,
          "sessions": null,
          "conn_insecure": null,
          "conn_secure": null,
          "vdisk_int_cap_mb": null,
          "os_dev_max": null,
          "profile_max": null,
          "rule_max": null,
          "session_max": null,
          "target_max": null,
          "vdisk_max": null,
          "vss_max": null
        }
      },
      "cluster": {
        "is_cluster": false,
        "failover": null,
        "members": [
    
        ],
        "status": {
          "value": "pending",
          "indicator": "degraded",
          "detail": "unable to connect to cluster"
        }
      }
    }
    

    Node Remove

    Remove an existing storage node.

    DELETE /node/{node_id_or_serial}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/node/node:10001 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:40 GMT
    Server: Goliath
    

    Node Update

    Change the configuration of an existing management node or a storage node.

    PATCH /node/{node_id_or_serial}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | label | string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | enabled | boolean | node enabled for use | | maintenance:mode | string | maintenance mode
    one of:"none" or "restrict" or "rendezvous" | | maintenance:restrict/type | string | restriction type
    one of:"svc_purchase" or "pt_queue_user" or "pt_queue_admin" or "pt_queue_remote" or "pt_rpc_send" or "pt_rpc_recv" or "pt_sched_user" or "pt_sched_admin" or "rpc_send" or "rpc_recv" or "rc_task_add" or "rc_task_sched" or "rc_msg_send" or "rc_msg_recv" or "cp_proxy" or "slp_send_boot" | | maintenance:restrict/set | boolean | restriction set | | maintenance:reason | string | reason for restriction | | management:ca | string | no documentation
    one of:"none" or "embedded" | | management:hostname | string | no documentation
    Length: 1..∞ | | pub_ipaddr | ipv4 | node public IP address | | pub_ipaddr_desc | string | node public IP address description | | prv_ipaddr | ipv4 | node private IP address | | prv_ipaddr_desc | string | node private IP address description | | params:scheduling_algorithms/type | string | scheduling algorithm type
    one of:"ideal_usage" | | params:scheduling_algorithms/label | nullable string | no documentation | | params:scheduling_algorithms/ideal_usage_pct | nullable string | no documentation | | params:scheduling_algorithms/min_usage_pct | nullable string | no documentation | | params:scheduling_algorithms/capacity_weight_pct | nullable string | no documentation | | params:scheduling_algorithms/iops_weight_pct | nullable string | no documentation | | params:scheduling_algorithms/default | nullable string | no documentation | | params:service_templates/type | string | service type name
    Length: 1..32 | | params:service_templates/description | string | service type description
    Length: 1..256 | | params:service_templates/default | boolean | default template | | params:service_templates/tags:include | array | include array | | params:service_templates/tags:exclude | array | exclude array | | params:service_templates/size:reserve_min | nullable integer | minimum size reserve | | params:service_templates/size:reserve_max | nullable integer | maximum size reserve | | params:service_templates/size:limit_percent | nullable integer | Set the hard limit on storage consumption to a percentage of the size reserved. Must be at least 100% of the reserved size. If null, it's unlimited.
    Range: 100 <= value | | params:service_templates/iops:ratio | nullable integer | baseline IOPS ratio, specified as a ratio of IOPS to reserved size (in IOPS/GiB) | | params:service_templates/iops:burst | nullable integer | IOPS burst limit (in IOPS) | | params:service_templates/iops:burst_credit | nullable integer | maximum burst credits (in IOPS credits); not supported with provisioned IOPS | | params:service_templates/iops:min | nullable integer | minimum IOPS | | params:service_templates/iops:max | nullable integer | maximum IOPS | | params:service_templates/iops:type | string | how limited IOPS are specified
    default: "disabled"
    one of:"disabled" or "capacity-scaled" | | params:service_templates/iops:burst_type | string | how burst IOPS are specified
    default: "disabled"
    one of:"disabled" or "admin-fixed" or "capacity-scaled" | | params:service_templates/iops:burst_ratio | nullable integer | baseline burst IOPS ratio, specified as a ratio of burst IOPS to reserved size (in IOPS/GiB) | | params:service_templates/piops:type | string | how provisioned IOPS are specified
    default: "disabled"
    one of:"disabled" or "admin-fixed" or "capacity-scaled" or "user-specified" | | params:service_templates/piops:value | nullable integer | fixed IOPS value
    Range: 1 <= value | | params:service_templates/piops:ratio | nullable integer | baseline provisioned IOPS ratio, specified as a ratio of IOPS to reserved size (in IOPS/GiB) | | params:service_templates/piops:min | nullable integer | minimum provisioned IOPS | | params:service_templates/piops:max | nullable integer | maximum provisioned IOPS | | params:account_templates/type | string | account template name
    Length: 1..32 | | params:account_templates/description | string | account template description
    Length: 1..256 | | params:account_templates/default | boolean | default template | | params:account_templates/provisioning:size_reserve_max | nullable integer | maximum size reserve of a single virtual storage service | | params:account_templates/provisioning:iops_reserve_max | nullable integer | maximum iops reserve of a single virtual storage service | | params:account_templates/provisioning:tags_include | array | tags included
    default: [] | | params:account_templates/provisioning:tags_exclude | array | tags excluded
    default: [] | | params:account_templates/provisioning:tags_permit | nullable array | tags permitted | | params:account_templates/provisioning:tags_permit | nullable array | tags permitted | | params:account_templates/limits:vss_num | nullable integer | number of virtual storage services | | params:account_templates/limits:size_reserve_total | nullable integer | maximum size of storage | | params:account_templates/permissions:realm:rights:can_switch_user | boolean | can SU to lower level user | | params:account_templates/permissions:realm:rights:manage_node_membership | boolean | accept or delete nodes from the management network | | params:account_templates/permissions:realm:rights:manage_accounts | boolean | can create or delete other accounts, users and their settings | | params:account_templates/permissions:realm:rights:view_logs | boolean | view administrative logs | | params:account_templates/permissions:realm:rights:run_admin_tasks | boolean | run realm administrative tasks | | params:account_templates/permissions:realm:rights:run_tests | boolean | run realm administrative tests | | params:account_templates/permissions:node:all_realm_scope | boolean | apply to all nodes in the realm
    default: true | | params:account_templates/permissions:node:nodes | array | scope permissions to specific nodes | | params:account_templates/permissions:node:rights:manage_storage | boolean | configure OS devices, iSCSI devices, and system datastores | | params:account_templates/permissions:node:rights:manage_networks | boolean | configure networks | | params:account_templates/permissions:node:rights:provision_vss | boolean | manually provision virtual storage services | | params:account_templates/permissions:node:rights:remove_vss | boolean | remove virtual storage services | | params:account_templates/permissions:vss:all_account_scope | boolean | apply to all virtual storage services in the account
    default: true | | params:account_templates/permissions:vss:vsses | array | limit scope to specified vsses | | params:account_templates/permissions:vss:rights:dismiss_tasks | boolean | dismiss tasks | | params:account_templates/permissions:vss:rights:update_vss | boolean | update vss configuration | | params:account_templates/permissions:vss:rights:remove_vss | boolean | remove vss | | params:account_templates/permissions:vss:rights:set_vss_quota | boolean | set vss quota | | params:account_templates/permissions:vss:rights:manage_internal_disks | boolean | manage internal disks | | params:account_templates/permissions:vss:rights:manage_external_disks | boolean | manage external disks | | params:account_templates/permissions:vss:rights:manage_removable_disks | boolean | manage removable disks | | params:account_templates/permissions:vss:rights:manage_disk_cryptography | boolean | manage disk cryptography | | params:account_templates/permissions:vss:rights:remove_locked_disks | boolean | remove locked disks | | params:account_templates/permissions:vss:rights:replicate_and_synchronize_disks | boolean | replicate and synchronize disks | | params:account_templates/permissions:vss:rights:validate_data_integrity | boolean | validate data integrity | | params:account_templates/permissions:vss:rights:manage_targets | boolean | manage targets | | params:account_templates/permissions:vss:rights:manage_profiles | boolean | manage profiles | | params:account_templates/permissions:vss:rights:manage_secure_access_tokens | boolean | manage secure access tokens | | params:account_templates/permissions:vss:rights:manage_rules | boolean | manage rules | | params:account_templates/permissions:vss:rights:replicate_disks | boolean | replicate disks | | params:account_templates/permissions:vss:rights:synchronize_disks | boolean | synchronize disks | | params:account_templates/permissions:vss:rights:format_disks | boolean | format disks | | params:account_templates/permissions:vss:rights:resize_disks | boolean | resize disks | | params:account_templates/permissions:vss:rights:backup_disks | boolean | backup disks | | params:account_templates/permissions:vss:rights:manage_snapshots | boolean | manage snapshots | | params:account_templates/permissions:vss:rights:compress_disks | boolean | compress disks | | params:account_templates/permissions:vss:rights:manage_disk_compression | boolean | manage disk | | params:account_templates/permissions:user:rights:manage_users | boolean | create or delete users in an account | | params:account_templates/permissions:user:rights:modify_user_contact_settings | boolean | modify user contact info | | params:account_templates/permissions:user:rights:reset_user_password | boolean | reset user password | | params:account_templates/permissions:user:rights:reset_user_two_factor | boolean | reset two factor authentication | | params:account_templates/permissions:user:rights:manage_authorizations | boolean | create or delete persistent authorizations | | params:account_templates/permissions:account:rights:modify_contact_settings | boolean | modify account contact settings | | params:account_templates/permissions:account:rights:view_events | boolean | view events | | params:account_templates/permissions:account:rights:view_statistics | boolean | view statistics | | params:account_templates/permissions:account:rights:manage_global_profiles | boolean | manage global profiles | | params:account_templates/permissions:account:rights:manage_global_secure_access_tokens | boolean | manage global secure access tokens | | params:account_templates/permissions:account:rights:query_catalog | boolean | query product catalog | | params:account_templates/permissions:account:rights:provision_vss | boolean | provision vss from catalog | | params:account_templates/permissions:account:rights:manage_obj_stores | boolean | manage object stores | | params:account_templates/permissions:account:rights:read_object_storage | boolean | read from object storage | | params:account_templates/permissions:account:rights:write_object_storage | boolean | write to object storage | | params:account_templates/permissions:account:rights:delete_object_storage | boolean | delete from object storage | | cert_fingerprint | string | TLS certificate fingerprint | | license | string | software license bundle | | registration:allow | boolean | allow registrations for this node | | openstack_idp:label | string | no documentation
    Length: 1..∞ | | openstack_idp:enabled | boolean | identity provider enabled | | openstack_idp:auto_create_account | boolean | automatically create mapped accounts | | openstack_idp:auto_create_user | boolean | automatically create mapped users | | openstack_idp:url | nullable string | idP API endpoint | | openstack_idp:auth:user:id | nullable string | look up user by idp-specific index | | openstack_idp:auth:user:name | nullable string | look up user by name/login | | openstack_idp:auth:user:password | nullable string | authenticate using supplied password | | openstack_idp:auth:project:id | nullable string | look up project by idp-specific index | | openstack_idp:auth:project:name | nullable string | look up project by name | | openstack_idp:auth:domain:id | nullable string | look up domain by idp-specific index | | openstack_idp:auth:domain:name | nullable string | look up domain by name | | openstack_idp:accepted_roles | array | accepted roles | | eula:accepted | boolean | eula accepted | | tags | array | object tags | | disk_nodes | array | object tags | | visibility_ctl | string | object visibility control
    one of:"default" or "show" or "hide" | | openstack_portal_filter:ip | ipv4 | IP address | | openstack_portal_filter:mask | ipv4 | netmask |

    Curl Example

    $ curl -X PATCH https://mgmt-node/api/node/node:10000 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "label": "node101",
      "notes": "node updated to 101"
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:51 GMT
    Server: Goliath
    ETag: "ff28c49726b8b52cae4c6b4bc04ea79d"
    Content-Type: application/json
    Content-Length: 2163
    
    {
      "id": "node:10000",
      "uuid": "4347e01f-f106-4735-bfbf-68addda9982f",
      "serial": "NOD0F68194C40601558",
      "evt_qry": "serial=NOD0F68194C40601558",
      "ctime": 1507562835087,
      "mtime": 1507570011169,
      "seq": 1507570011197,
      "label": "node101",
      "notes": "node updated to 101",
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507569969000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                94,
                160,
                160,
                160
              ],
              "v": "dbg"
            },
            {
              "d": [
                45,
                85,
                85,
                85
              ],
              "v": "info"
            },
            {
              "d": [
                1,
                2,
                2,
                2
              ],
              "v": "warn"
            },
            {
              "d": [
                2,
                2,
                2,
                2
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507569969666
      },
      "rec_status": null,
      "site_id": "site:10",
      "type": [
        "storage"
      ],
      "tags": [
    
      ],
      "disk_nodes": [
    
      ],
      "license": {
        "type": [
          "evaluation"
        ],
        "minutes_remaining": 43100,
        "token": "8cf63f34593571104393cb8306b6cb13"
      },
      "activation_code": null,
      "activation_state": "activated",
      "install_mode": "solo",
      "install_token": "WyJpMSIsIm1hc3Rlci1ob28yd29vMWFlcGhlaTZjIiwic3MiLDMxNzg5MjYwODJd",
      "ip": {
        "pub_addr": "172.16.100.61",
        "pub_addr_user_set": true,
        "prv_addr": "10.10.200.23",
        "prv_addr_user_set": true
      },
      "build_time": "Thu Oct 05 10:32 UTC 2017",
      "build_version": "4.0.0-4252.1",
      "cpu_model": "Intel Xeon E312xx (Sandy Bridge)",
      "cpu_processors": 1,
      "mem_total": 1929072640,
      "humantime": "Mon Oct 09 17:26 UTC 2017",
      "isotime": "2017-10-09T17:26+00:00",
      "version": {
        "major": 4,
        "minor": 0,
        "patch": 0,
        "release": "4252.1",
        "tag": "",
        "hash": "f41b54b0c02b9ecbee50ffca17fc1d74a6e20672",
        "timestamp": 1507199541000
      },
      "restore": {
        "start_time": null,
        "end_time": null,
        "state": null,
        "errors": null,
        "phase": null,
        "failure": null
      },
      "sn": {
        "data_cache_size": 536870912,
        "meta_cache_size_limit": 134217728,
        "max_data_log_size": 142078242,
        "max_meta_cache_size": 134217728,
        "usage": {
          "accounts": 0,
          "sds": 0,
          "os_dev": 8,
          "iscsi_dev": 0,
          "vss": 0,
          "vdisk_int": 0,
          "vdisk_ext": 0,
          "clones": 0,
          "snapshots": 0,
          "removable": 0,
          "repl_masters": 0,
          "repl_slaves": 0,
          "profiles": 0,
          "targets": 0,
          "rules": 0,
          "sessions": 0,
          "conn_insecure": 0,
          "conn_secure": 0,
          "vdisk_int_cap_mb": 0,
          "os_dev_max": 64,
          "profile_max": 8192,
          "rule_max": 16384,
          "session_max": 8192,
          "target_max": 8192,
          "vdisk_max": 4096,
          "vss_max": 4096
        }
      },
      "cluster": {
        "is_cluster": false,
        "failover": null,
        "members": [
    
        ],
        "status": {
          "value": "pending",
          "indicator": "degraded",
          "detail": "unable to connect to cluster"
        }
      }
    }
    

    Node Discover Devices

    Retrieve a list of operating system storage devices that match the specified parameters.

    GET /node/{node_id_or_serial}/devices
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | type | string | device type
    default: "block"
    one of:"block" | | subsystem | nullable string | device subsystem
    one of:"scsi" or "xen" |

    Curl Example

    $ curl https://mgmt-node/api/node/node:10000/devices \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:50 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 6063
    
    [
      {
        "name": "sdd",
        "desc": "disk",
        "path": "/dev/sdd",
        "preferred_path": "/dev/disk/by-id/wwn-0x60a010a04628d4f81962194c406558c1",
        "parent": "",
        "devlinks": [
          "/dev/bb/6932606f-1cd8-43bc-bc4c-6fb5f8d42846",
          "/dev/disk/by-id/scsi-360a010a04628d4f81962194c406558c1",
          "/dev/disk/by-id/wwn-0x60a010a04628d4f81962194c406558c1",
          "/dev/disk/by-path/ip-172.16.5.148:3260-iscsi-iqn.2009-12.com.blockbridge:t-pjuagemzukanm-abpdmcle-lun-0"
        ],
        "syspath": "/sys/devices/platform/host5/session4/target5:0:0/5:0:0:0/block/sdd",
        "type": [
          "block"
        ],
        "subsystem": "scsi",
        "driver": "sd",
        "raw_size": 107374182400,
        "properties": [
          {
            "name": "DEVLINKS",
            "value": "/dev/bb/6932606f-1cd8-43bc-bc4c-6fb5f8d42846 /dev/disk/by-id/scsi-360a010a04628d4f81962194c406558c1 /dev/disk/by-id/wwn-0x60a010a04628d4f81962194c406558c1 /dev/disk/by-path/ip-172.16.5.148:3260-iscsi-iqn.2009-12.com.blockbridge:t-pjuagemzukanm-abpdmcle-lun-0"
          },
          {
            "name": "DEVNAME",
            "value": "/dev/sdd"
          },
          {
            "name": "DEVPATH",
            "value": "/devices/platform/host5/session4/target5:0:0/5:0:0:0/block/sdd"
          },
          {
            "name": "DEVTYPE",
            "value": "disk"
          },
          {
            "name": "DM_MULTIPATH_TIMESTAMP",
            "value": "1507562788"
          },
          {
            "name": "ID_BUS",
            "value": "scsi"
          },
          {
            "name": "ID_MODEL",
            "value": "SECURE_DRIVE"
          },
          {
            "name": "ID_MODEL_ENC",
            "value": "SECURE\\x20DRIVE"
          },
          {
            "name": "ID_PATH",
            "value": "ip-172.16.5.148:3260-iscsi-iqn.2009-12.com.blockbridge:t-pjuagemzukanm-abpdmcle-lun-0"
          },
          {
            "name": "ID_PATH_TAG",
            "value": "ip-172_16_5_148_3260-iscsi-iqn_2009-12_com_blockbridge_t-pjuagemzukanm-abpdmcle-lun-0"
          },
          {
            "name": "ID_REVISION",
            "value": "4.0"
          },
          {
            "name": "ID_SCSI",
            "value": "1"
          },
          {
            "name": "ID_SCSI_SERIAL",
            "value": "6932606f-1cd8-43bc-bc4c-6fb5f8d42846"
          },
          {
            "name": "ID_SERIAL",
            "value": "360a010a04628d4f81962194c406558c1"
          },
          {
            "name": "ID_SERIAL_SHORT",
            "value": "60a010a04628d4f81962194c406558c1"
          },
          {
            "name": "ID_TYPE",
            "value": "disk"
          },
          {
            "name": "ID_VENDOR",
            "value": "B_BRIDGE"
          },
          {
            "name": "ID_VENDOR_ENC",
            "value": "B\\x2aBRIDGE"
          },
          {
            "name": "ID_WWN",
            "value": "0x60a010a04628d4f8"
          },
          {
            "name": "ID_WWN_VENDOR_EXTENSION",
            "value": "0x1962194c406558c1"
          },
          {
            "name": "ID_WWN_WITH_EXTENSION",
            "value": "0x60a010a04628d4f81962194c406558c1"
          },
          {
            "name": "MAJOR",
            "value": "8"
          },
          {
            "name": "MINOR",
            "value": "48"
          },
          {
            "name": "MPATH_SBIN_PATH",
            "value": "/sbin"
          },
          {
            "name": "SUBSYSTEM",
            "value": "block"
          },
          {
            "name": "TAGS",
            "value": ":systemd:"
          },
          {
            "name": "USEC_INITIALIZED",
            "value": "7443479"
          }
        ],
        "wwn": "0x60a010a04628d4f81962194c406558c1",
        "inuse": true
      },
      {
        "name": "md124",
        "desc": "disk",
        "path": "/dev/md124",
        "preferred_path": "/dev/disk/by-id/md-name-mirror1",
        "parent": "",
        "devlinks": [
          "/dev/disk/by-id/md-name-mirror1",
          "/dev/disk/by-id/md-uuid-7b70f246:5a824029:b39ef139:929c9a9e",
          "/dev/md/mirror1"
        ],
        "syspath": "/sys/devices/virtual/block/md124",
        "type": [
          "block"
        ],
        "subsystem": "",
        "driver": "",
        "raw_size": 107338530816,
        "properties": [
          {
            "name": "DEVLINKS",
            "value": "/dev/disk/by-id/md-name-mirror1 /dev/disk/by-id/md-uuid-7b70f246:5a824029:b39ef139:929c9a9e /dev/md/mirror1"
          },
          {
            "name": "DEVNAME",
            "value": "/dev/md124"
          },
          {
            "name": "DEVPATH",
            "value": "/devices/virtual/block/md124"
          },
          {
            "name": "DEVTYPE",
            "value": "disk"
          },
          {
            "name": "DM_MULTIPATH_TIMESTAMP",
            "value": "1507562788"
          },
          {
            "name": "MAJOR",
            "value": "9"
          },
          {
            "name": "MD_CONTAINER",
            "value": "/dev/md/mirror1:c"
          },
          {
            "name": "MD_CTIME",
            "value": "1507562847"
          },
          {
            "name": "MD_DEVICES",
            "value": "2"
          },
          {
            "name": "MD_DEVICE_sdc_DEV",
            "value": "/dev/sdc"
          },
          {
            "name": "MD_DEVICE_sdc_ROLE",
            "value": "1"
          },
          {
            "name": "MD_DEVICE_sde_DEV",
            "value": "/dev/sde"
          },
          {
            "name": "MD_DEVICE_sde_ROLE",
            "value": "0"
          },
          {
            "name": "MD_DEVNAME",
            "value": "mirror1"
          },
          {
            "name": "MD_LEVEL",
            "value": "raid1"
          },
          {
            "name": "MD_MEMBER",
            "value": "0"
          },
          {
            "name": "MD_MON_THIS",
            "value": "../md125"
          },
          {
            "name": "MD_MTIME",
            "value": "1507562847"
          },
          {
            "name": "MD_NAME",
            "value": "mirror1"
          },
          {
            "name": "MD_UUID",
            "value": "7b70f246:5a824029:b39ef139:929c9a9e"
          },
          {
            "name": "MINOR",
            "value": "124"
          },
          {
            "name": "MPATH_SBIN_PATH",
            "value": "/sbin"
          },
          {
            "name": "SUBSYSTEM",
            "value": "block"
          },
          {
            "name": "SYSTEMD_WANTS",
            "value": "mdmonitor.service mdmon@md125.service"
          },
          {
            "name": "TAGS",
            "value": ":systemd:"
          },
          {
            "name": "USEC_INITIALIZED",
            "value": "3539136"
          }
        ],
        "inuse": true
      },
      {
        "name": "md126p6",
        "desc": "partition",
        "path": "/dev/md126p6",
        "preferred_path": "/dev/md126p6",
        "parent": "/dev/md126",
        "devlinks": [
          "/dev/disk/by-id/md-name-bb:system-array-part6",
          "/dev/disk/by-id/md-uuid-791bf0b6:27184b1a:a7cc46b9:c7d4a716-part6",
          "/dev/md/bb:system-array6"
        ],
        "syspath": "/sys/devices/virtual/block/md126/md126p6",
        "type": [
          "block"
        ],
        "subsystem": "block",
        "driver": "",
        "raw_size": 18216893952,
        "properties": [
          {
            "name": "BLOCKBRIDGE_LABEL",
            "value": "system"
          },
          {
            "name": "BLOCKBRIDGE_WHITELIST",
            "value": "1"
          },
          {
            "name": "DEVLINKS",
            "value": "/dev/disk/by-id/md-name-bb:system-array-part6 /dev/disk/by-id/md-uuid-791bf0b6:27184b1a:a7cc46b9:c7d4a716-part6 /dev/md/bb:system-array6"
          },
          {
            "name": "DEVNAME",
            "value": "/dev/md126p6"
          },
          {
            "name": "DEVPATH",
            "value": "/devices/virtual/block/md126/md126p6"
          },
          {
            "name": "DEVTYPE",
            "value": "partition"
          },
          {
            "name": "ID_PART_ENTRY_DISK",
            "value": "9:126"
          },
          {
            "name": "ID_PART_ENTRY_NAME",
            "value": "blockbridge-sp"
          },
          {
            "name": "ID_PART_ENTRY_NUMBER",
            "value": "6"
          },
          {
            "name": "ID_PART_ENTRY_OFFSET",
            "value": "174065664"
          },
          {
            "name": "ID_PART_ENTRY_SCHEME",
            "value": "gpt"
          },
          {
            "name": "ID_PART_ENTRY_SIZE",
            "value": "35579871"
          },
          {
            "name": "ID_PART_ENTRY_TYPE",
            "value": "0fc63daf-8483-4772-8e79-3d69d8477de4"
          },
          {
            "name": "ID_PART_ENTRY_UUID",
            "value": "c0edd702-7801-42ef-b675-2b34411ee13e"
          },
          {
            "name": "MAJOR",
            "value": "259"
          },
          {
            "name": "MD_CONTAINER",
            "value": "/dev/md/bb:system-array:c"
          },
          {
            "name": "MD_CTIME",
            "value": "1507562801"
          },
          {
            "name": "MD_DEVICES",
            "value": "2"
          },
          {
            "name": "MD_DEVICE_sda_DEV",
            "value": "/dev/sda"
          },
          {
            "name": "MD_DEVICE_sda_ROLE",
            "value": "1"
          },
          {
            "name": "MD_DEVICE_sdb_DEV",
            "value": "/dev/sdb"
          },
          {
            "name": "MD_DEVICE_sdb_ROLE",
            "value": "0"
          },
          {
            "name": "MD_DEVNAME",
            "value": "bb:system-array"
          },
          {
            "name": "MD_LEVEL",
            "value": "raid1"
          },
          {
            "name": "MD_MEMBER",
            "value": "0"
          },
          {
            "name": "MD_MON_THIS",
            "value": "../md127"
          },
          {
            "name": "MD_MTIME",
            "value": "1507562801"
          },
          {
            "name": "MD_NAME",
            "value": "bb:system-array"
          },
          {
            "name": "MD_UUID",
            "value": "791bf0b6:27184b1a:a7cc46b9:c7d4a716"
          },
          {
            "name": "MINOR",
            "value": "5"
          },
          {
            "name": "SUBSYSTEM",
            "value": "block"
          },
          {
            "name": "SYSTEMD_WANTS",
            "value": "mdmonitor.service mdmon@md127.service"
          },
          {
            "name": "TAGS",
            "value": ":systemd:"
          },
          {
            "name": "USEC_INITIALIZED",
            "value": "9419779"
          }
        ],
        "inuse": true
      }
    ]
    

    Node Discover Interfaces

    Retrieve a list of network interfaces that match the specified parameters.

    GET /node/{node_id_or_serial}/interfaces
    

    Curl Example

    $ curl https://mgmt-node/api/node/node:10000/interfaces \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:51 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 900
    
    [
      {
        "interface": "eth0",
        "hwaddr": "FA:16:3E:6A:7C:79",
        "mtu": 1400,
        "flags": {
          "up": true,
          "broadcast": true,
          "debug": false,
          "loopback": false,
          "pointopoint": false,
          "notrailers": false,
          "running": true,
          "noarp": false,
          "promisc": false,
          "master": false,
          "slave": false,
          "multicast": true
        },
        "link": {
          "detected": true,
          "speed": null,
          "duplex": null,
          "port": "other"
        },
        "driver": {
          "name": "virtio_net",
          "version": "1.0.0",
          "fw_version": "",
          "bus": "0000:00:03.0"
        },
        "stats": {
          "tx_packets": 0,
          "tx_bytes": 0,
          "tx_errors": 0,
          "tx_dropped": 0,
          "rx_packets": 0,
          "rx_bytes": 0,
          "rx_errors": 0,
          "rx_dropped": 0
        },
        "ipaddrs": [
          {
            "addr": "10.10.200.23",
            "family": "IPv4"
          },
          {
            "addr": "fe80::f816:3eff:fe6a:7c79%eth0",
            "family": "IPv6"
          }
        ],
        "inuse": true,
        "config": {
          "net_id": "net:8:10",
          "service": {
            "application": {
              "enabled": false
            },
            "management": {
              "enabled": false
            },
            "storage": {
              "enabled": true,
              "shared": true
            },
            "replication": {
              "enabled": true
            },
            "infrastructure": {
              "enabled": true
            },
            "external": {
              "enabled": true
            }
          }
        }
      }
    ]
    

    Site

    Sites are groups of storage and management nodes. When deploying a Blockbridge storage network, you can use sites to group nodes together that are co-located in the same data center. Or, you can subdivide a datacenter into multiple sites, or align sites along business unit lines. Every node in a site shares the same SMTP configuration.

    Attributes

    NameTypeDescription
    idstringobject id
    uuiduuidobject uuid
    ctimeintegersite create time
    Range: 0 <= value
    mtimeintegersite last modified time
    Range: 0 <= value
    serialstringsite serial number
    labelstringuser assigned label
    Length: 1..64
    notesnullable stringuser assigned notes
    Length: 0..256
    location:countrystringISO 3166-1 alpha-3 country code
    default: ""
    location:latnumberlatitude
    default: 0
    location:longnumberlongitude
    default: 0
    location:citystringcity
    default: ""
    location:statestringstate as two-character USPS abbreviation
    default: ""
    zip_codestringsite zip code
    tierstringdatacenter infrastructure tier
    one of:"I" or "II" or "III" or "IV"
    email:typestringemail type
    one of:"none" or "smtp" or "mailgun"
    email:smtp:server_sslstringSMTP server SSL/TLS
    one of:"none" or "required" or "optional"
    email:smtp:server_addrhostnameSMTP server hostname
    Length: 0..1024
    email:smtp:mail_fromemailmail from email address
    Length: 0..128
    email:smtp:server_usernamestringSMTP authentication username
    email:smtp:server_authbooleanSMTP authentication enabled
    email:smtp:server_portintegerSMTP server port
    default: 587
    Range: 1 <= value <= 65535
    status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    status:detailnullable stringstatus detail

    Site Info

    Retrieve an existing site.

    GET /site/{site_id_or_serial}
    

    Curl Example

    $ curl https://mgmt-node/api/site/site:18 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:52 GMT
    Server: Goliath
    ETag: "d9adddf3c3dfd1418fd44fa1da69b35e"
    Content-Type: application/json
    Content-Length: 681
    
    {
      "id": "site:18",
      "uuid": "d0132f8e-05c5-48d9-97da-806011f94bcd",
      "serial": "SIT1468194C40626570",
      "evt_qry": "serial=SIT1468194C40626570",
      "ctime": 1507570012289,
      "mtime": 1507570012535,
      "seq": 1507570012682,
      "label": "virginia1",
      "notes": "site updated",
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507570012000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                4,
                4,
                4,
                4
              ],
              "v": "dbg"
            },
            {
              "d": [
                3,
                3,
                3,
                3
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507570012682
      },
      "rec_status": null,
      "tier": "IV",
      "location": {
        "country": "US",
        "lat": 39.0436,
        "long": -77.4875,
        "city": "Ashburn",
        "state": "VA"
      },
      "email": {
        "type": [
          "none"
        ]
      }
    }
    

    Site List

    Enumerate sites.

    GET /site
    

    Curl Example

    $ curl https://mgmt-node/api/site \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:52 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 6119
    
    [
      {
        "id": "site:12",
        "uuid": "0ad99d88-c1e4-4e3e-8ce9-1ebbf261e73e",
        "serial": "SIT1468194C40626494",
        "evt_qry": "serial=SIT1468194C40626494",
        "ctime": 1507567898865,
        "mtime": 1507567899084,
        "seq": 1507567899667,
        "label": "virginia1",
        "notes": "site updated",
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507567899000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  4,
                  4,
                  4,
                  4
                ],
                "v": "dbg"
              },
              {
                "d": [
                  3,
                  3,
                  3,
                  3
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507567899667
        },
        "rec_status": null,
        "tier": "IV",
        "location": {
          "country": "US",
          "lat": 39.0436,
          "long": -77.4875,
          "city": "Ashburn",
          "state": "VA"
        },
        "email": {
          "type": [
            "none"
          ]
        }
      },
      {
        "id": "site:16",
        "uuid": "53184182-b00c-4b6c-94c0-ed470b958c72",
        "serial": "SIT1468194C40626550",
        "evt_qry": "serial=SIT1468194C40626550",
        "ctime": 1507569795479,
        "mtime": 1507569795721,
        "seq": 1507569796666,
        "label": "virginia1",
        "notes": "site updated",
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507569795000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  4,
                  4,
                  4,
                  4
                ],
                "v": "dbg"
              },
              {
                "d": [
                  3,
                  3,
                  3,
                  3
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507569796666
        },
        "rec_status": null,
        "tier": "IV",
        "location": {
          "country": "US",
          "lat": 39.0436,
          "long": -77.4875,
          "city": "Ashburn",
          "state": "VA"
        },
        "email": {
          "type": [
            "none"
          ]
        }
      },
      {
        "id": "site:13",
        "uuid": "16f3d9e8-10ca-46e9-be38-40e7472c6541",
        "serial": "SIT1468194C4062648C",
        "evt_qry": "serial=SIT1468194C4062648C",
        "ctime": 1507567916392,
        "mtime": 1507567916616,
        "seq": 1507567916674,
        "label": "virginia1",
        "notes": "site updated",
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507567916000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  4,
                  4,
                  4,
                  4
                ],
                "v": "dbg"
              },
              {
                "d": [
                  3,
                  3,
                  3,
                  3
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507567916674
        },
        "rec_status": null,
        "tier": "IV",
        "location": {
          "country": "US",
          "lat": 39.0436,
          "long": -77.4875,
          "city": "Ashburn",
          "state": "VA"
        },
        "email": {
          "type": [
            "none"
          ]
        }
      },
      {
        "id": "site:17",
        "uuid": "e66d233a-00d9-43aa-92d1-e03ed0e2faec",
        "serial": "SIT1468194C40626548",
        "evt_qry": "serial=SIT1468194C40626548",
        "ctime": 1507569965655,
        "mtime": 1507569965913,
        "seq": 1507569966668,
        "label": "virginia1",
        "notes": "site updated",
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507569965000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  4,
                  4,
                  4,
                  4
                ],
                "v": "dbg"
              },
              {
                "d": [
                  3,
                  3,
                  3,
                  3
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507569966668
        },
        "rec_status": null,
        "tier": "IV",
        "location": {
          "country": "US",
          "lat": 39.0436,
          "long": -77.4875,
          "city": "Ashburn",
          "state": "VA"
        },
        "email": {
          "type": [
            "none"
          ]
        }
      },
      {
        "id": "site:10",
        "uuid": "e582c5ea-26f5-452c-98f6-8133bf91790e",
        "serial": "SIT1468194C406264F5",
        "evt_qry": "serial=SIT1468194C406264F5",
        "ctime": 1507562833433,
        "mtime": 1507562839908,
        "seq": 1507570011670,
        "label": "packet.net",
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507570011000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  14,
                  22,
                  22,
                  22
                ],
                "v": "dbg"
              },
              {
                "d": [
                  17,
                  28,
                  28,
                  28
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507570011670
        },
        "rec_status": null,
        "tier": "IV",
        "location": {
          "country": "USA",
          "lat": 40,
          "long": -43,
          "city": "Newark",
          "state": "NJ"
        },
        "email": {
          "type": [
            "none"
          ]
        }
      },
      {
        "id": "site:14",
        "uuid": "8e9b9c5e-6145-42af-ac79-7d03f21d7750",
        "serial": "SIT1468194C406264B4",
        "evt_qry": "serial=SIT1468194C406264B4",
        "ctime": 1507567942158,
        "mtime": 1507567942381,
        "seq": 1507567942673,
        "label": "virginia1",
        "notes": "site updated",
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507567942000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  4,
                  4,
                  4,
                  4
                ],
                "v": "dbg"
              },
              {
                "d": [
                  3,
                  3,
                  3,
                  3
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507567942673
        },
        "rec_status": null,
        "tier": "IV",
        "location": {
          "country": "US",
          "lat": 39.0436,
          "long": -77.4875,
          "city": "Ashburn",
          "state": "VA"
        },
        "email": {
          "type": [
            "none"
          ]
        }
      },
      {
        "id": "site:18",
        "uuid": "d0132f8e-05c5-48d9-97da-806011f94bcd",
        "serial": "SIT1468194C40626570",
        "evt_qry": "serial=SIT1468194C40626570",
        "ctime": 1507570012289,
        "mtime": 1507570012535,
        "seq": 1507570012540,
        "label": "virginia1",
        "notes": "site updated",
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": null,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "v": "dbg",
                "d": [
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "v": "info",
                "d": [
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "v": "warn",
                "d": [
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "v": "err",
                "d": [
                  0,
                  0,
                  0,
                  0
                ]
              }
            ]
          },
          "status": "current",
          "seq": 1507570012310
        },
        "rec_status": null,
        "tier": "IV",
        "location": {
          "country": "US",
          "lat": 39.0436,
          "long": -77.4875,
          "city": "Ashburn",
          "state": "VA"
        },
        "email": {
          "type": [
            "none"
          ]
        }
      },
      {
        "id": "site:11",
        "uuid": "79110da6-9357-4700-9f4d-d3cb2a4734c8",
        "serial": "SIT1468194C406264ED",
        "evt_qry": "serial=SIT1468194C406264ED",
        "ctime": 1507563525129,
        "mtime": 1507563525260,
        "seq": 1507563525691,
        "label": "virginia1",
        "notes": "site updated",
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507563525000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  4,
                  4,
                  4,
                  4
                ],
                "v": "dbg"
              },
              {
                "d": [
                  3,
                  3,
                  3,
                  3
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507563525691
        },
        "rec_status": null,
        "tier": "IV",
        "location": {
          "country": "US",
          "lat": 39.0436,
          "long": -77.4875,
          "city": "Ashburn",
          "state": "VA"
        },
        "email": {
          "type": [
            "none"
          ]
        }
      },
      {
        "id": "site:15",
        "uuid": "35a002d9-59f0-4fa7-99f3-a71718f2f0d8",
        "serial": "SIT1468194C406264AC",
        "evt_qry": "serial=SIT1468194C406264AC",
        "ctime": 1507568230545,
        "mtime": 1507568230778,
        "seq": 1507568231667,
        "label": "virginia1",
        "notes": "site updated",
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507568230000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  4,
                  4,
                  4,
                  4
                ],
                "v": "dbg"
              },
              {
                "d": [
                  3,
                  3,
                  3,
                  3
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507568231667
        },
        "rec_status": null,
        "tier": "IV",
        "location": {
          "country": "US",
          "lat": 39.0436,
          "long": -77.4875,
          "city": "Ashburn",
          "state": "VA"
        },
        "email": {
          "type": [
            "none"
          ]
        }
      }
    ]
    

    Site Create

    Create a new site.

    POST /site
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | label | string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | location:country | string | ISO 3166-1 alpha-3 country code
    default: "" | | location:lat | number | latitude
    default: 0 | | location:long | number | longitude
    default: 0 | | location:city | string | city
    default: "" | | location:state | string | state as two-character USPS abbreviation
    default: "" | | tier | string | datacenter infrastructure tier
    default: "IV"
    one of:"I" or "II" or "III" or "IV" | | email:type | string | email type
    one of:"none" or "smtp" or "mailgun" | | email:smtp:mail_from | email | mail from email address
    Length: 0..128 | | email:smtp:server_ssl | string | smtp server ssl
    one of:"none" or "required" or "optional" | | email:smtp:server_addr | hostname | smtp server name
    Length: 0..1024 | | email:smtp:server_password | string | smtp auth password | | email:smtp:server_username | string | smtp auth username | | email:smtp:server_auth | boolean | smtp auth enabled | | email:smtp:server_port | integer | smtp server port
    default: 587
    Range: 1 <= value <= 65535 | | uuid | uuid | object UUID |

    Curl Example

    $ curl -X POST https://mgmt-node/api/site \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "label": "virginia",
      "location": {
        "country": "US",
        "lat": 39.0436,
        "long": -77.4875,
        "city": "Ashburn",
        "state": "VA"
      },
      "tier": "IV"
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:26:52 GMT
    Server: Goliath
    ETag: "805c3bcb643efd2efe2db982d234b60d"
    Content-Type: application/json
    Content-Length: 661
    
    {
      "id": "site:18",
      "uuid": "d0132f8e-05c5-48d9-97da-806011f94bcd",
      "serial": "SIT1468194C40626570",
      "evt_qry": "serial=SIT1468194C40626570",
      "ctime": 1507570012289,
      "mtime": 1507570012289,
      "seq": 1507570012310,
      "label": "virginia",
      "notes": null,
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "v": "dbg",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "info",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "warn",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "err",
              "d": [
                0,
                0,
                0,
                0
              ]
            }
          ]
        },
        "status": "current",
        "seq": 1507570012310
      },
      "rec_status": null,
      "tier": "IV",
      "location": {
        "country": "US",
        "lat": 39.0436,
        "long": -77.4875,
        "city": "Ashburn",
        "state": "VA"
      },
      "email": {
        "type": [
          "none"
        ]
      }
    }
    

    Site Remove

    Remove an existing site.

    DELETE /site/{site_id_or_serial}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/site/SIT1468194C40626570 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:40 GMT
    Server: Goliath
    

    Site Update

    Change the configuration of an existing site.

    PATCH /site/{site_id_or_serial}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | notes | string | user assigned notes
    Length: 0..256 | | label | string | user assigned label
    Length: 1..64 | | location:country | string | ISO 3166-1 alpha-3 country code
    default: "" | | location:lat | number | latitude
    default: 0 | | location:long | number | longitude
    default: 0 | | location:city | string | city
    default: "" | | location:state | string | state as two-character USPS abbreviation
    default: "" | | zip_code | string | ZIP code | | tier | string | datacenter infrastructure tier
    one of:"I" or "II" or "III" or "IV" | | email:type | string | email type
    one of:"none" or "smtp" or "mailgun" | | email:smtp:server_port | integer | SMTP server port
    default: 587
    Range: 1 <= value <= 65535 | | email:smtp:mail_from | email | alternative mail-from email address
    Length: 0..128 | | email:smtp:server_ssl | string | SMTP server SSL/TLS
    one of:"none" or "required" or "optional" | | email:smtp:server_addr | hostname | SMTP server name
    Length: 0..1024 | | email:smtp:server_password | string | SMTP authentication password
    Length: 1..∞ | | email:smtp:server_username | string | SMTP authentication username
    Length: 1..∞ | | email:smtp:server_auth | boolean | SMTP authentication is enabled |

    Curl Example

    $ curl -X PATCH https://mgmt-node/api/site/SIT1468194C40626570 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "label": "virginia1",
      "notes": "site updated"
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:52 GMT
    Server: Goliath
    ETag: "515d98722d696ec32dc7467e13f46587"
    Content-Type: application/json
    Content-Length: 672
    
    {
      "id": "site:18",
      "uuid": "d0132f8e-05c5-48d9-97da-806011f94bcd",
      "serial": "SIT1468194C40626570",
      "evt_qry": "serial=SIT1468194C40626570",
      "ctime": 1507570012289,
      "mtime": 1507570012535,
      "seq": 1507570012540,
      "label": "virginia1",
      "notes": "site updated",
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "v": "dbg",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "info",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "warn",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "err",
              "d": [
                0,
                0,
                0,
                0
              ]
            }
          ]
        },
        "status": "current",
        "seq": 1507570012310
      },
      "rec_status": null,
      "tier": "IV",
      "location": {
        "country": "US",
        "lat": 39.0436,
        "long": -77.4875,
        "city": "Ashburn",
        "state": "VA"
      },
      "email": {
        "type": [
          "none"
        ]
      }
    }
    

    Network Interface

    Blockbridge storage node software detects the Ethernet interfaces you have configured on your nodes. Network Interface resources allow you to define how these interfaces are used for Blockbridge storage services.

    The Blockbridge system thinks of networking in terms of these interfaces. You have the full power of Linux networking at your disposal including channel bonding, VLANs, and tunnels. You can have multiple interfaces for segregation, performance or high availability.

    When a storage node completes its initial rendezvous with the management node, it registers the first Ethernet interface it finds, along with its IP addresses. If the node has additional interfaces, use this interface to register them.

    Attributes

    NameTypeDescription
    idstringobject id
    uuiduuidobject uuid
    labelstringuser assigned label
    Length: 1..64
    serialstringnetwork interface serial number
    ctimeintegernetwork interface create time
    Range: 0 <= value
    mtimeintegernetwork interface last modified time
    Range: 0 <= value
    notesnullable stringuser assigned notes
    Length: 0..256
    node_idstringstorage node id
    cplx_idnullable integerprocessor complex assignment; null indicates shared between all complexes
    pcidstringstorage node id
    enabledbooleanservice is enabled on this network interface
    interfacestringnetwork interface device name
    nat_addrnullable ipv4NAT address assigned to interface
    hostnamenullable hostnamehostname assigned to interface
    Length: 0..1024
    portalsnullable arraypublished portals
    portalsnullable arraypublished portals
    parentnullable objectone-to-one resource identifier
    parent:typestringtype of identified resource
    acl_typestringaccess control policy for the supplied list
    one of:"allow_all" or "deny_all" or "allow_list" or "deny_list"
    aclarraylist of account names, enforced if acl_type is allow_list or deny_list
    service:application:enabledbooleanapplication service enabled
    service:management:enabledbooleanmanagement service enabled
    service:storage:enabledbooleanstorage service enabled
    service:storage:sharedbooleanservice is shared
    service:replication:enabledbooleanreplication service enabled
    service:infrastructure:enabledbooleaninfrastructure service enabled
    service:external:enabledbooleanexternal service enabled
    status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    status:detailnullable stringstatus detail
    networknullable objectnetwork interface description
    network:interfacestringinterface name
    network:hwaddrstringhardware address (MAC)
    network:mtuintegerMTU
    network:flags:upbooleanup
    network:flags:broadcastbooleanbroadcast
    network:flags:debugbooleandebug
    network:flags:loopbackbooleanloopback
    network:flags:pointopointbooleanpointopoint
    network:flags:notrailersbooleannotrailers
    network:flags:runningbooleanrunning
    network:flags:noarpbooleannoarp
    network:flags:promiscbooleanpromisc
    network:flags:masterbooleanmaster
    network:flags:slavebooleanslave
    network:flags:multicastbooleanmulticast
    network:link:detectednullable booleanmedia link detected
    network:link:speednullable integernetwork interface speed in Mb/s
    network:link:duplexnullable stringnetwork interface duplex
    one of:"half" or "full" or "unknown"
    network:link:portnullable stringnetwork interface port
    one of:"twisted-pair" or "AUI" or "BNC" or "MII" or "FIBRE" or "direct-attach-copper" or "none" or "other" or "unknown"
    network:driver:namenullable stringdriver name
    network:driver:versionnullable stringdriver version
    network:driver:fw_versionnullable stringdriver firmware version
    network:driver:busnullable stringdriver bus
    network:stats:tx_packetsintegertx packets
    network:stats:tx_bytesintegertx bytes
    network:stats:tx_errorsintegertx errors
    network:stats:tx_droppedintegertx dropped
    network:stats:rx_packetsintegerrx packets
    network:stats:rx_bytesintegerrx bytes
    network:stats:rx_errorsintegerrx errors
    network:stats:rx_droppedintegerrx dropped
    network:ipaddrs/addrstringip address
    network:ipaddrs/familystringaddress family
    one of:"IPv4" or "IPv6" or "unknown"
    network:inusebooleannetwork interface configured
    network:config:net_idstringnetwork interface id
    network:config:service:application:enabledbooleanservice enabled
    network:config:service:management:enabledbooleanservice enabled
    network:config:service:storage:enabledbooleanservice enabled
    network:config:service:storage:sharedbooleanservice shared
    network:config:service:replication:enabledbooleanservice enabled
    network:config:service:infrastructure:enabledbooleanservice enabled
    network:config:service:external:enabledbooleanservice enabled
    network:config:nat_addrstringNAT address
    network:config:enabledbooleannet administratively enabled/disabled
    network:parentnullable objectparent interface
    network:parent:namestringparent interface name
    network:parent:net_idnullable stringparent net
    network:vlannullable integerVLAN ID, if defined
    network:bondnullable objectbonding information
    network:bond:modestringbonding mode
    network:bond:interfaces/upbooleanlink up
    network:bond:interfaces/speednullable integerlink speed in Mb/s
    network:bond:interfaces/mtuintegerMTU
    network:bond:interfaces/interfacestringinterface name

    Network Interface Info

    Retrieve an existing network interface.

    GET /net/{net_id_or_serial}
    

    Curl Example

    $ curl https://mgmt-node/api/net/net:9:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:38 GMT
    Server: Goliath
    ETag: "67faa3dd29a0443799d26eaca7edac70"
    Content-Type: application/json
    Content-Length: 1498
    
    {
      "id": "net:9:10",
      "uuid": "aa3b1c6b-456d-45a7-9840-40d6879df950",
      "serial": "NET1C62194C406264CE",
      "evt_qry": "serial=NET1C62194C406264CE",
      "node_id": "node:10000",
      "ctime": 1507570011779,
      "mtime": 1507570011779,
      "seq": 1507570013237,
      "label": "net-1",
      "notes": null,
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507570011000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                2,
                2,
                2,
                2
              ],
              "v": "dbg"
            },
            {
              "d": [
                1,
                1,
                1,
                1
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507570012677
      },
      "rec_status": null,
      "enabled": true,
      "interface": "eth0",
      "hostname": null,
      "nat_addr": null,
      "service": {
        "application": {
          "enabled": false
        },
        "management": {
          "enabled": false
        },
        "storage": {
          "enabled": true,
          "shared": true
        },
        "replication": {
          "enabled": true
        },
        "infrastructure": {
          "enabled": true
        },
        "external": {
          "enabled": true
        }
      },
      "network": {
        "interface": "eth0",
        "hwaddr": "FA:16:3E:6A:7C:79",
        "mtu": 1400,
        "flags": {
          "up": true,
          "broadcast": true,
          "debug": false,
          "loopback": false,
          "pointopoint": false,
          "notrailers": false,
          "running": true,
          "noarp": false,
          "promisc": false,
          "master": false,
          "slave": false,
          "multicast": true
        },
        "link": {
          "detected": true,
          "speed": null,
          "duplex": null,
          "port": "other"
        },
        "driver": {
          "name": "virtio_net",
          "version": "1.0.0",
          "fw_version": "",
          "bus": "0000:00:03.0"
        },
        "stats": {
          "tx_packets": 0,
          "tx_bytes": 0,
          "tx_errors": 0,
          "tx_dropped": 0,
          "rx_packets": 0,
          "rx_bytes": 0,
          "rx_errors": 0,
          "rx_dropped": 0
        },
        "ipaddrs": [
          {
            "addr": "10.10.200.23",
            "family": "IPv4"
          },
          {
            "addr": "fe80::f816:3eff:fe6a:7c79%eth0",
            "family": "IPv6"
          }
        ]
      }
    }
    

    Network Interface List

    Enumerate network interfaces.

    GET /net
    

    Curl Example

    $ curl https://mgmt-node/api/net \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:51 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 1500
    
    [
      {
        "id": "net:8:10",
        "uuid": "9935b887-1f48-4d60-b4d1-c7dcef082a66",
        "serial": "NET1C62194C406264D6",
        "evt_qry": "serial=NET1C62194C406264D6",
        "node_id": "node:10000",
        "ctime": 1507569965178,
        "mtime": 1507569965242,
        "seq": 1507570010649,
        "label": "net-1",
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507569965000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  2,
                  2,
                  2,
                  2
                ],
                "v": "dbg"
              },
              {
                "d": [
                  1,
                  1,
                  1,
                  1
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507569965673
        },
        "rec_status": null,
        "enabled": true,
        "interface": "eth0",
        "hostname": null,
        "nat_addr": null,
        "service": {
          "application": {
            "enabled": false
          },
          "management": {
            "enabled": false
          },
          "storage": {
            "enabled": true,
            "shared": true
          },
          "replication": {
            "enabled": true
          },
          "infrastructure": {
            "enabled": true
          },
          "external": {
            "enabled": true
          }
        },
        "network": {
          "interface": "eth0",
          "hwaddr": "FA:16:3E:6A:7C:79",
          "mtu": 1400,
          "flags": {
            "up": true,
            "broadcast": true,
            "debug": false,
            "loopback": false,
            "pointopoint": false,
            "notrailers": false,
            "running": true,
            "noarp": false,
            "promisc": false,
            "master": false,
            "slave": false,
            "multicast": true
          },
          "link": {
            "detected": true,
            "speed": null,
            "duplex": null,
            "port": "other"
          },
          "driver": {
            "name": "virtio_net",
            "version": "1.0.0",
            "fw_version": "",
            "bus": "0000:00:03.0"
          },
          "stats": {
            "tx_packets": 0,
            "tx_bytes": 0,
            "tx_errors": 0,
            "tx_dropped": 0,
            "rx_packets": 0,
            "rx_bytes": 0,
            "rx_errors": 0,
            "rx_dropped": 0
          },
          "ipaddrs": [
            {
              "addr": "10.10.200.23",
              "family": "IPv4"
            },
            {
              "addr": "fe80::f816:3eff:fe6a:7c79%eth0",
              "family": "IPv6"
            }
          ]
        }
      }
    ]
    

    Network Interface Create

    Register a new network interface.

    POST /net
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | node_id | string | node id | | interface | string | interface name |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | label | string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | enabled | boolean | service is enabled on this network interface
    default: true | | nat_addr | nullable ipv4 | NAT IP address | | hostname | nullable hostname | hostname
    Length: 0..1024 | | service:application:enabled | boolean | application service enabled | | service:management:enabled | boolean | management service enabled | | service:storage:enabled | boolean | storage service enabled
    default: true | | service:storage:shared | boolean | storage service shared
    default: true | | service:replication:enabled | boolean | replication service enabled
    default: true | | service:infrastructure:enabled | boolean | infrastructure service enabled
    default: true | | service:external:enabled | boolean | external service enabled
    default: true | | uuid | uuid | object UUID | | portals | nullable array | published portals | | portals | nullable array | published portals | | cplx_id | nullable integer | processor complex assignment | | acl_type | string | access control policy for the supplied list
    default: "deny_all"
    one of:"allow_all" or "deny_all" or "allow_list" or "deny_list" | | acl | array | list of account names, enforced if acl_type is allow_list or deny_list
    default: [] |

    Curl Example

    $ curl -X POST https://mgmt-node/api/net \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "node_id": "node:10000",
      "interface": "eth0"
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:26:51 GMT
    Server: Goliath
    ETag: "45e7c4efa8349d677789a828f54636d4"
    Content-Type: application/json
    Content-Length: 881
    
    {
      "id": "net:9:10",
      "uuid": "aa3b1c6b-456d-45a7-9840-40d6879df950",
      "serial": "NET1C62194C406264CE",
      "evt_qry": "serial=NET1C62194C406264CE",
      "node_id": "node:10000",
      "ctime": 1507570011779,
      "mtime": 1507570011779,
      "seq": 1507570011789,
      "label": "net-1",
      "notes": null,
      "status": {
        "value": "pending",
        "indicator": "degraded",
        "detail": "retrieving status; please wait"
      },
      "ec": {
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "v": "dbg",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "info",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "warn",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "err",
              "d": [
                0,
                0,
                0,
                0
              ]
            }
          ]
        },
        "status": "current",
        "seq": 1507570011789
      },
      "rec_status": null,
      "enabled": true,
      "interface": "eth0",
      "hostname": null,
      "nat_addr": null,
      "service": {
        "application": {
          "enabled": false
        },
        "management": {
          "enabled": false
        },
        "storage": {
          "enabled": true,
          "shared": true
        },
        "replication": {
          "enabled": true
        },
        "infrastructure": {
          "enabled": true
        },
        "external": {
          "enabled": true
        }
      },
      "network": null
    }
    

    Network Interface Remove

    Remove the configuration for an existing network interface.

    DELETE /net/{net_id_or_serial}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/net/net:8:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:26:51 GMT
    Server: Goliath
    

    Network Interface Update

    Change the configuration of an existing network interface.

    PATCH /net/{net_id_or_serial}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | label | string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | enabled | boolean | service is enabled on this network interface | | interface | string | interface name | | nat_addr | nullable ipv4 | NAT IP address | | hostname | nullable hostname | hostname
    Length: 0..1024 | | service:application:enabled | boolean | application service enabled | | service:management:enabled | boolean | management service enabled | | service:storage:enabled | boolean | storage service enabled | | service:storage:shared | boolean | storage service shared | | service:replication:enabled | boolean | replication service enabled | | service:infrastructure:enabled | boolean | infrastructure service enabled | | service:external:enabled | boolean | external service enabled | | portals | nullable array | published portals | | portals | nullable array | published portals | | cplx_id | nullable integer | processor complex assignment | | acl_type | string | access control policy for the supplied list
    one of:"allow_all" or "deny_all" or "allow_list" or "deny_list" | | acl | array | list of account names, enforced if acl_type is allow_list or deny_list |

    Curl Example

    $ curl -X PATCH https://mgmt-node/api/net/net:9:10 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:51 GMT
    Server: Goliath
    ETag: "45e7c4efa8349d677789a828f54636d4"
    Content-Type: application/json
    Content-Length: 881
    
    {
      "id": "net:9:10",
      "uuid": "aa3b1c6b-456d-45a7-9840-40d6879df950",
      "serial": "NET1C62194C406264CE",
      "evt_qry": "serial=NET1C62194C406264CE",
      "node_id": "node:10000",
      "ctime": 1507570011779,
      "mtime": 1507570011779,
      "seq": 1507570011789,
      "label": "net-1",
      "notes": null,
      "status": {
        "value": "pending",
        "indicator": "degraded",
        "detail": "retrieving status; please wait"
      },
      "ec": {
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "v": "dbg",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "info",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "warn",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "err",
              "d": [
                0,
                0,
                0,
                0
              ]
            }
          ]
        },
        "status": "current",
        "seq": 1507570011789
      },
      "rec_status": null,
      "enabled": true,
      "interface": "eth0",
      "hostname": null,
      "nat_addr": null,
      "service": {
        "application": {
          "enabled": false
        },
        "management": {
          "enabled": false
        },
        "storage": {
          "enabled": true,
          "shared": true
        },
        "replication": {
          "enabled": true
        },
        "infrastructure": {
          "enabled": true
        },
        "external": {
          "enabled": true
        }
      },
      "network": null
    }
    

    Operating System Device

    The Operating System Storage Device object has the configuration necessary for a Blockbridge storage node to integrate direct-attached (DAS) storage into a System Datastore. The operating system has been configured with the proper drivers for the storage technology, and is responsible for providing a persistent device path. You can use any storage device that's compatible with Linux, such as NVDIMM, NVMe, PCI Flash, direct-attached hardware RAID, or a Fibre Channel SAN.

    Attributes

    NameTypeDescription
    idstringobject id
    uuiduuidobject uuid
    labelnullable stringuser assigned label
    notesnullable stringuser assigned notes
    Length: 0..256
    transientbooleandevice is transient
    serialstringOS device serial number
    evt_qrystringquery string for event application to display associated events
    ctimeintegerOS device create time
    Range: 0 <= value
    mtimeintegerOS device last modified time
    Range: 0 <= value
    node_idstringstorage node id
    pcidstringstorage node id
    initializedbooleandevice is initialized
    enabledbooleandevice is enabled
    align_writes_4knullable booleanalign all writes to 4KiB boundaries, executing read requests as necessary
    sizenullable integerraw device size
    pathnullable stringdevice path
    sds_idnullable stringsystem datastore id
    parentnullable objectparent device reference
    parent:typestringtype of identified resource
    flagsnullable stringgeneric api rts flags field
    hiddennullable booleandevice hidden in client UIs by default
    status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    status:detailnullable stringstatus detail
    usablenullable integerusable device size (in bytes)
    usednullable integernumber of bytes of device that have been consumed
    rebalance_deltanullable integerremainder of rebalancing goal, bytes (negative: moving extents away)
    vendor_idnullable stringdevice vendor id
    prod_idnullable stringdevice product id
    prod_revnullable stringdevice product revision
    usnnullable stringdevice unit serial number
    t10_vendor_specific_idnullable stringdevice t10 vendor specific device id
    naa_idnullable stringdevice naa id
    eui64_idnullable stringdevice eui64 id
    logical_block_sizenullable integerdevice logical block size
    physical_block_sizenullable integerdevice physical block size
    smart_infonullable objectsmart info
    md_infonullable objectmd array info
    device_infonullable objectdevice info
    mpath_infonullable objectsingle slave device info

    Operating System Device Info

    Retrieve an existing operating system storage device.

    GET /os-dev/{os_dev_id_or_serial}
    

    Curl Example

    $ curl https://mgmt-node/api/os-dev/os_dev:4:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:56 GMT
    Server: Goliath
    ETag: "f160fcc0139f2017ebb5ccff54331aa6"
    Content-Type: application/json
    Content-Length: 1303
    
    {
      "id": "os_dev:4:10",
      "uuid": "5a05f431-0a1b-4725-bc8b-ea179aa501b6",
      "serial": "OSD0D62194C4062641A",
      "evt_qry": "serial=OSD0D62194C4062641A",
      "sds_id": null,
      "node_id": "node:10000",
      "ctime": 1507562840777,
      "mtime": 1507570016428,
      "seq": 1507570016436,
      "label": "device-1",
      "notes": "device label updated",
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507569799000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                4,
                10,
                10,
                10
              ],
              "v": "dbg"
            },
            {
              "d": [
                0,
                3,
                3,
                3
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507569799668
      },
      "rec_status": null,
      "transient": false,
      "path": "/dev/bb/b9a74447-9962-4f82-88c8-1bcd655ff432",
      "size": 107374182400,
      "initialized": false,
      "enabled": false,
      "parent": {
        "type": [
          "os_dev"
        ],
        "id": "os_dev:7:10"
      },
      "meta": {
        "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
        "blockbridge_md": false,
        "blockbridge_disk_id": "b9a74447-9962-4f82-88c8-1bcd655ff432"
      },
      "usable": null,
      "used": null,
      "device_info": {
        "dsn": null,
        "enclosure": null,
        "present": true,
        "owner": "Volume Manager (mirror1)",
        "devname": "sde",
        "display_name": "scsi/sde",
        "serial": "b9a74447-9962-4f82-88c8-1bcd655ff432",
        "vendor": "B*BRIDGE",
        "model": "SECURE DRIVE",
        "bus": "scsi",
        "rotational": false,
        "type": [
          "disk"
        ],
        "_remote_dev_id": null
      },
      "smart_info": null,
      "md_info": null,
      "hidden": false
    }
    

    Operating System Device List

    Enumerate operating system storage devices.

    GET /os-dev
    

    Curl Example

    $ curl https://mgmt-node/api/os-dev \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:56 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 13655
    
    [
      {
        "id": "os_dev:4:10",
        "uuid": "5a05f431-0a1b-4725-bc8b-ea179aa501b6",
        "serial": "OSD0D62194C4062641A",
        "evt_qry": "serial=OSD0D62194C4062641A",
        "sds_id": null,
        "node_id": "node:10000",
        "ctime": 1507562840777,
        "mtime": 1507569799536,
        "seq": 1507569799668,
        "label": "device-1",
        "notes": "device label updated",
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507569799000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  4,
                  10,
                  10,
                  10
                ],
                "v": "dbg"
              },
              {
                "d": [
                  0,
                  3,
                  3,
                  3
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507569799668
        },
        "rec_status": null,
        "transient": false,
        "path": "/dev/bb/b9a74447-9962-4f82-88c8-1bcd655ff432",
        "size": 107374182400,
        "initialized": false,
        "enabled": false,
        "parent": {
          "type": [
            "os_dev"
          ],
          "id": "os_dev:7:10"
        },
        "meta": {
          "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
          "blockbridge_md": false,
          "blockbridge_disk_id": "b9a74447-9962-4f82-88c8-1bcd655ff432"
        },
        "usable": null,
        "used": null,
        "device_info": {
          "dsn": null,
          "enclosure": null,
          "present": true,
          "owner": "Volume Manager (mirror1)",
          "devname": "sde",
          "display_name": "scsi/sde",
          "serial": "b9a74447-9962-4f82-88c8-1bcd655ff432",
          "vendor": "B*BRIDGE",
          "model": "SECURE DRIVE",
          "bus": "scsi",
          "rotational": false,
          "type": [
            "disk"
          ],
          "_remote_dev_id": null
        },
        "smart_info": null,
        "md_info": null,
        "hidden": false
      },
      {
        "id": "os_dev:5:10",
        "uuid": "c0edd702-7801-42ef-b675-2b34411ee13e",
        "serial": "OSD0D62194C40626402",
        "evt_qry": "serial=OSD0D62194C40626402",
        "sds_id": null,
        "node_id": "node:10000",
        "ctime": 1507562840991,
        "mtime": 1507569948684,
        "seq": 1507569948698,
        "label": null,
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507569801000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  0,
                  2,
                  2,
                  2
                ],
                "v": "dbg"
              },
              {
                "d": [
                  4,
                  5,
                  5,
                  5
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507569801731
        },
        "rec_status": null,
        "transient": false,
        "path": "/dev/disk/by-id/md-uuid-791bf0b6:27184b1a:a7cc46b9:c7d4a716-part6",
        "size": 18216893952,
        "initialized": false,
        "enabled": false,
        "parent": null,
        "meta": {
          "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
          "blockbridge_md": false,
          "blockbridge_disk_id": "c0edd702-7801-42ef-b675-2b34411ee13e"
        },
        "usable": null,
        "used": null,
        "device_info": {
          "dsn": null,
          "enclosure": null,
          "present": true,
          "owner": null,
          "devname": "md126p6",
          "display_name": "md/system",
          "serial": null,
          "vendor": null,
          "model": null,
          "bus": null,
          "rotational": false,
          "type": [
            "partition"
          ],
          "_remote_dev_id": null
        },
        "smart_info": null,
        "md_info": {
          "chunk_size": null,
          "state": "active",
          "degraded": false,
          "mismatch_cnt": 0,
          "created": 1507562801000,
          "modified": 1507562801000,
          "active_disks": 2,
          "working_disks": 2,
          "failed_disks": 0,
          "spare_disks": 0,
          "metadata": {
            "version": "0.90.3"
          },
          "bitmap": {
            "chunk_size": null,
            "location": "none",
            "metadata": "internal",
            "space": 0,
            "backlog": 0,
            "max_backlog_used": 0
          },
          "raid": {
            "rebuild_min": 1048576,
            "rebuild_max": 1048576,
            "level": "raid1",
            "layout": null,
            "disks_num": 2
          },
          "sync_action": {
            "action": "none"
          },
          "disks": [
            {
              "size": 107338530816,
              "slot": 0,
              "state": "in_sync",
              "errors": null,
              "bad_blocks": null,
              "blockdev": "8:16",
              "dev": "/dev/sdb",
              "flags": [
                "active",
                "in-sync"
              ],
              "health": {
                "value": "online",
                "syndrome": null,
                "updating": false,
                "hidden": false,
                "device_info": {
                  "dsn": null,
                  "enclosure": null,
                  "present": true,
                  "owner": "system-array-791bf0b6-2718-4b1a-a7cc-46b9c7d4a716",
                  "devname": "sdb",
                  "display_name": "scsi/sdb",
                  "serial": "6dcf15dc-fdde-4c2b-8cd0-af2cca17c0ba",
                  "vendor": "B*BRIDGE",
                  "model": "SECURE DRIVE",
                  "bus": "scsi",
                  "rotational": false,
                  "type": [
                    "disk"
                  ],
                  "_remote_dev_id": null
                }
              },
              "oid": "os_dev:3:10",
              "uuid": "ea38df59-c5d2-459c-ab85-5c6434e8c9e4",
              "display_name": "scsi/sdb",
              "preferred_path": "/dev/bb/6dcf15dc-fdde-4c2b-8cd0-af2cca17c0ba",
              "remote_oid": null
            },
            {
              "size": 107338530816,
              "slot": 1,
              "state": "in_sync",
              "errors": null,
              "bad_blocks": null,
              "blockdev": "8:0",
              "dev": "/dev/sda",
              "flags": [
                "active",
                "in-sync"
              ],
              "health": {
                "value": "online",
                "syndrome": null,
                "updating": false,
                "hidden": false,
                "device_info": {
                  "dsn": null,
                  "enclosure": null,
                  "present": true,
                  "owner": "system-array-791bf0b6-2718-4b1a-a7cc-46b9c7d4a716",
                  "devname": "sda",
                  "display_name": "scsi/sda",
                  "serial": "c88b16a9-20ea-4a54-88b8-2ef9c68d5258",
                  "vendor": "B*BRIDGE",
                  "model": "SECURE DRIVE",
                  "bus": "scsi",
                  "rotational": false,
                  "type": [
                    "disk"
                  ],
                  "_remote_dev_id": null
                }
              },
              "oid": "os_dev:6:10",
              "uuid": "6fd8dd9d-03cb-4020-a753-4cdee61242f5",
              "display_name": "scsi/sda",
              "preferred_path": "/dev/bb/c88b16a9-20ea-4a54-88b8-2ef9c68d5258",
              "remote_oid": null
            }
          ],
          "flags": [
            "active"
          ]
        },
        "hidden": false
      },
      {
        "id": "os_dev:1:10",
        "uuid": "88e4cabf-7dac-4950-9ec0-fb4de02599fd",
        "serial": "OSD0D62194C40626443",
        "evt_qry": "serial=OSD0D62194C40626443",
        "sds_id": null,
        "node_id": "node:10000",
        "ctime": 1507562840328,
        "mtime": 1507562858197,
        "seq": 1507562861680,
        "label": null,
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507562858000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  4,
                  4,
                  4,
                  4
                ],
                "v": "dbg"
              },
              {
                "d": [
                  1,
                  1,
                  1,
                  1
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507562861680
        },
        "rec_status": null,
        "transient": false,
        "path": "/dev/bb/125e92af-2cf2-4152-a07b-b792eabb55fe",
        "size": 107374182400,
        "initialized": false,
        "enabled": false,
        "parent": {
          "type": [
            "os_dev"
          ],
          "id": "os_dev:7:10"
        },
        "meta": {
          "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
          "blockbridge_md": false,
          "blockbridge_disk_id": "125e92af-2cf2-4152-a07b-b792eabb55fe"
        },
        "usable": null,
        "used": null,
        "device_info": {
          "dsn": null,
          "enclosure": null,
          "present": true,
          "owner": "Volume Manager (mirror1)",
          "devname": "sdc",
          "display_name": "scsi/sdc",
          "serial": "125e92af-2cf2-4152-a07b-b792eabb55fe",
          "vendor": "B*BRIDGE",
          "model": "SECURE DRIVE",
          "bus": "scsi",
          "rotational": false,
          "type": [
            "disk"
          ],
          "_remote_dev_id": null
        },
        "smart_info": null,
        "md_info": null,
        "hidden": false
      },
      {
        "id": "os_dev:2:10",
        "uuid": "180c2fb7-f787-45b4-831c-c56c3e58123f",
        "serial": "OSD0D62194C4062647B",
        "evt_qry": "serial=OSD0D62194C4062647B",
        "sds_id": null,
        "node_id": "node:10000",
        "ctime": 1507562840465,
        "mtime": 1507569948685,
        "seq": 1507569948695,
        "label": null,
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507569802000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  0,
                  2,
                  2,
                  2
                ],
                "v": "dbg"
              },
              {
                "d": [
                  2,
                  5,
                  5,
                  5
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507569802681
        },
        "rec_status": null,
        "transient": false,
        "path": "/dev/bb/6932606f-1cd8-43bc-bc4c-6fb5f8d42846",
        "size": 107374182400,
        "initialized": false,
        "enabled": false,
        "parent": null,
        "meta": {
          "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
          "blockbridge_md": false,
          "blockbridge_disk_id": "6932606f-1cd8-43bc-bc4c-6fb5f8d42846"
        },
        "usable": null,
        "used": null,
        "device_info": {
          "dsn": null,
          "enclosure": null,
          "present": true,
          "owner": null,
          "devname": "sdd",
          "display_name": "scsi/sdd",
          "serial": "6932606f-1cd8-43bc-bc4c-6fb5f8d42846",
          "vendor": "B*BRIDGE",
          "model": "SECURE DRIVE",
          "bus": "scsi",
          "rotational": false,
          "type": [
            "disk"
          ],
          "_remote_dev_id": null
        },
        "smart_info": null,
        "md_info": null,
        "hidden": false
      },
      {
        "id": "os_dev:6:10",
        "uuid": "6fd8dd9d-03cb-4020-a753-4cdee61242f5",
        "serial": "OSD0D62194C4062643A",
        "evt_qry": "serial=OSD0D62194C4062643A",
        "sds_id": null,
        "node_id": "node:10000",
        "ctime": 1507562841153,
        "mtime": 1507562847450,
        "seq": 1507562849622,
        "label": null,
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507562847000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  4,
                  4,
                  4,
                  4
                ],
                "v": "dbg"
              },
              {
                "d": [
                  1,
                  1,
                  1,
                  1
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507562849622
        },
        "rec_status": null,
        "transient": false,
        "path": "/dev/bb/c88b16a9-20ea-4a54-88b8-2ef9c68d5258",
        "size": 107374182400,
        "initialized": false,
        "enabled": false,
        "parent": {
          "type": [
            "os_dev"
          ],
          "id": "os_dev:5:10"
        },
        "meta": {
          "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
          "blockbridge_md": false,
          "blockbridge_disk_id": "c88b16a9-20ea-4a54-88b8-2ef9c68d5258"
        },
        "usable": null,
        "used": null,
        "device_info": {
          "dsn": null,
          "enclosure": null,
          "present": true,
          "owner": "system-array-791bf0b6-2718-4b1a-a7cc-46b9c7d4a716",
          "devname": "sda",
          "display_name": "scsi/sda",
          "serial": "c88b16a9-20ea-4a54-88b8-2ef9c68d5258",
          "vendor": "B*BRIDGE",
          "model": "SECURE DRIVE",
          "bus": "scsi",
          "rotational": false,
          "type": [
            "disk"
          ],
          "_remote_dev_id": null
        },
        "smart_info": null,
        "md_info": null,
        "hidden": false
      },
      {
        "id": "os_dev:10:10",
        "uuid": "4d16735c-b8bf-4149-950b-5233c7660907",
        "serial": "OSD0D62194C406264F8",
        "evt_qry": "serial=OSD0D62194C406264F8",
        "sds_id": null,
        "node_id": "node:10000",
        "ctime": 1507568149178,
        "mtime": 1507568149513,
        "seq": 1507568149699,
        "label": "osdev_file1",
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507568149000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  4,
                  4,
                  4,
                  4
                ],
                "v": "dbg"
              },
              {
                "d": [
                  1,
                  1,
                  1,
                  1
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507568149669
        },
        "rec_status": null,
        "transient": false,
        "path": "/tmp/disk1.osdev_file",
        "size": 1073741824,
        "initialized": false,
        "enabled": false,
        "parent": null,
        "meta": {
          "blockbridge_disk_id": "4d16735c-b8bf-4149-950b-5233c7660907"
        },
        "usable": null,
        "used": null,
        "device_info": {
          "dsn": null,
          "enclosure": null,
          "present": true,
          "owner": null,
          "devname": null,
          "display_name": null,
          "serial": null,
          "vendor": null,
          "model": null,
          "bus": null,
          "rotational": null,
          "type": null,
          "_remote_dev_id": null
        },
        "smart_info": null,
        "md_info": null,
        "hidden": false
      },
      {
        "id": "os_dev:3:10",
        "uuid": "ea38df59-c5d2-459c-ab85-5c6434e8c9e4",
        "serial": "OSD0D62194C40626463",
        "evt_qry": "serial=OSD0D62194C40626463",
        "sds_id": null,
        "node_id": "node:10000",
        "ctime": 1507562840630,
        "mtime": 1507562847170,
        "seq": 1507562849630,
        "label": null,
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507562847000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  4,
                  4,
                  4,
                  4
                ],
                "v": "dbg"
              },
              {
                "d": [
                  1,
                  1,
                  1,
                  1
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507562849630
        },
        "rec_status": null,
        "transient": false,
        "path": "/dev/bb/6dcf15dc-fdde-4c2b-8cd0-af2cca17c0ba",
        "size": 107374182400,
        "initialized": false,
        "enabled": false,
        "parent": {
          "type": [
            "os_dev"
          ],
          "id": "os_dev:5:10"
        },
        "meta": {
          "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
          "blockbridge_md": false,
          "blockbridge_disk_id": "6dcf15dc-fdde-4c2b-8cd0-af2cca17c0ba"
        },
        "usable": null,
        "used": null,
        "device_info": {
          "dsn": null,
          "enclosure": null,
          "present": true,
          "owner": "system-array-791bf0b6-2718-4b1a-a7cc-46b9c7d4a716",
          "devname": "sdb",
          "display_name": "scsi/sdb",
          "serial": "6dcf15dc-fdde-4c2b-8cd0-af2cca17c0ba",
          "vendor": "B*BRIDGE",
          "model": "SECURE DRIVE",
          "bus": "scsi",
          "rotational": false,
          "type": [
            "disk"
          ],
          "_remote_dev_id": null
        },
        "smart_info": null,
        "md_info": null,
        "hidden": false
      },
      {
        "id": "os_dev:7:10",
        "uuid": "7b70f246-5a82-4029-b39e-f139929c9a9e",
        "serial": "OSD0D62194C40626422",
        "evt_qry": "serial=OSD0D62194C40626422",
        "flags": "md",
        "sds_id": null,
        "node_id": "node:10000",
        "ctime": 1507562852823,
        "mtime": 1507567764983,
        "seq": 1507568230675,
        "label": null,
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507564907000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  0,
                  2,
                  2,
                  2
                ],
                "v": "dbg"
              },
              {
                "d": [
                  1,
                  8,
                  8,
                  8
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  1,
                  1,
                  1
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507568230675
        },
        "rec_status": null,
        "transient": false,
        "path": "/dev/disk/by-id/md-uuid-7b70f246:5a824029:b39ef139:929c9a9e",
        "size": 107338530816,
        "initialized": false,
        "enabled": false,
        "parent": null,
        "meta": {
          "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
          "blockbridge_md": true,
          "blockbridge_disk_id": "7b70f246-5a82-4029-b39e-f139929c9a9e"
        },
        "usable": null,
        "used": null,
        "device_info": {
          "dsn": null,
          "enclosure": null,
          "present": true,
          "owner": null,
          "devname": "md124",
          "display_name": "md/mirror1",
          "serial": null,
          "vendor": null,
          "model": null,
          "bus": null,
          "rotational": true,
          "type": [
            "md"
          ],
          "_remote_dev_id": null
        },
        "smart_info": null,
        "md_info": {
          "chunk_size": null,
          "state": "clean",
          "degraded": false,
          "mismatch_cnt": 0,
          "created": 1507562847000,
          "modified": 1507562847000,
          "active_disks": 2,
          "working_disks": 2,
          "failed_disks": 0,
          "spare_disks": 0,
          "metadata": {
            "version": "0.90.3"
          },
          "bitmap": {
            "chunk_size": 268435456,
            "location": "file",
            "metadata": "internal",
            "space": 0,
            "backlog": 0,
            "max_backlog_used": 0
          },
          "raid": {
            "rebuild_min": 1048576,
            "rebuild_max": 1048576,
            "level": "raid1",
            "layout": null,
            "disks_num": 2
          },
          "sync_action": {
            "action": "none"
          },
          "disks": [
            {
              "size": 107338530816,
              "slot": 0,
              "state": "in_sync",
              "errors": null,
              "bad_blocks": null,
              "blockdev": "8:64",
              "dev": "/dev/sde",
              "flags": [
                "active",
                "in-sync"
              ],
              "health": {
                "value": "online",
                "syndrome": null,
                "updating": false,
                "hidden": false,
                "device_info": {
                  "dsn": null,
                  "enclosure": null,
                  "present": true,
                  "owner": "Volume Manager (mirror1)",
                  "devname": "sde",
                  "display_name": "scsi/sde",
                  "serial": "b9a74447-9962-4f82-88c8-1bcd655ff432",
                  "vendor": "B*BRIDGE",
                  "model": "SECURE DRIVE",
                  "bus": "scsi",
                  "rotational": false,
                  "type": [
                    "disk"
                  ],
                  "_remote_dev_id": null
                }
              },
              "oid": "os_dev:4:10",
              "uuid": "5a05f431-0a1b-4725-bc8b-ea179aa501b6",
              "display_name": "scsi/sde",
              "preferred_path": "/dev/bb/b9a74447-9962-4f82-88c8-1bcd655ff432",
              "remote_oid": null
            },
            {
              "size": 107338530816,
              "slot": 1,
              "state": "in_sync",
              "errors": null,
              "bad_blocks": null,
              "blockdev": "8:32",
              "dev": "/dev/sdc",
              "flags": [
                "active",
                "in-sync"
              ],
              "health": {
                "value": "online",
                "syndrome": null,
                "updating": false,
                "hidden": false,
                "device_info": {
                  "dsn": null,
                  "enclosure": null,
                  "present": true,
                  "owner": "Volume Manager (mirror1)",
                  "devname": "sdc",
                  "display_name": "scsi/sdc",
                  "serial": "125e92af-2cf2-4152-a07b-b792eabb55fe",
                  "vendor": "B*BRIDGE",
                  "model": "SECURE DRIVE",
                  "bus": "scsi",
                  "rotational": false,
                  "type": [
                    "disk"
                  ],
                  "_remote_dev_id": null
                }
              },
              "oid": "os_dev:1:10",
              "uuid": "88e4cabf-7dac-4950-9ec0-fb4de02599fd",
              "display_name": "scsi/sdc",
              "preferred_path": "/dev/bb/125e92af-2cf2-4152-a07b-b792eabb55fe",
              "remote_oid": null
            }
          ],
          "flags": [
            "clean"
          ]
        },
        "hidden": false
      }
    ]
    

    Operating System Device Create

    Register a new operating system storage device, creating its configuration.

    POST /os-dev
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | path | string | device path string | | node_id | string | storage node id | | raw_size | integer | raw device size in bytes
    Range: 1000000000 <= value | | parent:type | string | type of identified resource |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | label | nullable string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | align_writes_4k | boolean | align all writes to 4KiB boundaries, executing read requests as necessary | | uuid | nullable uuid | object UUID |

    Curl Example

    $ curl -X POST https://mgmt-node/api/os-dev \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "node_id": "node:10000",
      "path": "/tmp/disk.osdev_file",
      "raw_size": 1073741824,
      "label": "osdev_file"
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:26:55 GMT
    Server: Goliath
    ETag: "36f4dc2164d2a599050ef5a7753d1308"
    Content-Type: application/json
    Content-Length: 823
    
    {
      "id": "os_dev:14:10",
      "uuid": "e40d2e16-b611-4d71-8b9a-0d3535871177",
      "serial": "OSD0D62194C406264B9",
      "evt_qry": "serial=OSD0D62194C406264B9",
      "sds_id": null,
      "node_id": "node:10000",
      "ctime": 1507570015827,
      "mtime": 1507570015889,
      "seq": 1507570015901,
      "label": "osdev_file",
      "notes": null,
      "status": {
        "value": "pending",
        "indicator": "degraded",
        "detail": "retrieving status; please wait"
      },
      "ec": {
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "v": "dbg",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "info",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "warn",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "err",
              "d": [
                0,
                0,
                0,
                0
              ]
            }
          ]
        },
        "status": "current",
        "seq": 1507570015840
      },
      "rec_status": null,
      "transient": false,
      "path": "/tmp/disk.osdev_file",
      "size": 1073741824,
      "initialized": false,
      "enabled": false,
      "parent": null,
      "usable": null,
      "used": null,
      "device_info": null,
      "smart_info": null,
      "md_info": null,
      "hidden": false
    }
    

    Operating System Device Remove

    Remove the configuration of an existing operating system storage device.

    DELETE /os-dev/{os_dev_id_or_serial}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/os-dev/OSD0D62194C406264B9 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:26:56 GMT
    Server: Goliath
    

    Operating System Device Update

    Change the configuration of an existing operating system storage device.

    PATCH /os-dev/{os_dev_id_or_serial}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | path | string | device path | | label | nullable string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | align_writes_4k | boolean | align all writes to 4KiB boundaries, executing read requests as necessary | | parent:type | string | type of identified resource |

    Curl Example

    $ curl -X PATCH https://mgmt-node/api/os-dev/os_dev:4:10 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "label": "device-1",
      "notes": "device label updated"
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:56 GMT
    Server: Goliath
    ETag: "f160fcc0139f2017ebb5ccff54331aa6"
    Content-Type: application/json
    Content-Length: 1303
    
    {
      "id": "os_dev:4:10",
      "uuid": "5a05f431-0a1b-4725-bc8b-ea179aa501b6",
      "serial": "OSD0D62194C4062641A",
      "evt_qry": "serial=OSD0D62194C4062641A",
      "sds_id": null,
      "node_id": "node:10000",
      "ctime": 1507562840777,
      "mtime": 1507570016428,
      "seq": 1507570016436,
      "label": "device-1",
      "notes": "device label updated",
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507569799000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                4,
                10,
                10,
                10
              ],
              "v": "dbg"
            },
            {
              "d": [
                0,
                3,
                3,
                3
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507569799668
      },
      "rec_status": null,
      "transient": false,
      "path": "/dev/bb/b9a74447-9962-4f82-88c8-1bcd655ff432",
      "size": 107374182400,
      "initialized": false,
      "enabled": false,
      "parent": {
        "type": [
          "os_dev"
        ],
        "id": "os_dev:7:10"
      },
      "meta": {
        "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
        "blockbridge_md": false,
        "blockbridge_disk_id": "b9a74447-9962-4f82-88c8-1bcd655ff432"
      },
      "usable": null,
      "used": null,
      "device_info": {
        "dsn": null,
        "enclosure": null,
        "present": true,
        "owner": "Volume Manager (mirror1)",
        "devname": "sde",
        "display_name": "scsi/sde",
        "serial": "b9a74447-9962-4f82-88c8-1bcd655ff432",
        "vendor": "B*BRIDGE",
        "model": "SECURE DRIVE",
        "bus": "scsi",
        "rotational": false,
        "type": [
          "disk"
        ],
        "_remote_dev_id": null
      },
      "smart_info": null,
      "md_info": null,
      "hidden": false
    }
    

    System Datastore

    A System Datastore (or just Datastore) defines a pool of storage from which you, your users, and applications will provision secure virtual storage services. You can aggregate direct-attached and iSCSI storage devices to create a single large pool of storage.

    Attributes

    NameTypeDescription
    idstringobject id
    uuiduuidobject uuid
    labelstringuser assigned label
    Length: 1..64
    notesnullable stringuser assigned notes
    Length: 0..256
    serialstringsystem datastore serial number
    ctimeintegersystem datastore create time
    Range: 0 <= value
    mtimeintegersystem datastore last modified time
    Range: 0 <= value
    product_idstringproduct id
    node_idstringnode id
    cplx_idnullable integerprocessor complex assignment
    networksnullable arrayset of interfaces to bind to datastore--null means bind all interfaces
    networksnullable arrayset of interfaces to bind to datastore--null means bind all interfaces
    size_reservablenullable integersize of system datastore storage that is reservable
    size_reserve_hard_thresholdnullable integerWhen the available size is less than this threshold, the data plane denies write allocations for volumes that exceed their reserve. This is the amount of storage held for use only by reservation holders.
    size_reserve_soft_thresholdnullable integerWhen the available size is less than this threshold, the data plane marks the datastore degraded.
    iops_ratingnullable integersystem datastore IOPS rating
    iops_schedulingnullable booleansystem datastore supports provisioned IOPS
    iops_io_sizenullable integersize in bytes (aligned to 4096) used for IOPS accounting
    iops_reserve_pctnullable integerpercent of IOPS reserved
    vss_provisioningbooleanvirtual storage services are allowed to provision out of this system datastore
    label_tagnullable booleanautomatically use the system datastore label as a provisioning tag
    blk_encode_defaultnullable stringdefault block format for virtual disks
    one of:"aes256-gcm-4k" or "aes128-xts-4k"
    poolnullable objectsystem datastore pool configuration
    pool:strategystringpool allocation strategy
    one of:"weighted" or "ranked" or "ranked_weighted" or "balanced_unused_percentage" or "balanced_unused"
    pool:devs/dev_idstringdevice id
    pool:devs/allocationbooleandata allocation is permitted
    pool:devs/rankintegerallocation rank
    Range: 1 <= value <= 255
    pool:devs/weightintegerallocation weight
    Range: 0 <= value <= 255
    pool:rebalance:enabledbooleanrebalancing administrative control
    pool:rebalance:evaluatestringevaluate pool balance once or continuously during scheduled interval
    one of:"continuous" or "once"
    pool:rebalance:thresholdnumberdo not rebalance until the pool is at least this percentage out of balance
    Range: 0 <= value <= 100
    pool:rebalance:start_timeintegerstarting time of day
    Range: 0 <= value <= 86399000
    pool:rebalance:end_timeintegerending time of day
    Range: 0 <= value <= 86399000
    pool:rebalance:bandwidth_limitnullable integerrebalance bandwidth limit
    data:log_dev_idstringsystem datastore log device
    data:log_compressnullable booleanenable data log compression
    data:log_bypassnullable booleando not use the write ahead log (XTS only, implies sequential_write_direct)
    data:sequential_write_directnullable booleansequential writes go direct to pool storage
    data:write_merge_timeoutnullable integerwrite merge timeout
    data:segment_sizenullable stringsegment size
    one of:"128KiB" or "144KiB" or "256KiB"
    data:cache_fill_thresholdnullable integercache fill threshold
    meta:dev_idstringdevice to use for metasystem
    meta:cache_sizenullable integermetasystem cache size
    compression:enablednullable booleancompression administrative state
    compression:codecnullable stringcompression codec
    one of:"economy" or "adaptive" or "adaptive_economy" or "adaptive_performance" or "performance"
    compression:iops_limitnullable integerlimit sustained I/O operations per second
    compression:activity_monitornullable integerprevent compression of active data (in minutes)
    compression:cycle_detectionnullable integerrecurring compression of active data (in minutes)
    compression:start_timenullable integerlimit compression processing, starting time of day
    Range: 0 <= value <= 86399000
    compression:end_timenullable integerlimit compression processing, ending time of day
    Range: 0 <= value <= 86399000
    product:notesstringuser assigned notes
    Length: 0..256
    product:tagsarrayprovisioning tags
    status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    status:detailnullable stringstatus detail
    sizenullable integertotal size of system datastore (in bytes)
    usednullable integerused size of system datastore (in bytes)
    compress_gainnullable integerreduction in usage due to compression (in bytes)
    availablenullable integeravailable size of system datastore (in bytes)
    reserve_availablenullable integerunreserved reservable (in bytes)
    reserve_sizenullable integertotal reserve size of system datastore (in bytes)
    reserve_usednullable integerused reserve size of system datastore (in bytes)
    reserve_iopsnullable integertotal reserved IOPS of system datastore
    iops_readnullable integerRead operations per second, normalized to 4K
    iops_writenullable integerWrite operations per second, normalized to 4K
    iopsnullable integerI/O operations per second, normalized to 4K
    bw_readnullable integerinstantaneous read bandwidth
    bw_writenullable integerinstantaneous write bandwidth
    bwnullable integerinstantaneous read and write bandwidth
    rebalancednullable integerspace rebalanced, current or prior rebalancing run
    iops_rebalancenullable integercurrent rebalancing IOPS
    imbalancenullable integerimbalance of current pool allocation, in bytes
    iops_merge_upnullable integercurrent decompress IOPS (due to partial overwrite of a compressed segments)
    iops_merge_downnullable integercurrent compress IOPS
    task_depthnullable integerone second peak task depth
    task_latencynullable integerthree second windowed average task latency (in microseconds)
    metrics_rts:used_percentnullable numberused size of system datastore (in percentage of rts.size)
    metrics_rts:used_notenullable stringhuman-readable usage notice text
    metrics_rts:reserve_size_percentnullable numbercurrent total size reserved (in percentage of cfg.size_reservable)
    metrics_rts:reserve_size_notenullable stringhuman-readable reserve size notice text
    metrics_rts:reserve_iops_percentnullable numbertotal IOPS reserved (as a percentage of reservable IOPS
    metrics_rts:size_reserve_hard_threshold_remainnullable integerNumber of bytes until hard threshold is reached
    metrics_rts:size_reserve_hard_threshold_percentnullable numberReserve hard threshold (in percentage of rts.size)
    metrics_rts:size_efficiency_plannednullable numberratio of configured reservable size to pool size
    metrics_rts:size_efficiency_planned_descnullable stringratio of configured reservable size to pool size (formatted string)
    metrics_rts:size_efficiency_currentnullable numberratio of current size reserved to current size used
    metrics_rts:size_efficiency_current_descnullable stringratio of current size reserved to current size used (formatted string)
    metrics_rts:size_efficiency_current_notenullable stringhuman-readable note about the ratio of current size reserved to current size used
    metrics_rts:compression_rationullable numberratio of the decompressed size of the data to the raw (compressed) size currently used
    metrics_rts:available_percentnullable numberavailable size of system datastore (in percentage of rts.available)
    metrics_rts:reserve_available_percentnullable numbercurrent free reservable (in percentage of cfg.reserve_available)
    metrics_rts:metadata_used_percentnullable numberpercentage of metadata database used
    data_rts:log_sizenullable integerruntime system datastore log size (in bytes)
    data_rts:log_compress_rationullable numberdata log compression ratio
    data_rts:cache_sizenullable integerdata cache size
    meta_rts:sizenullable integerruntime system datastore metasystem size (in bytes)
    meta_rts:log_sizenullable integerruntime system datastore metasystem log size (in bytes)
    meta_rts:page_sizenullable integermetasystem page size (in bytes)
    meta_rts:pagesnullable integertotal number of pages in metasystem
    meta_rts:pages_usednullable integernumber of pages consumed in metasystem
    meta_rts:pages_cachednullable integernumber of pages in cache in metasystem
    meta_rts:pages_dirtynullable integernumber of dirty pages in cache in metasystem
    meta_rts:pages_pinnednullable integernumber of pages pinned into cache in metasystem
    meta_rts:pages_compressednullable integerof total, number of pages that are compressed in cache
    meta_rts:cache_sizenullable integermetasystem cache size
    alerts_rtsnullable arraylist of alerts
    alerts_rts/symbolstringno documentation
    alerts_rts/textstringno documentation
    alerts_rts/thresholdnumberbuiltin number type -- integer or double allowed
    alerts_rts/timedate-timebuiltin ISO 8601 time string
    alerts_rts/valuenumberbuiltin number type -- integer or double allowed
    alerts_rts/indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    alerts_rts/limitnumberbuiltin number type -- integer or double allowed
    usage:vdisk_intnullable integerinternal virtual disks on node
    usage:vssnullable integervirtual storage services on node
    usage:targetsnullable integertargets on node
    usage:sessions_nvmenullable integerNVMe sessions (associations) connected to node targets
    usage:devnullable integeriSCSI and OS devices on node
    usage:vdisknullable integervirtual disks on node
    usage:snapshotsnullable integersnapshots on node
    usage:conn_securenullable integersecure iSCSI session connections to node targets
    usage:conn_insecurenullable integerinsecure iSCSI session connections to node targets
    usage:nvme_qpsnullable integerNVMe queue pairs, including admin queues
    usage:connnullable integeriSCSI session connections to node targets
    usage:clonesnullable integercloned disks on node
    usage:vdisk_extnullable integerexternal virtual disks on node
    usage:os_devnullable integerOS devices on node
    usage:sessionsnullable integeriSCSI+NVMe sessions connected to node targets
    usage:accountsnullable integeraccounts on node
    usage:profilesnullable integerinitiator profiles on node
    usage:sessions_iscsinullable integeriSCSI sessions connected to node targets
    networknullable objectbuiltin object type (contents are unchecked)

    System Datastore Info

    Retrieve an existing system datastore.

    GET /sys-ds/{sys_ds_id_or_serial}
    

    Curl Example

    $ curl https://mgmt-node/api/sys-ds/sys_ds:5:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:58 GMT
    Server: Goliath
    ETag: "ce517ae0d3c7c0a2b2eed794fa30ada8"
    Content-Type: application/json
    Content-Length: 1775
    
    {
      "id": "sys_ds:5:10",
      "uuid": "6bc54a1f-df21-4229-a6ce-d6e4f062c56a",
      "serial": "SDS1F62194C4062640D",
      "evt_qry": "serial=SDS1F62194C4062640D",
      "node_id": "node:10000",
      "ctime": 1507570016862,
      "mtime": 1507570018719,
      "seq": 1507570018800,
      "label": "datastore-1",
      "notes": "sys-ds label_tag updated",
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507570018000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                7,
                7,
                7,
                7
              ],
              "v": "dbg"
            },
            {
              "d": [
                3,
                3,
                3,
                3
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507570018685
      },
      "rec_status": null,
      "product_id": "product:5:10",
      "size_reservable": null,
      "size_reserve_hard_threshold": null,
      "size_reserve_soft_threshold": null,
      "iops_reserve_pct": 100,
      "iops_rating": 50000,
      "iops_scheduling": false,
      "iops_io_size": 32768,
      "vss_provisioning": true,
      "label_tag": true,
      "product": {
        "tags": [
    
        ]
      },
      "pool": {
        "rebalance": {
          "enabled": false,
          "evaluate": "continuous",
          "threshold": 5,
          "start_time": 0,
          "end_time": 0,
          "bandwidth_limit": null
        },
        "strategy": "weighted",
        "devs": [
          {
            "dev_id": "os_dev:5:10",
            "allocation": true,
            "rank": 1,
            "weight": 1
          },
          {
            "dev_id": "os_dev:2:10",
            "allocation": true,
            "rank": 1,
            "weight": 1
          }
        ]
      },
      "meta": {
        "dev_id": "os_dev:5:10",
        "cache_size": 16777216
      },
      "data": {
        "log_compress": false,
        "log_bypass": false,
        "sequential_write_direct": true,
        "write_merge_timeout": 0,
        "segment_size": "128KiB",
        "log_dev_id": "os_dev:5:10"
      },
      "blk_encode_default": "aes128-xts-4k",
      "size": 18090950656,
      "used": 0,
      "iops_read": 0,
      "iops_write": 0,
      "bw_read": 0,
      "bw_write": 0,
      "reserve_size": 0,
      "reserve_used": 0,
      "reserve_iops": 0,
      "data_rts": {
        "log_size": 8388608,
        "log_compress_ratio": 1.0
      },
      "meta_rts": {
        "size": 16777216,
        "log_size": 8388608,
        "page_size": 4096,
        "pages": 1919,
        "pages_used": 526,
        "pages_cached": 336,
        "pages_dirty": 9,
        "pages_pinned": 333,
        "pages_compressed": 0
      },
      "imbalance": 0
    }
    

    System Datastore List

    Enumerate system datastores.

    GET /sys-ds
    

    Curl Example

    $ curl https://mgmt-node/api/sys-ds \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:57 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 1679
    
    [
      {
        "id": "sys_ds:5:10",
        "uuid": "6bc54a1f-df21-4229-a6ce-d6e4f062c56a",
        "serial": "SDS1F62194C4062640D",
        "evt_qry": "serial=SDS1F62194C4062640D",
        "node_id": "node:10000",
        "ctime": 1507570016862,
        "mtime": 1507570017846,
        "seq": 1507570017863,
        "label": "datastore-1",
        "notes": "sys-ds label_tag updated",
        "status": {
          "value": "pending",
          "indicator": "degraded",
          "detail": "retrieving status; please wait"
        },
        "ec": {
          "table": {
            "time": 1507570017000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  2,
                  2,
                  2,
                  2
                ],
                "v": "dbg"
              },
              {
                "d": [
                  1,
                  1,
                  1,
                  1
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507570017669
        },
        "rec_status": null,
        "product_id": "product:5:10",
        "size_reservable": null,
        "size_reserve_hard_threshold": null,
        "size_reserve_soft_threshold": null,
        "iops_reserve_pct": 100,
        "iops_rating": 50000,
        "iops_scheduling": false,
        "iops_io_size": 32768,
        "vss_provisioning": true,
        "label_tag": true,
        "product": {
          "tags": [
    
          ]
        },
        "pool": {
          "rebalance": {
            "enabled": false,
            "evaluate": "continuous",
            "threshold": 5,
            "start_time": 0,
            "end_time": 0,
            "bandwidth_limit": null
          },
          "strategy": "weighted",
          "devs": [
    
          ]
        },
        "meta": {
          "dev_id": "os_dev:5:10",
          "cache_size": 16777216
        },
        "data": {
          "log_compress": false,
          "log_bypass": false,
          "sequential_write_direct": true,
          "write_merge_timeout": 0,
          "segment_size": "128KiB",
          "log_dev_id": "os_dev:5:10"
        },
        "blk_encode_default": "aes128-xts-4k",
        "size": null,
        "used": null,
        "iops_read": null,
        "iops_write": null,
        "bw_read": null,
        "bw_write": null,
        "reserve_size": null,
        "reserve_used": null,
        "reserve_iops": null,
        "data_rts": {
          "log_size": null
        },
        "meta_rts": {
          "size": null,
          "log_size": null,
          "page_size": null,
          "pages": null,
          "pages_used": null,
          "pages_cached": null,
          "pages_dirty": null,
          "pages_pinned": null,
          "pages_compressed": null
        },
        "imbalance": null
      }
    ]
    

    System Datastore Create

    Create a new system datastore.

    POST /sys-ds
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | data:log_dev_id | string | data journal device id | | data:log_size | integer | data journal size in bytes
    default: 8388608
    Range: 4194304 <= value <= 17179869184 | | data:log_compress | boolean | enable data log compression | | data:log_bypass | boolean | do not use the write ahead log (XTS only, implies sequential_write_direct) | | data:sequential_write_direct | boolean | sequential writes go direct to pool storage
    default: true | | data:write_merge_timeout | integer | write merge timeout (microseconds)
    default: 0
    Range: 0 <= value <= 10000000 | | data:segment_size | string | segment size
    one of:"128KiB" or "144KiB" or "256KiB" | | data:cache_fill_threshold | nullable integer | cache fill threshold | | meta:dev_id | string | thin-provisioning metadata device id | | meta:size | integer | thin-provisioning metadata size in bytes
    default: 16777216
    Range: 16777216 <= value | | meta:log_size | integer | thin-provisioning metadata journal size in bytes (encapsulated inside metadata)
    default: 8388608
    Range: 4194304 <= value | | meta:cache_size | nullable integer | thin-provisioning metadata cache size
    Range: 4194304 <= value | | node_id | string | node id |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | label | string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | strategy | string | pool allocation strategy
    default: "weighted"
    one of:"weighted" or "ranked" or "ranked_weighted" or "balanced_unused_percentage" or "balanced_unused" | | size_reservable | nullable integer | size of storage that may be reserved by disks and services
    Range: 0 <= value | | size_reserve_hard_threshold | nullable integer | the amount of storage held for use only by reservation holders
    Range: 0 <= value | | size_reserve_soft_threshold | nullable integer | when there is less storage than this available, the datastore is marked degraded
    Range: 0 <= value | | iops_reserve_pct | integer | percent of storage IOPS that may be reserved by services
    default: 100
    Range: 0 <= value <= 100 | | iops_rating | integer | administrator assigned storage subsystem rating in I/O operations per second
    default: 50000
    Range: 100 <= value <= 1000000 | | iops_scheduling | boolean | IOPS scheduling is enabled | | vss_provisioning | boolean | virtual storage service provisioning is enabled
    default: true | | label_tag | boolean | system datastore label automatically entered as a provisioning tag
    default: true | | product:tags | array | array of product tags | | blk_encode_default | string | default block encoding for user data
    one of:"aes256-gcm-4k" or "aes128-xts-4k" | | backup_mrdb_size | integer | configuration backup database size on metadata device
    default: 33554432
    Range: 1048576 <= value <= 33554432 | | uuid | uuid | object UUID | | rebalance:enabled | boolean | rebalancing administrative control | | rebalance:evaluate | string | evaluate pool balance once or continuously during scheduled interval
    default: "continuous"
    one of:"continuous" or "once" | | rebalance:threshold | number | do not rebalance until the pool is at least this percentage out of balance
    default: 5
    Range: 0 <= value <= 100 | | rebalance:start_time | integer | starting time of day
    default: 0
    Range: 0 <= value <= 86399000 | | rebalance:end_time | integer | ending time of day
    default: 0
    Range: 0 <= value <= 86399000 | | rebalance:bandwidth_limit | nullable integer | rebalance bandwidth limit | | iops_io_size | integer | size in bytes (aligned to 4096) used for IOPS accounting
    default: 32768
    Range: 4096 <= value <= 131072 | | compression:enabled | boolean | compression administrative state | | compression:codec | string | compression codec
    default: "adaptive_economy"
    one of:"economy" or "adaptive" or "adaptive_economy" or "adaptive_performance" or "performance" | | compression:iops_limit | nullable integer | limit sustained I/O operations per second | | compression:activity_monitor | integer | prevent compression of active data (in minutes)
    default: 10 | | compression:cycle_detection | integer | recurring compression of active data (in minutes)
    default: 1440 | | compression:start_time | integer | limit compression processing, starting time of day
    default: 0
    Range: 0 <= value <= 86399000 | | compression:end_time | integer | limit compression processing, ending time of day
    default: 0
    Range: 0 <= value <= 86399000 | | cplx_id | nullable integer | processor complex assignment
    default: 0 | | networks | nullable array | set of interfaces to bind to datastore | | networks | nullable array | set of interfaces to bind to datastore |

    Curl Example

    $ curl -X POST https://mgmt-node/api/sys-ds \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "node_id": "node:10000",
      "label": "datastore-1",
      "data": {
        "log_dev_id": "os_dev:5:10"
      },
      "meta": {
        "dev_id": "os_dev:5:10"
      }
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:26:57 GMT
    Server: Goliath
    ETag: "54f70ac52dba7a8c51c3ca5abd36b418"
    Content-Type: application/json
    Content-Length: 1646
    
    {
      "id": "sys_ds:5:10",
      "uuid": "6bc54a1f-df21-4229-a6ce-d6e4f062c56a",
      "serial": "SDS1F62194C4062640D",
      "evt_qry": "serial=SDS1F62194C4062640D",
      "node_id": "node:10000",
      "ctime": 1507570016862,
      "mtime": 1507570017491,
      "seq": 1507570017506,
      "label": "datastore-1",
      "notes": null,
      "status": {
        "value": "pending",
        "indicator": "degraded",
        "detail": "retrieving status; please wait"
      },
      "ec": {
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "v": "dbg",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "info",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "warn",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "err",
              "d": [
                0,
                0,
                0,
                0
              ]
            }
          ]
        },
        "status": "current",
        "seq": 1507570016873
      },
      "rec_status": null,
      "product_id": "product:5:10",
      "size_reservable": null,
      "size_reserve_hard_threshold": null,
      "size_reserve_soft_threshold": null,
      "iops_reserve_pct": 100,
      "iops_rating": 50000,
      "iops_scheduling": false,
      "iops_io_size": 32768,
      "vss_provisioning": true,
      "label_tag": true,
      "product": {
        "tags": [
    
        ]
      },
      "pool": {
        "rebalance": {
          "enabled": false,
          "evaluate": "continuous",
          "threshold": 5,
          "start_time": 0,
          "end_time": 0,
          "bandwidth_limit": null
        },
        "strategy": "weighted",
        "devs": [
    
        ]
      },
      "meta": {
        "dev_id": "os_dev:5:10",
        "cache_size": 16777216
      },
      "data": {
        "log_compress": false,
        "log_bypass": false,
        "sequential_write_direct": true,
        "write_merge_timeout": 0,
        "segment_size": "128KiB",
        "log_dev_id": "os_dev:5:10"
      },
      "blk_encode_default": "aes128-xts-4k",
      "size": null,
      "used": null,
      "iops_read": null,
      "iops_write": null,
      "bw_read": null,
      "bw_write": null,
      "reserve_size": null,
      "reserve_used": null,
      "reserve_iops": null,
      "data_rts": {
        "log_size": null
      },
      "meta_rts": {
        "size": null,
        "log_size": null,
        "page_size": null,
        "pages": null,
        "pages_used": null,
        "pages_cached": null,
        "pages_dirty": null,
        "pages_pinned": null,
        "pages_compressed": null
      },
      "imbalance": null
    }
    

    System Datastore Remove

    Remove an existing system datastore. Its storage pool must be empty.

    DELETE /sys-ds/{sys_ds_id_or_serial}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/sys-ds/SDS1F62194C4062640D \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:38 GMT
    Server: Goliath
    

    Unlink a system datastore from its processor complex.

    POST /sys-ds/{sys_ds_id_or_serial}/actions/unlink
    

    Curl Example

    $ curl -X POST FIXME
    

    Response Example

    HTTP/1.1 200 OK
    

    System Datastore Query Usage

    Retrieve datastore usage metrics for the specified sys_ds id or serial number.

    GET /sys-ds/{sys_ds_id_or_serial}/usage
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | tstart | date-time | start time for query
    default: -604800000 | | tend | integer | end time for query
    default: -1
    Range: 0 <= value | | granularity | string | evaluation granularity
    default: "hour"
    one of:"hour" or "day" | | stats | array | limit results to subset of datastore metrics | | with_points | boolean | include raw metric data suitable for graphing |

    Curl Example

    $ curl FIXME
    

    Response Example

    HTTP/1.1 200 OK
    

    System Datastore Update

    Change the configuration of an existing system datastore.

    PATCH /sys-ds/{sys_ds_id_or_serial}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | label | string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | data:cache_size | integer | data cache size in bytes | | data:log_compress | boolean | enable data log compression | | data:log_bypass | boolean | do not use the write ahead log (XTS only, implies sequential_write_direct) | | data:sequential_write_direct | boolean | sequential writes go direct to pool storage | | data:write_merge_timeout | integer | write merge timeout
    Range: 0 <= value <= 10000000 | | data:cache_fill_threshold | nullable integer | cache fill threshold | | meta:cache_size | integer | thin-provisioning metadata cache size in bytes | | pool:strategy | string | pool allocation strategy
    one of:"weighted" or "ranked" or "ranked_weighted" or "balanced_unused_percentage" or "balanced_unused" | | pool:devs/dev_id | string | device id | | pool:devs/allocation | boolean | data allocation is permitted | | pool:devs/rank | integer | allocation rank
    Range: 1 <= value <= 255 | | pool:devs/weight | integer | allocation weight
    Range: 0 <= value <= 255 | | pool:rebalance:enabled | boolean | rebalancing administrative control | | pool:rebalance:evaluate | string | evaluate pool balance once or continuously during scheduled interval
    one of:"continuous" or "once" | | pool:rebalance:threshold | number | do not rebalance until the pool is at least this percentage out of balance
    Range: 0 <= value <= 100 | | pool:rebalance:start_time | integer | starting time of day
    Range: 0 <= value <= 86399000 | | pool:rebalance:end_time | integer | ending time of day
    Range: 0 <= value <= 86399000 | | pool:rebalance:bandwidth_limit | nullable integer | rebalance bandwidth limit | | iops_reserve_pct | integer | percent of storage IOPS that may be reserved by services
    Range: 0 <= value <= 100 | | size_reservable | nullable integer | size of storage that may be reserved by disks and services
    Range: 0 <= value | | size_reserve_hard_threshold | nullable integer | the amount of storage held for use only by reservation holders
    Range: 0 <= value | | size_reserve_soft_threshold | nullable integer | when there is less storage than this available, the datastore is marked degraded
    Range: 0 <= value | | iops_rating | integer | administrator assigned storage subsystem rating in I/O operations per second
    Range: 100 <= value <= 1000000 | | iops_scheduling | boolean | IOPS scheduling is enabled | | vss_provisioning | boolean | virtual storage service provisioning is enabled | | label_tag | boolean | system datastore label automatically entered as a provisioning tag | | product:tags | array | array of product tags | | product:notes | string | user assigned notes
    Length: 0..256 | | cplx_id | nullable integer | processor complex assignment | | networks | nullable array | set of interfaces to bind to datastore | | networks | nullable array | set of interfaces to bind to datastore | | compression:enabled | boolean | compression administrative state | | compression:codec | string | compression codec
    one of:"economy" or "adaptive" or "adaptive_economy" or "adaptive_performance" or "performance" | | compression:iops_limit | nullable integer | limit sustained I/O operations per second | | compression:activity_monitor | integer | prevent compression of active data (in minutes) | | compression:cycle_detection | integer | recurring compression of active data (in minutes) | | compression:start_time | integer | limit compression processing, starting time of day
    Range: 0 <= value <= 86399000 | | compression:end_time | integer | limit compression processing, ending time of day
    Range: 0 <= value <= 86399000 | | iops_io_size | integer | size in bytes (aligned to 4096) used for IOPS accounting
    Range: 4096 <= value <= 131072 |

    Curl Example

    $ curl -X PATCH https://mgmt-node/api/sys-ds/sys_ds:5:10 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "label_tag": true,
      "notes": "sys-ds label_tag updated"
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:57 GMT
    Server: Goliath
    ETag: "93eca1e08e41fd73ca58d5c023a3590c"
    Content-Type: application/json
    Content-Length: 1677
    
    {
      "id": "sys_ds:5:10",
      "uuid": "6bc54a1f-df21-4229-a6ce-d6e4f062c56a",
      "serial": "SDS1F62194C4062640D",
      "evt_qry": "serial=SDS1F62194C4062640D",
      "node_id": "node:10000",
      "ctime": 1507570016862,
      "mtime": 1507570017846,
      "seq": 1507570017863,
      "label": "datastore-1",
      "notes": "sys-ds label_tag updated",
      "status": {
        "value": "pending",
        "indicator": "degraded",
        "detail": "retrieving status; please wait"
      },
      "ec": {
        "table": {
          "time": 1507570017000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                2,
                2,
                2,
                2
              ],
              "v": "dbg"
            },
            {
              "d": [
                1,
                1,
                1,
                1
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507570017669
      },
      "rec_status": null,
      "product_id": "product:5:10",
      "size_reservable": null,
      "size_reserve_hard_threshold": null,
      "size_reserve_soft_threshold": null,
      "iops_reserve_pct": 100,
      "iops_rating": 50000,
      "iops_scheduling": false,
      "iops_io_size": 32768,
      "vss_provisioning": true,
      "label_tag": true,
      "product": {
        "tags": [
    
        ]
      },
      "pool": {
        "rebalance": {
          "enabled": false,
          "evaluate": "continuous",
          "threshold": 5,
          "start_time": 0,
          "end_time": 0,
          "bandwidth_limit": null
        },
        "strategy": "weighted",
        "devs": [
    
        ]
      },
      "meta": {
        "dev_id": "os_dev:5:10",
        "cache_size": 16777216
      },
      "data": {
        "log_compress": false,
        "log_bypass": false,
        "sequential_write_direct": true,
        "write_merge_timeout": 0,
        "segment_size": "128KiB",
        "log_dev_id": "os_dev:5:10"
      },
      "blk_encode_default": "aes128-xts-4k",
      "size": null,
      "used": null,
      "iops_read": null,
      "iops_write": null,
      "bw_read": null,
      "bw_write": null,
      "reserve_size": null,
      "reserve_used": null,
      "reserve_iops": null,
      "data_rts": {
        "log_size": null
      },
      "meta_rts": {
        "size": null,
        "log_size": null,
        "page_size": null,
        "pages": null,
        "pages_used": null,
        "pages_cached": null,
        "pages_dirty": null,
        "pages_pinned": null,
        "pages_compressed": null
      },
      "imbalance": null
    }
    

    System Datastore Pool Add

    Add an iSCSI storage device or an OS storage device to the storage pool of a system datastore.

    POST /sys-ds/{sys_ds_id_or_serial}/actions/pool-add
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | dev_id | string | device id |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | allocation | boolean | data allocation is enabled
    default: true | | rank | integer | allocation rank
    default: 1
    Range: 1 <= value <= 255 | | weight | integer | allocation weight
    default: 1
    Range: 0 <= value <= 255 |

    Curl Example

    $ curl -X POST https://mgmt-node/api/sys-ds/sys_ds:5:10/actions/pool-add \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "dev_id": "os_dev:5:10"
    }'
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:26:58 GMT
    Server: Goliath
    

    System Datastore Pool Delete

    Remove an iSCSI storage device or an OS storage device from the storage pool of a system datastore. The device must not contain any user data. Use the pool destage action to move user data away from the device prior to removing it from the pool.

    POST /sys-ds/{sys_ds_id_or_serial}/actions/pool-del
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | dev_id | string | device id |

    Curl Example

    $ curl -X POST https://mgmt-node/api/sys-ds/sys_ds:5:10/actions/pool-del \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "dev_id": "os_dev:5:10"
    }'
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:32 GMT
    Server: Goliath
    

    System Datastore Pool Destage

    Move all user data off of an iSCSI or OS storage device to other devices in the system datastore storage pool. There must be enough room on the remaining set of pool devices to hold the data.

    POST /sys-ds/{sys_ds_id_or_serial}/actions/pool-destage
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | dev_id | string | device id |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | limit_bandwidth | boolean | limit bandwidth usage | | bandwidth | integer | bandwidth limit in bytes/sec |

    Curl Example

    $ curl -X POST https://mgmt-node/api/sys-ds/sys_ds:5:10/actions/pool-destage \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "dev_id": "os_dev:5:10"
    }'
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:32 GMT
    Server: Goliath
    

    System Datastore Benchmark

    Initiate a benchmark test for the storage pool of a system datastore.

    POST /sys-ds/{sys_ds_id_or_serial}/actions/benchmark
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | range | integer | byte range of test
    Range: 1048576 <= value | | workload | string | benchmark workload type
    one of:"sequential" or "random" | | preformat | boolean | write entire range prior to test |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | read_percent | integer | percentage of read I/Os
    default: 50
    Range: 0 <= value <= 100 | | encoding | string | block encoding
    one of:"aes256-gcm-4k" or "aes128-xts-4k" | | duration | integer | time in seconds to run test
    default: 300 | | iosize_min | integer | minimum I/O size
    default: 4096
    Range: 512 <= value <= 1048576 | | iosize_max | integer | maximum I/O size
    default: 4096
    Range: 512 <= value <= 1048576 | | align | integer | I/O offset alignment
    default: 4096
    Range: 512 <= value <= 1048576 | | queue_depth | integer | maximum number of I/O's outstanding
    default: 64
    Range: 1 <= value <= 1024 | | compressibility | integer | percentage that written data should compress, assuming ideal compression
    default: 0
    Range: 0 <= value <= 100 |

    Curl Example

    $ curl -X POST https://mgmt-node/api/sys-ds/sys_ds:5:10/actions/benchmark \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "range": 1048576,
      "workload": "sequential",
      "preformat": false,
      "duration": 10
    }'
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:29 GMT
    Server: Goliath
    

    System Datastore Device

    Retrieve and change certain basic parameters of iSCSI Devices and Operating System Devices from this common resource. For parameters that are device-specific, consult the individual iSCSI device and operating system device resources.

    System Datastore Device Info

    Info for existing dev.

    GET /dev/{dev_identity}
    

    Curl Example

    $ curl https://mgmt-node/api/os-dev/os_dev:4:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:59 GMT
    Server: Goliath
    ETag: "3003499d2cd2e54f0f5e18a3b3ae9c73"
    Content-Type: application/json
    Content-Length: 1303
    
    {
      "id": "os_dev:4:10",
      "uuid": "5a05f431-0a1b-4725-bc8b-ea179aa501b6",
      "serial": "OSD0D62194C4062641A",
      "evt_qry": "serial=OSD0D62194C4062641A",
      "sds_id": null,
      "node_id": "node:10000",
      "ctime": 1507562840777,
      "mtime": 1507570016428,
      "seq": 1507570016667,
      "label": "device-1",
      "notes": "device label updated",
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507570016000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                6,
                12,
                12,
                12
              ],
              "v": "dbg"
            },
            {
              "d": [
                0,
                3,
                3,
                3
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507570016667
      },
      "rec_status": null,
      "transient": false,
      "path": "/dev/bb/b9a74447-9962-4f82-88c8-1bcd655ff432",
      "size": 107374182400,
      "initialized": false,
      "enabled": false,
      "parent": {
        "type": [
          "os_dev"
        ],
        "id": "os_dev:7:10"
      },
      "meta": {
        "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
        "blockbridge_md": false,
        "blockbridge_disk_id": "b9a74447-9962-4f82-88c8-1bcd655ff432"
      },
      "usable": null,
      "used": null,
      "device_info": {
        "dsn": null,
        "enclosure": null,
        "present": true,
        "owner": "Volume Manager (mirror1)",
        "devname": "sde",
        "display_name": "scsi/sde",
        "serial": "b9a74447-9962-4f82-88c8-1bcd655ff432",
        "vendor": "B*BRIDGE",
        "model": "SECURE DRIVE",
        "bus": "scsi",
        "rotational": false,
        "type": [
          "disk"
        ],
        "_remote_dev_id": null
      },
      "smart_info": null,
      "md_info": null,
      "hidden": false
    }
    

    System Datastore Device List

    List existing devs.

    GET /dev
    

    Curl Example

    $ curl https://mgmt-node/api/dev \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:58 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 13752
    
    [
      {
        "id": "os_dev:4:10",
        "uuid": "5a05f431-0a1b-4725-bc8b-ea179aa501b6",
        "serial": "OSD0D62194C4062641A",
        "evt_qry": "serial=OSD0D62194C4062641A",
        "sds_id": null,
        "node_id": "node:10000",
        "ctime": 1507562840777,
        "mtime": 1507570016428,
        "seq": 1507570016667,
        "label": "device-1",
        "notes": "device label updated",
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507570016000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  6,
                  12,
                  12,
                  12
                ],
                "v": "dbg"
              },
              {
                "d": [
                  0,
                  3,
                  3,
                  3
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507570016667
        },
        "rec_status": null,
        "transient": false,
        "path": "/dev/bb/b9a74447-9962-4f82-88c8-1bcd655ff432",
        "size": 107374182400,
        "initialized": false,
        "enabled": false,
        "parent": {
          "type": [
            "os_dev"
          ],
          "id": "os_dev:7:10"
        },
        "meta": {
          "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
          "blockbridge_md": false,
          "blockbridge_disk_id": "b9a74447-9962-4f82-88c8-1bcd655ff432"
        },
        "usable": null,
        "used": null,
        "device_info": {
          "dsn": null,
          "enclosure": null,
          "present": true,
          "owner": "Volume Manager (mirror1)",
          "devname": "sde",
          "display_name": "scsi/sde",
          "serial": "b9a74447-9962-4f82-88c8-1bcd655ff432",
          "vendor": "B*BRIDGE",
          "model": "SECURE DRIVE",
          "bus": "scsi",
          "rotational": false,
          "type": [
            "disk"
          ],
          "_remote_dev_id": null
        },
        "smart_info": null,
        "md_info": null,
        "hidden": false
      },
      {
        "id": "os_dev:5:10",
        "uuid": "c0edd702-7801-42ef-b675-2b34411ee13e",
        "serial": "OSD0D62194C40626402",
        "evt_qry": "serial=OSD0D62194C40626402",
        "sds_id": "sys_ds:5:10",
        "node_id": "node:10000",
        "ctime": 1507562840991,
        "mtime": 1507570018283,
        "seq": 1507570018754,
        "label": null,
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507570018000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  0,
                  2,
                  2,
                  2
                ],
                "v": "dbg"
              },
              {
                "d": [
                  6,
                  7,
                  7,
                  7
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507570018690
        },
        "rec_status": null,
        "transient": false,
        "path": "/dev/disk/by-id/md-uuid-791bf0b6:27184b1a:a7cc46b9:c7d4a716-part6",
        "size": 18216893952,
        "initialized": true,
        "enabled": true,
        "parent": null,
        "meta": {
          "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
          "blockbridge_md": false,
          "blockbridge_disk_id": "c0edd702-7801-42ef-b675-2b34411ee13e"
        },
        "usable": 18090950656,
        "used": 0,
        "device_info": {
          "dsn": null,
          "enclosure": null,
          "present": true,
          "owner": "Storage Processor (SDS1F62194C4062640D)",
          "devname": "md126p6",
          "display_name": "md/system",
          "serial": null,
          "vendor": null,
          "model": null,
          "bus": null,
          "rotational": false,
          "type": [
            "partition"
          ],
          "_remote_dev_id": null
        },
        "smart_info": null,
        "md_info": {
          "chunk_size": null,
          "state": "active",
          "degraded": false,
          "mismatch_cnt": 0,
          "created": 1507562801000,
          "modified": 1507562801000,
          "active_disks": 2,
          "working_disks": 2,
          "failed_disks": 0,
          "spare_disks": 0,
          "metadata": {
            "version": "0.90.3"
          },
          "bitmap": {
            "chunk_size": null,
            "location": "none",
            "metadata": "internal",
            "space": 0,
            "backlog": 0,
            "max_backlog_used": 0
          },
          "raid": {
            "rebuild_min": 1048576,
            "rebuild_max": 1048576,
            "level": "raid1",
            "layout": null,
            "disks_num": 2
          },
          "sync_action": {
            "action": "none"
          },
          "disks": [
            {
              "size": 107338530816,
              "slot": 0,
              "state": "in_sync",
              "errors": null,
              "bad_blocks": null,
              "blockdev": "8:16",
              "dev": "/dev/sdb",
              "flags": [
                "active",
                "in-sync"
              ],
              "health": {
                "value": "online",
                "syndrome": null,
                "updating": false,
                "hidden": false,
                "device_info": {
                  "dsn": null,
                  "enclosure": null,
                  "present": true,
                  "owner": "system-array-791bf0b6-2718-4b1a-a7cc-46b9c7d4a716",
                  "devname": "sdb",
                  "display_name": "scsi/sdb",
                  "serial": "6dcf15dc-fdde-4c2b-8cd0-af2cca17c0ba",
                  "vendor": "B*BRIDGE",
                  "model": "SECURE DRIVE",
                  "bus": "scsi",
                  "rotational": false,
                  "type": [
                    "disk"
                  ],
                  "_remote_dev_id": null
                }
              },
              "oid": "os_dev:3:10",
              "uuid": "ea38df59-c5d2-459c-ab85-5c6434e8c9e4",
              "display_name": "scsi/sdb",
              "preferred_path": "/dev/bb/6dcf15dc-fdde-4c2b-8cd0-af2cca17c0ba",
              "remote_oid": null
            },
            {
              "size": 107338530816,
              "slot": 1,
              "state": "in_sync",
              "errors": null,
              "bad_blocks": null,
              "blockdev": "8:0",
              "dev": "/dev/sda",
              "flags": [
                "active",
                "in-sync"
              ],
              "health": {
                "value": "online",
                "syndrome": null,
                "updating": false,
                "hidden": false,
                "device_info": {
                  "dsn": null,
                  "enclosure": null,
                  "present": true,
                  "owner": "system-array-791bf0b6-2718-4b1a-a7cc-46b9c7d4a716",
                  "devname": "sda",
                  "display_name": "scsi/sda",
                  "serial": "c88b16a9-20ea-4a54-88b8-2ef9c68d5258",
                  "vendor": "B*BRIDGE",
                  "model": "SECURE DRIVE",
                  "bus": "scsi",
                  "rotational": false,
                  "type": [
                    "disk"
                  ],
                  "_remote_dev_id": null
                }
              },
              "oid": "os_dev:6:10",
              "uuid": "6fd8dd9d-03cb-4020-a753-4cdee61242f5",
              "display_name": "scsi/sda",
              "preferred_path": "/dev/bb/c88b16a9-20ea-4a54-88b8-2ef9c68d5258",
              "remote_oid": null
            }
          ],
          "flags": [
            "active"
          ]
        },
        "hidden": false
      },
      {
        "id": "os_dev:1:10",
        "uuid": "88e4cabf-7dac-4950-9ec0-fb4de02599fd",
        "serial": "OSD0D62194C40626443",
        "evt_qry": "serial=OSD0D62194C40626443",
        "sds_id": null,
        "node_id": "node:10000",
        "ctime": 1507562840328,
        "mtime": 1507562858197,
        "seq": 1507562861680,
        "label": null,
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507562858000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  4,
                  4,
                  4,
                  4
                ],
                "v": "dbg"
              },
              {
                "d": [
                  1,
                  1,
                  1,
                  1
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507562861680
        },
        "rec_status": null,
        "transient": false,
        "path": "/dev/bb/125e92af-2cf2-4152-a07b-b792eabb55fe",
        "size": 107374182400,
        "initialized": false,
        "enabled": false,
        "parent": {
          "type": [
            "os_dev"
          ],
          "id": "os_dev:7:10"
        },
        "meta": {
          "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
          "blockbridge_md": false,
          "blockbridge_disk_id": "125e92af-2cf2-4152-a07b-b792eabb55fe"
        },
        "usable": null,
        "used": null,
        "device_info": {
          "dsn": null,
          "enclosure": null,
          "present": true,
          "owner": "Volume Manager (mirror1)",
          "devname": "sdc",
          "display_name": "scsi/sdc",
          "serial": "125e92af-2cf2-4152-a07b-b792eabb55fe",
          "vendor": "B*BRIDGE",
          "model": "SECURE DRIVE",
          "bus": "scsi",
          "rotational": false,
          "type": [
            "disk"
          ],
          "_remote_dev_id": null
        },
        "smart_info": null,
        "md_info": null,
        "hidden": false
      },
      {
        "id": "os_dev:2:10",
        "uuid": "180c2fb7-f787-45b4-831c-c56c3e58123f",
        "serial": "OSD0D62194C4062647B",
        "evt_qry": "serial=OSD0D62194C4062647B",
        "sds_id": "sys_ds:5:10",
        "node_id": "node:10000",
        "ctime": 1507562840465,
        "mtime": 1507570018719,
        "seq": 1507570018803,
        "label": null,
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507569802000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  0,
                  2,
                  2,
                  2
                ],
                "v": "dbg"
              },
              {
                "d": [
                  2,
                  5,
                  5,
                  5
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507569802681
        },
        "rec_status": null,
        "transient": false,
        "path": "/dev/bb/6932606f-1cd8-43bc-bc4c-6fb5f8d42846",
        "size": 107374182400,
        "initialized": true,
        "enabled": true,
        "parent": null,
        "meta": {
          "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
          "blockbridge_md": false,
          "blockbridge_disk_id": "6932606f-1cd8-43bc-bc4c-6fb5f8d42846"
        },
        "usable": 107307073536,
        "used": 0,
        "device_info": {
          "dsn": null,
          "enclosure": null,
          "present": true,
          "owner": "Storage Processor (SDS1F62194C4062640D)",
          "devname": "sdd",
          "display_name": "scsi/sdd",
          "serial": "6932606f-1cd8-43bc-bc4c-6fb5f8d42846",
          "vendor": "B*BRIDGE",
          "model": "SECURE DRIVE",
          "bus": "scsi",
          "rotational": false,
          "type": [
            "disk"
          ],
          "_remote_dev_id": null
        },
        "smart_info": null,
        "md_info": null,
        "hidden": false
      },
      {
        "id": "os_dev:6:10",
        "uuid": "6fd8dd9d-03cb-4020-a753-4cdee61242f5",
        "serial": "OSD0D62194C4062643A",
        "evt_qry": "serial=OSD0D62194C4062643A",
        "sds_id": null,
        "node_id": "node:10000",
        "ctime": 1507562841153,
        "mtime": 1507562847450,
        "seq": 1507562849622,
        "label": null,
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507562847000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  4,
                  4,
                  4,
                  4
                ],
                "v": "dbg"
              },
              {
                "d": [
                  1,
                  1,
                  1,
                  1
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507562849622
        },
        "rec_status": null,
        "transient": false,
        "path": "/dev/bb/c88b16a9-20ea-4a54-88b8-2ef9c68d5258",
        "size": 107374182400,
        "initialized": false,
        "enabled": false,
        "parent": {
          "type": [
            "os_dev"
          ],
          "id": "os_dev:5:10"
        },
        "meta": {
          "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
          "blockbridge_md": false,
          "blockbridge_disk_id": "c88b16a9-20ea-4a54-88b8-2ef9c68d5258"
        },
        "usable": null,
        "used": null,
        "device_info": {
          "dsn": null,
          "enclosure": null,
          "present": true,
          "owner": "system-array-791bf0b6-2718-4b1a-a7cc-46b9c7d4a716",
          "devname": "sda",
          "display_name": "scsi/sda",
          "serial": "c88b16a9-20ea-4a54-88b8-2ef9c68d5258",
          "vendor": "B*BRIDGE",
          "model": "SECURE DRIVE",
          "bus": "scsi",
          "rotational": false,
          "type": [
            "disk"
          ],
          "_remote_dev_id": null
        },
        "smart_info": null,
        "md_info": null,
        "hidden": false
      },
      {
        "id": "os_dev:10:10",
        "uuid": "4d16735c-b8bf-4149-950b-5233c7660907",
        "serial": "OSD0D62194C406264F8",
        "evt_qry": "serial=OSD0D62194C406264F8",
        "sds_id": null,
        "node_id": "node:10000",
        "ctime": 1507568149178,
        "mtime": 1507568149513,
        "seq": 1507568149699,
        "label": "osdev_file1",
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507568149000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  4,
                  4,
                  4,
                  4
                ],
                "v": "dbg"
              },
              {
                "d": [
                  1,
                  1,
                  1,
                  1
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507568149669
        },
        "rec_status": null,
        "transient": false,
        "path": "/tmp/disk1.osdev_file",
        "size": 1073741824,
        "initialized": false,
        "enabled": false,
        "parent": null,
        "meta": {
          "blockbridge_disk_id": "4d16735c-b8bf-4149-950b-5233c7660907"
        },
        "usable": null,
        "used": null,
        "device_info": {
          "dsn": null,
          "enclosure": null,
          "present": true,
          "owner": null,
          "devname": null,
          "display_name": null,
          "serial": null,
          "vendor": null,
          "model": null,
          "bus": null,
          "rotational": null,
          "type": null,
          "_remote_dev_id": null
        },
        "smart_info": null,
        "md_info": null,
        "hidden": false
      },
      {
        "id": "os_dev:3:10",
        "uuid": "ea38df59-c5d2-459c-ab85-5c6434e8c9e4",
        "serial": "OSD0D62194C40626463",
        "evt_qry": "serial=OSD0D62194C40626463",
        "sds_id": null,
        "node_id": "node:10000",
        "ctime": 1507562840630,
        "mtime": 1507562847170,
        "seq": 1507562849630,
        "label": null,
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507562847000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  4,
                  4,
                  4,
                  4
                ],
                "v": "dbg"
              },
              {
                "d": [
                  1,
                  1,
                  1,
                  1
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507562849630
        },
        "rec_status": null,
        "transient": false,
        "path": "/dev/bb/6dcf15dc-fdde-4c2b-8cd0-af2cca17c0ba",
        "size": 107374182400,
        "initialized": false,
        "enabled": false,
        "parent": {
          "type": [
            "os_dev"
          ],
          "id": "os_dev:5:10"
        },
        "meta": {
          "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
          "blockbridge_md": false,
          "blockbridge_disk_id": "6dcf15dc-fdde-4c2b-8cd0-af2cca17c0ba"
        },
        "usable": null,
        "used": null,
        "device_info": {
          "dsn": null,
          "enclosure": null,
          "present": true,
          "owner": "system-array-791bf0b6-2718-4b1a-a7cc-46b9c7d4a716",
          "devname": "sdb",
          "display_name": "scsi/sdb",
          "serial": "6dcf15dc-fdde-4c2b-8cd0-af2cca17c0ba",
          "vendor": "B*BRIDGE",
          "model": "SECURE DRIVE",
          "bus": "scsi",
          "rotational": false,
          "type": [
            "disk"
          ],
          "_remote_dev_id": null
        },
        "smart_info": null,
        "md_info": null,
        "hidden": false
      },
      {
        "id": "os_dev:7:10",
        "uuid": "7b70f246-5a82-4029-b39e-f139929c9a9e",
        "serial": "OSD0D62194C40626422",
        "evt_qry": "serial=OSD0D62194C40626422",
        "flags": "md",
        "sds_id": null,
        "node_id": "node:10000",
        "ctime": 1507562852823,
        "mtime": 1507567764983,
        "seq": 1507568230675,
        "label": null,
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507564907000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  0,
                  2,
                  2,
                  2
                ],
                "v": "dbg"
              },
              {
                "d": [
                  1,
                  8,
                  8,
                  8
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  1,
                  1,
                  1
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507568230675
        },
        "rec_status": null,
        "transient": false,
        "path": "/dev/disk/by-id/md-uuid-7b70f246:5a824029:b39ef139:929c9a9e",
        "size": 107338530816,
        "initialized": false,
        "enabled": false,
        "parent": null,
        "meta": {
          "blockbridge_agent": "1f57e3a8-6ade-4aea-900e-3ebb5350f025",
          "blockbridge_md": true,
          "blockbridge_disk_id": "7b70f246-5a82-4029-b39e-f139929c9a9e"
        },
        "usable": null,
        "used": null,
        "device_info": {
          "dsn": null,
          "enclosure": null,
          "present": true,
          "owner": null,
          "devname": "md124",
          "display_name": "md/mirror1",
          "serial": null,
          "vendor": null,
          "model": null,
          "bus": null,
          "rotational": true,
          "type": [
            "md"
          ],
          "_remote_dev_id": null
        },
        "smart_info": null,
        "md_info": {
          "chunk_size": null,
          "state": "clean",
          "degraded": false,
          "mismatch_cnt": 0,
          "created": 1507562847000,
          "modified": 1507562847000,
          "active_disks": 2,
          "working_disks": 2,
          "failed_disks": 0,
          "spare_disks": 0,
          "metadata": {
            "version": "0.90.3"
          },
          "bitmap": {
            "chunk_size": 268435456,
            "location": "file",
            "metadata": "internal",
            "space": 0,
            "backlog": 0,
            "max_backlog_used": 0
          },
          "raid": {
            "rebuild_min": 1048576,
            "rebuild_max": 1048576,
            "level": "raid1",
            "layout": null,
            "disks_num": 2
          },
          "sync_action": {
            "action": "none"
          },
          "disks": [
            {
              "size": 107338530816,
              "slot": 0,
              "state": "in_sync",
              "errors": null,
              "bad_blocks": null,
              "blockdev": "8:64",
              "dev": "/dev/sde",
              "flags": [
                "active",
                "in-sync"
              ],
              "health": {
                "value": "online",
                "syndrome": null,
                "updating": false,
                "hidden": false,
                "device_info": {
                  "dsn": null,
                  "enclosure": null,
                  "present": true,
                  "owner": "Volume Manager (mirror1)",
                  "devname": "sde",
                  "display_name": "scsi/sde",
                  "serial": "b9a74447-9962-4f82-88c8-1bcd655ff432",
                  "vendor": "B*BRIDGE",
                  "model": "SECURE DRIVE",
                  "bus": "scsi",
                  "rotational": false,
                  "type": [
                    "disk"
                  ],
                  "_remote_dev_id": null
                }
              },
              "oid": "os_dev:4:10",
              "uuid": "5a05f431-0a1b-4725-bc8b-ea179aa501b6",
              "display_name": "scsi/sde",
              "preferred_path": "/dev/bb/b9a74447-9962-4f82-88c8-1bcd655ff432",
              "remote_oid": null
            },
            {
              "size": 107338530816,
              "slot": 1,
              "state": "in_sync",
              "errors": null,
              "bad_blocks": null,
              "blockdev": "8:32",
              "dev": "/dev/sdc",
              "flags": [
                "active",
                "in-sync"
              ],
              "health": {
                "value": "online",
                "syndrome": null,
                "updating": false,
                "hidden": false,
                "device_info": {
                  "dsn": null,
                  "enclosure": null,
                  "present": true,
                  "owner": "Volume Manager (mirror1)",
                  "devname": "sdc",
                  "display_name": "scsi/sdc",
                  "serial": "125e92af-2cf2-4152-a07b-b792eabb55fe",
                  "vendor": "B*BRIDGE",
                  "model": "SECURE DRIVE",
                  "bus": "scsi",
                  "rotational": false,
                  "type": [
                    "disk"
                  ],
                  "_remote_dev_id": null
                }
              },
              "oid": "os_dev:1:10",
              "uuid": "88e4cabf-7dac-4950-9ec0-fb4de02599fd",
              "display_name": "scsi/sdc",
              "preferred_path": "/dev/bb/125e92af-2cf2-4152-a07b-b792eabb55fe",
              "remote_oid": null
            }
          ],
          "flags": [
            "clean"
          ]
        },
        "hidden": false
      }
    ]
    

    Product

    The Product resource has the list of Product Tags offered by a Datastore that has been configured to support automatic service provisioning.

    Attributes

    NameTypeDescription
    idstringobject id
    uuiduuidobject uuid
    ctimeintegerproduct create time
    Range: 0 <= value
    mtimeintegerproduct last modified time
    Range: 0 <= value
    site_idstringsite product is located in
    descriptionstringproduct description
    tagsarrayarray of product tags

    Product Search Create

    Query the storage product catalog.

    POST /product/search
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | capacity | integer | capacity to reserve |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | iops | integer | IOPS to reserve | | scheduling_algorithm | string | scheduling algorithm label
    Length: 1..64 | | tags:include | array | include array | | tags:exclude | array | exclude array | | count | integer | number of results
    default: 3 | | template | string | service template |

    Curl Example

    $ curl -X POST https://mgmt-node/api/product/search \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "capacity": 1073741824,
      "template": "gp"
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:27:02 GMT
    Server: Goliath
    Location: /api/product/search/87c9351606060184e4c284c4ecc29a402b91c189a42537b02721b425918918cd4f20606000797070bf
    Content-Type: application/json
    Content-Length: 418
    
    {
      "status": "success",
      "products": [
        {
          "id": "product:5:10",
          "serial": "PRD1262194C40626406",
          "node": "NOD0F68194C40601558",
          "tags": [
            "datastore-1",
            "NOD0F68194C40601558"
          ],
          "score": 6.0,
          "token": "5b313530373537303032323339372c2270726f647563743a353a3130222c313037333734313832342c226770225d"
        }
      ],
      "params": {
        "capacity": 1073741824,
        "type": [
          "gp"
        ],
        "type_desc": "General Purpose",
        "iops_desc": "100/3000 (3 IOPS/GiB, burstable to 3000)"
      },
      "headers": {
      }
    }
    

    Product Search Parameters

    Retrieve the available storage catalog parameters.

    GET /product/search/params
    

    Curl Example

    $ curl https://mgmt-node/api/product/search/params \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:59 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 1156
    
    {
      "status": "success",
      "scheduling_algorithm": [
        "ideal-usage"
      ],
      "service_templates": [
        {
          "type": [
            "gp"
          ],
          "description": "General Purpose",
          "default": true,
          "tags": {
            "include": [
    
            ],
            "exclude": [
    
            ]
          },
          "size": {
            "reserve_min": 1073741824,
            "reserve_max": 17592186044416,
            "limit_percent": 200
          },
          "iops": {
            "ratio": 3,
            "burst": 3000,
            "burst_credit": 5400000,
            "min": 100,
            "max": 3000
          },
          "piops": {
            "type": [
              "disabled"
            ],
            "value": null,
            "ratio": null,
            "min": null,
            "max": null
          }
        },
        {
          "type": [
            "piops"
          ],
          "description": "Provisioned IOPS",
          "default": false,
          "tags": {
            "include": [
    
            ],
            "exclude": [
    
            ]
          },
          "size": {
            "reserve_min": 4294967296,
            "reserve_max": 17592186044416,
            "limit_percent": 200
          },
          "iops": {
            "ratio": 50,
            "burst": null,
            "burst_credit": null,
            "min": 100,
            "max": 20000
          },
          "piops": {
            "type": [
              "user-specified"
            ],
            "value": null,
            "ratio": 50,
            "min": 100,
            "max": 20000
          }
        },
        {
          "type": [
            "unlimited"
          ],
          "description": "Unlimited Provisioning",
          "default": false,
          "tags": {
            "include": [
    
            ],
            "exclude": [
    
            ]
          },
          "size": {
            "reserve_min": 1048576,
            "reserve_max": null,
            "limit_percent": null
          },
          "iops": {
            "ratio": null,
            "burst": null,
            "burst_credit": null,
            "min": null,
            "max": null
          },
          "piops": {
            "type": [
              "disabled"
            ],
            "value": null,
            "ratio": null,
            "min": null,
            "max": null
          }
        }
      ],
      "tags": [
        "datastore",
        "datastore-1",
        "NOD0F68194C40601558"
      ],
      "headers": {
      }
    }
    

    Virtual Storage Service

    A Secure virtual service delivers storage resources to applications, customers, developers and your cloud infrastructure, in a service-oriented fashion. Virtual services can be manually or automatically provisioned.

    These virtual services are provisioned from the storage resources provided by a datastore. Each virtual storage service provides an independent storage area network (SAN). You can provision disks and iSCSI targets within a virtual storage service as needed.

    The Blockbridge management network makes it possible to manage multiple, distributed virtual storage services from the management application. This allows a single tenant account to operate multiple classes of storage, to scale, and to implement disaster tolerance using virtual disk level replication.

    Attributes

    NameTypeDescription
    idstringobject id
    uuiduuidobject uuid
    ctimeintegervirtual stroage service create time
    Range: 0 <= value
    mtimeintegervirtual storage service last modified time
    Range: 0 <= value
    labelnullable stringuser assigned label
    Length: 1..64
    notesnullable stringuser assigned notes
    Length: 0..256
    node_idstringstorage node id
    node_serialstringstorage node serial
    account_idstringaccount id
    product_idstringproduct id
    location:countrystringISO 3166-1 alpha-3 country code
    default: ""
    location:latnumberlatitude
    default: 0
    location:longnumberlongitude
    default: 0
    location:citystringcity
    default: ""
    location:statestringstate as two-character USPS abbreviation
    default: ""
    location_strstringlocation short string
    tierstringdatacenter infrastructure tier
    one of:"I" or "II" or "III" or "IV"
    serialstringvirtual storage service serial number
    cap_size_rationullable numberratio of user addressable capacity to size
    quotanullable objectrestrictions on virtual storage service size and IOPS
    quota:size:limitnullable integerupper hard limit on size
    quota:size:notifynullable integernotification threshold for size
    quota:size:reserveintegerguaranteed storage resources
    quota:iops:limitnullable integerlimit on sustained I/O operations per second
    quota:iops:reserveintegerreserve I/O operations per second
    quota:iops:burstnullable integerupper limit for rate that burst credits can be spent
    quota:iops:burst_creditsnullable integerupper limit on the number bursting credits that may be accumulated
    trashedbooleanwaiting for garbage collection
    xmd_refsarrayarray of extensible metadata reference keys
    xrefstringarbitrary string reference
    Length: 1..256
    status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    status:detailnullable stringstatus detail
    isotimenullable date-timelocal time on node
    humantimenullable stringhuman-readable time on node
    build_versionnullable stringversion of software running on node
    build_timenullable stringtime and date that node software was built
    versionnullable objectbuild version
    version:hashstringbuild hash
    version:minorintegerbuild minor version
    version:majorintegerbuild major version
    version:timestampintegerbuild timestamp
    version:patchintegerbuild patch version
    version:tagstringbuild tag
    version:releasestringbuild release
    sizingnullable objectvirtual storage service sizing information
    sizing:sizenullable integersize of virtual storage service (in bytes)
    sizing:snapshotnullable integersnapshot size (in bytes)
    sizing:reserve_totalnullable integerreserved size of all disks or the virtual storage service reserve, whichever is greater (in bytes)
    sizing:compression_rationullable numbercompression ratio
    xmd/idstringno documentation
    xmd/refstringarbitrary string reference key
    Length: 1..256
    xmd/mtimeintegerlast modified time of xmd
    Range: 0 <= value
    xmd/tagsarrayobject tags
    xmd/selfbooleanno documentation
    xmd/datanullable stringno documentation

    Virtual Storage Service Info

    Retrieve an existing virtual storage service.

    GET /vss/{vss_id_or_serial}
    

    Curl Example

    $ curl https://mgmt-node/api/vss/vss:4:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:03 GMT
    Server: Goliath
    ETag: "aaa023102dfef1d85a43694c82188901"
    Content-Type: application/json
    Content-Length: 1253
    
    {
      "id": "vss:4:10",
      "uuid": "a29b3f9c-62e6-464a-99b4-f75e56d14753",
      "serial": "VSS1862194C40626418",
      "evt_qry": "serial=VSS1862194C40626418",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "ctime": 1507570022649,
      "mtime": 1507570023851,
      "seq": 1507570023861,
      "label": "vss1",
      "notes": "vss label updated",
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507570023000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                6,
                6,
                6,
                6
              ],
              "v": "dbg"
            },
            {
              "d": [
                5,
                5,
                5,
                5
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507570023794
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "node_serial": "NOD0F68194C40601558",
      "location": {
        "country": "USA",
        "lat": 40,
        "long": -43,
        "city": "Newark",
        "state": "NJ"
      },
      "tier": "IV",
      "quota": {
        "size": {
          "limit": 3221225472,
          "notify": 3221225472,
          "reserve": 3221225472
        },
        "iops": {
          "limit": null,
          "reserve": 0,
          "burst": null,
          "burst_credits": null
        }
      },
      "cap_size_ratio": 1.0,
      "isotime": "2017-10-09T17:26+00:00",
      "build_version": "4.0.0-4252.1",
      "build_time": "Thu Oct 05 10:32 UTC 2017",
      "version": {
        "major": 4,
        "minor": 0,
        "patch": 0,
        "release": "4252.1",
        "tag": "",
        "hash": "f41b54b0c02b9ecbee50ffca17fc1d74a6e20672",
        "timestamp": 1507199541000
      },
      "sizing": {
        "size": 0,
        "snapshot": 0,
        "reserve_total": 1073741824
      }
    }
    

    Virtual Storage Service List

    Enumerate virtual storage services.

    GET /vss
    

    Curl Example

    $ curl https://mgmt-node/api/vdisk \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:03 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 2
    
    [
    
    ]
    

    Virtual Storage Service Create

    Provision a new virtual storage service. The system datastore is selected by conducting a storage product search.

    POST /vss
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | token | string | provision token
    pattern: ^[a-fA-F0-9]*$ | | vss:label | nullable string | label
    Length: 1..64 | | vss:xmd_refs | array | array of extensible metadata reference keys | | vss:xref | string | arbitrary string reference
    Length: 1..256 | | vss:notes | string | user assigned notes
    Length: 0..256 | | disk:create | boolean | create disk | | disk:label | nullable string | label
    Length: 1..64 | | disk:tags | array | disk tags | | disk:xmd_refs | array | array of extensible metadata reference keys | | disk:xref | string | arbitrary string reference
    Length: 1..256 | | disk:obj_store_id | string | object store id from which virtual disk is cloned | | disk:backup_id | string | backup ID from which virtual disk is cloned | | disk:src | string | clone source
    one of:"vdisk" or "snapshot" or "object" or "block" | | disk:snapshot_id | string | snapshot id from which virtual disk is cloned | | disk:vdisk_id | string | virtual disk id from which virtual disk is cloned | | disk:block_id | string | block device id from which virtual disk is cloned | | disk:thicken | boolean | thicken clone from source | | disk:bandwidth | integer | thicken bandwidth limit in bytes/sec | | disk:multi_map | boolean | virtual disk can be mapped into multiple targets | | profile:create | boolean | create profile | | profile:label | nullable string | label
    Length: 1..64 | | profile:xmd_refs | array | array of extensible metadata reference keys | | profile:xref | string | arbitrary string reference
    Length: 1..256 | | target:create | boolean | create target | | target:label | nullable string | label
    Length: 1..64 | | target:xmd_refs | array | array of extensible metadata reference keys | | target:xref | string | arbitrary string reference
    Length: 1..256 | | target:map_disk | boolean | map created disk into target
    default: true | | target:allow_profile | boolean | add profile to access control list
    default: true | | xmd:create | boolean | create xmd | | xmd:ref | string | arbitrary string reference key
    Length: 1..256 | | xmd:label | nullable string | label
    Length: 1..64 | | xmd:notes | string | user assigned notes
    Length: 0..256 | | xmd:tags | array | tags | | xmd:xmd_refs | array | array of extensible metadata reference keys | | xmd:xref | string | arbitrary string reference
    Length: 1..256 | | xmd:publish | boolean | publish xmd | | xmd:reservation | boolean | reserve xmd grouping | | xmd:exists_ok | boolean | create is idempotent | | account_id | string | account id | | query:capacity | integer | capacity to reserve | | query:iops | integer | IOPS to reserve | | query:scheduling_algorithm | string | scheduling algorithm label
    Length: 1..64 | | query:tags:include | array | include array | | query:tags:exclude | array | exclude array | | query:count | integer | number of results
    default: 1 | | query:template | string | service template | | protocol | string | low-level storage protocol (ds record)
    default: "iscsi"
    one of:"iscsi" or "nvme" |

    Curl Example

    $ curl -X POST https://mgmt-node/api/vss \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "token": "5b313530373537303032323339372c2270726f647563743a353a3130222c313037333734313832342c226770225d"
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:27:03 GMT
    Server: Goliath
    ETag: "03e600348ed60c717e3ca33f982d8257"
    Content-Type: application/json
    Content-Length: 1239
    
    {
      "id": "vss:4:10",
      "uuid": "a29b3f9c-62e6-464a-99b4-f75e56d14753",
      "serial": "VSS1862194C40626418",
      "evt_qry": "serial=VSS1862194C40626418",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "ctime": 1507570022649,
      "mtime": 1507570022855,
      "seq": 1507570022985,
      "label": "service-4",
      "notes": null,
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507570022000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                2,
                2,
                2,
                2
              ],
              "v": "dbg"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507570022869
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "node_serial": "NOD0F68194C40601558",
      "location": {
        "country": "USA",
        "lat": 40,
        "long": -43,
        "city": "Newark",
        "state": "NJ"
      },
      "tier": "IV",
      "quota": {
        "size": {
          "limit": 2147483648,
          "notify": null,
          "reserve": 1073741824
        },
        "iops": {
          "limit": 100,
          "reserve": 0,
          "burst": 3000,
          "burst_credits": 5400000
        }
      },
      "cap_size_ratio": 1.0,
      "isotime": "2017-10-09T17:26+00:00",
      "build_version": "4.0.0-4252.1",
      "build_time": "Thu Oct 05 10:32 UTC 2017",
      "version": {
        "major": 4,
        "minor": 0,
        "patch": 0,
        "release": "4252.1",
        "tag": "",
        "hash": "f41b54b0c02b9ecbee50ffca17fc1d74a6e20672",
        "timestamp": 1507199541000
      },
      "sizing": {
        "size": 0,
        "snapshot": 0,
        "reserve_total": 1073741824
      }
    }
    

    Virtual Storage Service Remove

    Remove an existing virtual storage service, including its virtual disks, iSCSI targets, and initiator profiles. User data that remains in the service will be irretrievable.

    DELETE /vss/{vss_id_or_serial}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/vss/vss:4:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:34 GMT
    Server: Goliath
    

    Virtual Storage Service Update

    Change the configuration of an existing virtual storage service.

    PATCH /vss/{vss_id_or_serial}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | xmd_refs | array | array of extensible metadata reference keys | | label | nullable string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 |

    Curl Example

    $ curl -X PATCH https://mgmt-node/api/vss/vss:4:10 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "label": "vss1",
      "notes": "vss label updated"
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:03 GMT
    Server: Goliath
    ETag: "1ca961c454ef8da913e5b8a86b34dbe2"
    Content-Type: application/json
    Content-Length: 1249
    
    {
      "id": "vss:4:10",
      "uuid": "a29b3f9c-62e6-464a-99b4-f75e56d14753",
      "serial": "VSS1862194C40626418",
      "evt_qry": "serial=VSS1862194C40626418",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "ctime": 1507570022649,
      "mtime": 1507570023453,
      "seq": 1507570023462,
      "label": "vss1",
      "notes": "vss label updated",
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507570022000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                2,
                2,
                2,
                2
              ],
              "v": "dbg"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507570022869
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "node_serial": "NOD0F68194C40601558",
      "location": {
        "country": "USA",
        "lat": 40,
        "long": -43,
        "city": "Newark",
        "state": "NJ"
      },
      "tier": "IV",
      "quota": {
        "size": {
          "limit": 2147483648,
          "notify": null,
          "reserve": 1073741824
        },
        "iops": {
          "limit": 100,
          "reserve": 0,
          "burst": 3000,
          "burst_credits": 5400000
        }
      },
      "cap_size_ratio": 1.0,
      "isotime": "2017-10-09T17:26+00:00",
      "build_version": "4.0.0-4252.1",
      "build_time": "Thu Oct 05 10:32 UTC 2017",
      "version": {
        "major": 4,
        "minor": 0,
        "patch": 0,
        "release": "4252.1",
        "tag": "",
        "hash": "f41b54b0c02b9ecbee50ffca17fc1d74a6e20672",
        "timestamp": 1507199541000
      },
      "sizing": {
        "size": 0,
        "snapshot": 0,
        "reserve_total": 1073741824
      }
    }
    

    Virtual Storage Service Quota Update

    Change the quota for a virtual storage service.

    PUT /vss/{vss_id_or_serial}/quota
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | size:limit | nullable integer | upper hard limit on size | | size:notify | nullable integer | notification threshold for size | | size:reserve | integer | guaranteed storage resources
    default: 0 | | iops:limit | nullable integer | limit on sustained I/O operations per second
    Range: 0 <= value <= 2147483647 | | iops:reserve | integer | reserve I/O operations per second
    default: 0
    Range: 0 <= value <= 2147483647 | | iops:burst | nullable integer | upper limit for rate that burst credits can be spent
    Range: 0 <= value <= 2147483647 | | iops:burst_credits | nullable integer | upper limit on the number bursting credits that may be accumulated
    Range: 0 <= value <= 2147483647 |

    Curl Example

    $ curl -X PUT https://mgmt-node/api/vss/vss:4:10/quota \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "size": {
        "limit": 3221225472,
        "notify": 3221225472,
        "reserve": 3221225472
      }
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:03 GMT
    Server: Goliath
    ETag: "aaa023102dfef1d85a43694c82188901"
    Content-Type: application/json
    Content-Length: 1253
    
    {
      "id": "vss:4:10",
      "uuid": "a29b3f9c-62e6-464a-99b4-f75e56d14753",
      "serial": "VSS1862194C40626418",
      "evt_qry": "serial=VSS1862194C40626418",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "ctime": 1507570022649,
      "mtime": 1507570023851,
      "seq": 1507570023861,
      "label": "vss1",
      "notes": "vss label updated",
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507570023000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                6,
                6,
                6,
                6
              ],
              "v": "dbg"
            },
            {
              "d": [
                5,
                5,
                5,
                5
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507570023794
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "node_serial": "NOD0F68194C40601558",
      "location": {
        "country": "USA",
        "lat": 40,
        "long": -43,
        "city": "Newark",
        "state": "NJ"
      },
      "tier": "IV",
      "quota": {
        "size": {
          "limit": 3221225472,
          "notify": 3221225472,
          "reserve": 3221225472
        },
        "iops": {
          "limit": null,
          "reserve": 0,
          "burst": null,
          "burst_credits": null
        }
      },
      "cap_size_ratio": 1.0,
      "isotime": "2017-10-09T17:26+00:00",
      "build_version": "4.0.0-4252.1",
      "build_time": "Thu Oct 05 10:32 UTC 2017",
      "version": {
        "major": 4,
        "minor": 0,
        "patch": 0,
        "release": "4252.1",
        "tag": "",
        "hash": "f41b54b0c02b9ecbee50ffca17fc1d74a6e20672",
        "timestamp": 1507199541000
      },
      "sizing": {
        "size": 0,
        "snapshot": 0,
        "reserve_total": 1073741824
      }
    }
    

    Virtual Disk

    Virtual disks provide isolated data resources. Each virtual disk has a unique set of encryption keys. Those keys are automatically disposed of when the disk is deleted. You can take the keys out of the infrastructure, and you can provide them in-line of access.

    Virtual disks are thinly provisioned. They support no-I/O snapshots, which can be cloned. Virtual disks support limits on IOPS and quotas on storage consumption. Quotas allow you to dedicate storage resources to a disk.

    Virtual disks also support synchronous and asynchronous block-level replication, along with the ability to validate data integrity and authenticity. They support SCSI SPC-3 persistent reservations and various emulation modes (including removable disks).

    Attributes

    NameTypeDescription
    idstringobject id
    uuiduuidobject uuid
    ctimeintegervirtual disk create time
    Range: 0 <= value
    mtimeintegervirtual disk last modified time
    Range: 0 <= value
    typestringvdisk type
    one of:"internal" or "external"
    protocolstringlow-level storage protocol (ds record)
    one of:"iscsi" or "nvme"
    labelnullable stringuser assigned label
    Length: 1..64
    notesnullable stringuser assigned notes
    Length: 0..256
    tagsarrayobject tags
    vss_idstringvirtual storage service id
    node_idstringstorage node id
    account_idstringaccount id
    basisnullable objectdisk basis
    basis:idstringobject id from which virtual disk is cloned
    basis:object_keystringbackup id from which virtual disk is cloned
    basis:src_idstringbasis src across attachment
    basis:requires_faultinbooleannot thickened from basis
    basis:protocolstringprotocol: block or object
    one of:"block" or "object"
    basis:localitystringlocality: local or remote
    one of:"local" or "remote"
    basis:modestringmode: read-through or read-copy
    one of:"read-through" or "read-copy"
    basis:gcbooleandelete / detach basis objects when basis is unset
    basis:xrefstringbasis xref
    basis:vss_idstringbasis vss
    transientbooleandisk is transient
    capacitynullable integeruser addressable capacity in bytes
    blk_encodingnullable stringencryption type and format of virtual blocks
    one of:"aes256-gcm-4k" or "aes128-xts-4k"
    cap_size_rationullable numberratio of user addressable capacity to size
    quotanullable objectrestrictions on virtual disk size and IOPS
    quota:size:limitnullable integerupper hard limit on size
    quota:size:notifynullable integernotification threshold for size
    quota:size:reserveintegerguaranteed storage resources
    quota:iops:limitnullable integerlimit on sustained I/O operations per second
    quota:workloadnullable stringworkload hint
    one of:"lower_iops" or "normal_iops" or "higher_iops"
    lockedbooleanvirtual disk is locked
    caps:encryptionnullable stringencryption technique for stored data blocks
    caps:evalnullable booleandisk is non-persistent, for demonstration use only
    scsi:protocolstringSCSI protocol compatibility set
    scsi:tagged_queuingbooleantagged queuing
    default: true
    scsi:reservationsbooleanpersistent reservations
    default: true
    scsi:lu_serialstringlogical unit serial number
    scsi:vendor_idnullable stringSCSI vendor id string
    scsi:eui64_idnullable stringEUI-64 id string
    scsi:t10_idnullable stringT10 id string
    scsi:naa_idnullable stringNetwork Address Authority id string
    scsi:ua_interlocknullable booleanunit attention interlock
    scsi:acanullable booleanauto-contingent alliegance
    scsi:vendor_extnullable booleanvendor extensions
    scsi:difnullable booleandata integrity field
    scsi:multi_mapnullable booleanmulti-map permitted
    scsi:read_onlynullable booleanread-only disk
    scsi:removablenullable booleanremovable disk emulation
    scsi:advise_lbpnullable booleanadvisory logical block provisioning
    scsi:featuresstringSCSI features summary
    scsi:write_oncenullable booleanWrite-once disk
    scsi:nguid_idnullable stringNVMe NGUID id string
    replicationnullable objectvirtual disk replication parameters
    replication:masternullable objectreplication master parameters
    replication:master:disk_idstringmaster virtual disk id
    replication:master:disk_serialstringmaster virtual disk serial number
    replication:slaves/statestringslave state
    one of:"disabled" or "enabled" or "suspended"
    replication:slaves/disk_idstringslave virtual disk id
    replication:slaves/disk_serialstringslave virtual disk serial number
    replication:slaves/config:modestringreplication mode
    one of:"async" or "sync" or "async-ordered"
    replication:slaves/config:max_lag_cmdsintegermaximum commands to lag behind during async replication
    replication:slaves/config:max_lag_bytesintegermaximum bytes to lag behind during async replication
    replication:slaves/config:recoverystringrecovery options
    one of:"none" or "drl"
    replication:slaves/config:rebuild_bandwidthintegerrebuild bandwidth limit in bytes/sec
    default: 0
    replication:slaves/config:rebuild_hashbooleanuse a hashing optimization to reduce network traffic during rebuild
    default: true
    replication:slaves/config:timeoutintegertime to wait (in milliseconds) before stopping an unresponsive slave
    default: 20000
    Range: 100 <= value
    replication:slaves/policynullable stringreplication policy
    replication_supportedbooleantrue if replication is supported for this disk
    serialstringvirtual disk serial number
    task:idstringrunning task id
    task:opstringtask state
    one of:"none" or "backup" or "format" or "verify" or "synchronize" or "resize" or "rollback"
    trashedbooleanobject is awaiting garbage collection
    systembooleansystem target
    xmd_refsarrayarray of extensible metadata reference keys
    xrefstringarbitrary string reference
    Length: 1..256
    readahead:modenullable stringreadahead mode control
    one of:"none" or "constant"
    readahead:sizeintegerreadahead size
    Range: value <= 4194304
    encryptionnullable objectvirtual disk encryption details
    encryption:methodstringencryption method keyword
    encryption:method_descstringhuman-readable encryption method description
    encryption:cipherstringencryption cipher keyword
    encryption:cipher_descstringhuman-readable encryption cipher description
    encryption:modestringencryption mode keyword
    encryption:mode_descstringhuman-readable encryption mode description
    encryption:key_descstringhuman-readable encryption key description
    data_cachenullable booleandata read from disk will be cached
    compressionnullable stringcompression codec
    one of:"none" or "inherit" or "economy" or "adaptive" or "adaptive_economy" or "adaptive_performance" or "performance"
    status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    status:detailnullable stringstatus detail
    scsi_reservationsnullable objectvirtual disk scsi reservations
    scsi_reservations:generationintegerSCSI reservation generation
    scsi_reservations:persistbooleanpersist through power loss
    scsi_reservations:reserve6:ini_idstringreservation initiator id
    scsi_reservations:reserve6:isidintegerreservation iSCSI session id
    Range: value <= 281474976710660
    scsi_reservations:reservations/holderbooleanreservation holder
    scsi_reservations:reservations/ini_idstringreservation initiator id
    scsi_reservations:reservations/isidintegerreservation iSCSI session id
    Range: value <= 281474976710660
    scsi_reservations:reservations/keyintegerreservation key
    scsi_reservations:reservations/typestringreservation type
    one of:"wr_ex" or "ex_ac" or "wr_ex_reg_only" or "ex_ac_reg_only" or "wr_ex_all_reg" or "ex_ac_all_reg"
    media_loadednullable booleanremovable media loaded (if removable)
    loaded_profile_idnullable stringloaded initiator profile (if removable)
    loaded_profile_serialnullable stringloaded initiator profile serial number (if removable)
    sizing:sizenullable integersize in bytes
    sizing:snapshotnullable integertotal snapshot size in bytes
    sizing:compression_rationullable numbercompression ratio
    replication_rtsnullable objectvirtual disk replication run-time state
    replication_rts:masternullable objectreplication master status, from slave
    replication_rts:master:statenullable stringvirtual disk slave-side replication state
    one of:"initializing" or "attached" or "detaching" or "rendezvous"
    replication_rts:master:consistency:master_serialnullable stringslave consistency reported with respect to specified master virtual disk serial number
    replication_rts:master:consistency:masternullable stringslave consistency reported with respect to specified master virtual disk ID
    replication_rts:master:consistency:timenullable integerslave is consistent with master as of this time
    Range: 0 <= value
    replication_rts:master:consistency:repl_idnullable stringvirtual disk SCSI id
    Length: 1..255
    replication_rts:slaves/disk_idstringreplication slave virtual disk id
    replication_rts:slaves/syndromesarraymaster-side slave state syndrome list, if available
    replication_rts:slaves/statenullable stringvirtual disk master-side slave replication state
    one of:"active" or "attached" or "detached" or "detaching" or "disabled" or "disabling" or "enabling" or "initializing" or "halted" or "rebuild" or "rendezvous" or "resuming" or "suspended" or "suspending"
    replication_rts:slaves/rebuildnullable objectstatistics for the replication rebuild phase
    replication_rts:slaves/rebuild:elapsedintegerelapsed time of rebuild in milliseconds
    replication_rts:slaves/rebuild:bandwidthintegerinterval SCSI end-to-end bandwidth in bytes/second
    replication_rts:slaves/rebuild:goalintegerestimated total SCSI transfer bytes
    replication_rts:slaves/rebuild:modestringreplication rebuild mode
    one of:"unknown" or "initial" or "recovery"
    replication_rts:slaves/rebuild:evaluatedintegerof estimated transfer bytes, number evaluated
    replication_rts:slaves/rebuild:transferintegertotal number of bytes written to destination
    replication_rts:slaves/rebuild:progressintegerpercent complete
    Range: 0 <= value <= 100
    replication_rts:slaves/rebuild:ettcnullable integerestimated time to completion in milliseconds
    Range: 0 <= value <= 2147483647000
    replication_rts:slaves/rebuild:start_timeintegerstart time of this rebuild in milliseconds since epoch
    Range: 0 <= value
    replication_rts:slaves/activenullable objectstats for the replication rebuild phase
    replication_rts:slaves/active:bandwidthintegeraverage network bandwidth in bytes/second
    replication_rts:slaves/active:cmd_lagintegercommand lag
    replication_rts:slaves/active:byte_lagintegertransfer lag
    replication_rts:slaves/active:latencyintegerwrite latency in milliseconds
    replication_rts:slaves/active:history/bandwidthintegeraverage network bandwidth in bytes/second
    replication_rts:slaves/active:history/cmd_lagintegercommand lag
    replication_rts:slaves/active:history/byte_lagintegertransfer lag
    replication_rts:slaves/active:history/latencyintegerwrite latency in milliseconds
    replication_rts:slaves/active:history/timestampintegertimestamp of this snapshot
    Range: 0 <= value
    replication_rts:slaves/active:transferintegerbytes transferred
    replication_rts:slaves/repairnullable stringreplication slave repair method
    one of:"repair" or "synchronize"
    iopsnullable integernormalized 4K I/O operations per second
    iops_readnullable integerread operations per second
    iops_writenullable integerwrite operations per second
    bw_readnullable integerread bandwidth
    bw_writenullable integerwrite bandwidth
    xmd/idstringno documentation
    xmd/refstringarbitrary string reference key
    Length: 1..256
    xmd/mtimeintegerlast modified time of xmd
    Range: 0 <= value
    xmd/tagsarrayobject tags
    xmd/selfbooleanno documentation
    xmd/datanullable stringno documentation

    Virtual Disk Info

    Retrieve an existing virtual disk.

    GET /vdisk/{vdisk_id_or_serial}
    

    Curl Example

    $ curl https://mgmt-node/api/vdisk/vdisk:5:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:05 GMT
    Server: Goliath
    ETag: "85ed421425032dc2771f5883e0d10ed0"
    Content-Type: application/json
    Content-Length: 2003
    
    {
      "id": "vdisk:5:10",
      "uuid": "b4b8f626-b739-4658-abef-7575e8a71559",
      "serial": "DSK1962194C4062640F",
      "evt_qry": "serial=DSK1962194C4062640F",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "ctime": 1507570024180,
      "mtime": 1507570025869,
      "seq": 1507570025881,
      "label": "disk-1",
      "notes": null,
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507570025000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                8,
                8,
                8,
                8
              ],
              "v": "dbg"
            },
            {
              "d": [
                6,
                6,
                6,
                6
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507570025771
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "basis_id": null,
      "tags": [
    
      ],
      "locked": true,
      "scsi": {
        "protocol": "SAM-2,SPC-3,SBC-2",
        "tagged_queuing": true,
        "reservations": true,
        "ua_interlock": false,
        "aca": true,
        "vendor_ext": false,
        "dif": false,
        "multi_map": false,
        "read_only": false,
        "write_once": false,
        "removable": false,
        "advise_lbp": false,
        "features": "Tagged Queueing, Reservations, ACA",
        "eui64_id": null,
        "lu_serial": "lu.DSK1962194C4062640F",
        "vendor_id": "B*BRIDGE",
        "t10_id": "b4b8f626-b739-4658-abef-7575e8a71559",
        "naa_id": "naa.60a010a05915a7e81962194c4062640f"
      },
      "caps": {
        "encryption": "XTS-AES-128",
        "eval": false
      },
      "task": {
        "op": "none"
      },
      "capacity": 1036871168,
      "quota": {
        "size": {
          "limit": null,
          "notify": null,
          "reserve": 2073741824
        },
        "iops": {
          "limit": null
        },
        "workload": null
      },
      "cap_size_ratio": 1.0,
      "transient": null,
      "type": [
        "internal"
      ],
      "format": null,
      "readahead": {
        "mode": "constant",
        "size": 131072
      },
      "encryption": {
        "method": "symmetric",
        "cipher": "aes128",
        "mode": "xts",
        "method_desc": "Symmetric encryption",
        "cipher_desc": "Advanced Encryption Standard (AES128)",
        "mode_desc": "XEX-based tweaked-codebook mode with ciphertext stealing (XTS)",
        "key_desc": "Randomly generated 128-bit key with 128-bit tweak"
      },
      "data_cache": true,
      "replication": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "replication_rts": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "sizing": {
        "size": 0,
        "snapshot": 0
      },
      "media_loaded": false,
      "loaded_profile_id": null,
      "loaded_profile_serial": null
    }
    

    Virtual Disk List

    Enumerate virtual disks.

    GET /vdisk
    

    Curl Example

    $ curl https://mgmt-node/api/vss \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:04 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 1255
    
    [
      {
        "id": "vss:4:10",
        "uuid": "a29b3f9c-62e6-464a-99b4-f75e56d14753",
        "serial": "VSS1862194C40626418",
        "evt_qry": "serial=VSS1862194C40626418",
        "account_id": "account:1:10",
        "node_id": "node:10000",
        "ctime": 1507570022649,
        "mtime": 1507570023851,
        "seq": 1507570023861,
        "label": "vss1",
        "notes": "vss label updated",
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": 1507570023000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  6,
                  6,
                  6,
                  6
                ],
                "v": "dbg"
              },
              {
                "d": [
                  5,
                  5,
                  5,
                  5
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "status": "current",
          "seq": 1507570023794
        },
        "rec_status": null,
        "xmd_refs": [
    
        ],
        "xref": null,
        "xmd": null,
        "node_serial": "NOD0F68194C40601558",
        "location": {
          "country": "USA",
          "lat": 40,
          "long": -43,
          "city": "Newark",
          "state": "NJ"
        },
        "tier": "IV",
        "quota": {
          "size": {
            "limit": 3221225472,
            "notify": 3221225472,
            "reserve": 3221225472
          },
          "iops": {
            "limit": null,
            "reserve": 0,
            "burst": null,
            "burst_credits": null
          }
        },
        "cap_size_ratio": 1.0,
        "isotime": "2017-10-09T17:26+00:00",
        "build_version": "4.0.0-4252.1",
        "build_time": "Thu Oct 05 10:32 UTC 2017",
        "version": {
          "major": 4,
          "minor": 0,
          "patch": 0,
          "release": "4252.1",
          "tag": "",
          "hash": "f41b54b0c02b9ecbee50ffca17fc1d74a6e20672",
          "timestamp": 1507199541000
        },
        "sizing": {
          "size": 0,
          "snapshot": 0,
          "reserve_total": 1073741824
        }
      }
    ]
    

    Virtual Disk Create

    Create a new internal virtual disk.

    POST /vdisk
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | vss_id | string | virtual storage service id | | capacity | integer | capacity in bytes
    Range: 131072 <= value <= 1125899906842624 |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | uuid | uuid | virtual disk UUID | | label | nullable string | user assigned label
    Length: 1..64 | | xmd_refs | array | array of extensible metadata reference keys | | xref | nullable string | arbitrary string reference
    Length: 1..256 | | multi_map | boolean | virtual disk can be mapped into multiple targets | | read_only | boolean | virtual disk is read-only | | removable | boolean | virtual disk is removable | | notes | string | user assigned notes
    Length: 0..256 | | scsi_advise_lbp | boolean | advisory SCSI logical block provisioning (internal use only) | | tags | array | object tags | | quota:size:limit | nullable integer | upper hard limit on size | | quota:size:notify | nullable integer | notification threshold for size | | quota:size:reserve | integer | guaranteed storage resources
    default: 0 | | quota:iops:limit | nullable integer | limit on sustained I/O operations per second | | quota:workload | nullable string | workload hint
    default: "normal_iops"
    one of:"lower_iops" or "normal_iops" or "higher_iops" | | fs_type | string | filesystem formatting type
    one of:"ntfs" or "ext4" or "hfsplus" | | fs_options:fs_type | string | filesystem formatting type
    one of:"ntfs" or "ext4" or "hfsplus" | | readahead:mode | string | readahead mode control
    default: "constant"
    one of:"none" or "constant" | | readahead:size | integer | readahead size in bytes (rounded internally to 512-byte blocks)
    default: 131072
    Range: 4096 <= value <= 4194304 | | write_once | boolean | disk is write-once (block can not be re-written) | | data_cache | boolean | data read from disk will be cached
    default: true | | compression | string | compression codec
    one of:"none" or "inherit" or "economy" or "adaptive" or "adaptive_economy" or "adaptive_performance" or "performance" | | protocol | string | low-level storage protocol (task parameter)
    default: "iscsi"
    one of:"iscsi" or "nvme" |

    Curl Example

    $ curl -X POST https://mgmt-node/api/vdisk \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "vss_id": "vss:4:10",
      "capacity": 1048576
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:27:04 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 1978
    
    {
      "id": "vdisk:5:10",
      "uuid": "b4b8f626-b739-4658-abef-7575e8a71559",
      "serial": "DSK1962194C4062640F",
      "evt_qry": "serial=DSK1962194C4062640F",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "ctime": 1507570024180,
      "mtime": 1507570024273,
      "seq": 1507570024324,
      "label": "disk-1",
      "notes": null,
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "v": "dbg",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "info",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "warn",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "err",
              "d": [
                0,
                0,
                0,
                0
              ]
            }
          ]
        },
        "status": "current",
        "seq": 1507570024195
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "basis_id": null,
      "tags": [
    
      ],
      "locked": false,
      "scsi": {
        "protocol": "SAM-2,SPC-3,SBC-2",
        "tagged_queuing": true,
        "reservations": true,
        "ua_interlock": false,
        "aca": true,
        "vendor_ext": false,
        "dif": false,
        "multi_map": false,
        "read_only": false,
        "write_once": false,
        "removable": false,
        "advise_lbp": false,
        "features": "Tagged Queueing, Reservations, ACA",
        "eui64_id": null,
        "lu_serial": "lu.DSK1962194C4062640F",
        "vendor_id": "B*BRIDGE",
        "t10_id": "b4b8f626-b739-4658-abef-7575e8a71559",
        "naa_id": "naa.60a010a05915a7e81962194c4062640f"
      },
      "caps": {
        "encryption": null,
        "eval": null
      },
      "task": {
        "op": "none"
      },
      "capacity": 1048576,
      "quota": {
        "size": {
          "limit": null,
          "notify": null,
          "reserve": 0
        },
        "iops": {
          "limit": null
        },
        "workload": null
      },
      "cap_size_ratio": 1.0,
      "transient": null,
      "type": [
        "internal"
      ],
      "format": null,
      "readahead": {
        "mode": "constant",
        "size": 131072
      },
      "encryption": {
        "method": "symmetric",
        "cipher": "aes128",
        "mode": "xts",
        "method_desc": "Symmetric encryption",
        "cipher_desc": "Advanced Encryption Standard (AES128)",
        "mode_desc": "XEX-based tweaked-codebook mode with ciphertext stealing (XTS)",
        "key_desc": "Randomly generated 128-bit key with 128-bit tweak"
      },
      "data_cache": true,
      "replication": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "replication_rts": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "sizing": {
        "size": null,
        "snapshot": null
      },
      "media_loaded": null,
      "loaded_profile_id": null,
      "loaded_profile_serial": null
    }
    

    Virtual Disk Remove

    Remove an existing virtual disk. Once removed, the user data in a virtual disk is not retrievable.

    DELETE /vdisk/{vdisk_id_or_serial}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/vdisk/vdisk:5:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:34 GMT
    Server: Goliath
    

    Virtual Disk Update

    Change the configuration of an existing internal virtual disk.

    PATCH /vdisk/{vdisk_id_or_serial}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | xmd_refs | array | array of extensible metadata reference keys | | multi_map | boolean | virtual disk can be mapped in multiple targets | | read_only | boolean | virtual disk is read-only | | removable | boolean | virtual disk is removable | | ua_interlock | boolean | support for SCSI unit attention interlock | | dif | boolean | support for SCSI data integrity field | | scsi_advise_lbp | boolean | advisory SCSI logical block provisioning (internal use only) | | label | nullable string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | tags | array | object tags | | readahead:mode | string | readahead mode control
    one of:"none" or "constant" | | readahead:size | integer | readahead size in bytes (rounded internally to 512-byte blocks)
    Range: 4096 <= value <= 4194304 | | write_once | boolean | disk is write-once (blocks can not be re-written) | | data_cache | boolean | data read from disk will be cached | | compression | string | compression codec
    one of:"none" or "inherit" or "economy" or "adaptive" or "adaptive_economy" or "adaptive_performance" or "performance" | | xref | nullable string | arbitrary string reference
    Length: 1..256 |

    Curl Example

    $ curl -X PATCH https://mgmt-node/api/vdisk/vdisk:5:10 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "label": "disk",
      "notes": "vdisk label changed"
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:06 GMT
    Server: Goliath
    ETag: "99cd117823dbb5404cded284c7cc6fa8"
    Content-Type: application/json
    Content-Length: 2018
    
    {
      "id": "vdisk:5:10",
      "uuid": "b4b8f626-b739-4658-abef-7575e8a71559",
      "serial": "DSK1962194C4062640F",
      "evt_qry": "serial=DSK1962194C4062640F",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "ctime": 1507570024180,
      "mtime": 1507570026250,
      "seq": 1507570026260,
      "label": "disk",
      "notes": "vdisk label changed",
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507570025000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                8,
                8,
                8,
                8
              ],
              "v": "dbg"
            },
            {
              "d": [
                6,
                6,
                6,
                6
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507570025771
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "basis_id": null,
      "tags": [
    
      ],
      "locked": true,
      "scsi": {
        "protocol": "SAM-2,SPC-3,SBC-2",
        "tagged_queuing": true,
        "reservations": true,
        "ua_interlock": false,
        "aca": true,
        "vendor_ext": false,
        "dif": false,
        "multi_map": false,
        "read_only": false,
        "write_once": false,
        "removable": false,
        "advise_lbp": false,
        "features": "Tagged Queueing, Reservations, ACA",
        "eui64_id": null,
        "lu_serial": "lu.DSK1962194C4062640F",
        "vendor_id": "B*BRIDGE",
        "t10_id": "b4b8f626-b739-4658-abef-7575e8a71559",
        "naa_id": "naa.60a010a05915a7e81962194c4062640f"
      },
      "caps": {
        "encryption": "XTS-AES-128",
        "eval": false
      },
      "task": {
        "op": "none"
      },
      "capacity": 1036871168,
      "quota": {
        "size": {
          "limit": null,
          "notify": null,
          "reserve": 2073741824
        },
        "iops": {
          "limit": null
        },
        "workload": null
      },
      "cap_size_ratio": 1.0,
      "transient": null,
      "type": [
        "internal"
      ],
      "format": null,
      "readahead": {
        "mode": "constant",
        "size": 131072
      },
      "encryption": {
        "method": "symmetric",
        "cipher": "aes128",
        "mode": "xts",
        "method_desc": "Symmetric encryption",
        "cipher_desc": "Advanced Encryption Standard (AES128)",
        "mode_desc": "XEX-based tweaked-codebook mode with ciphertext stealing (XTS)",
        "key_desc": "Randomly generated 128-bit key with 128-bit tweak"
      },
      "data_cache": true,
      "replication": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "replication_rts": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "sizing": {
        "size": 0,
        "snapshot": 0
      },
      "media_loaded": false,
      "loaded_profile_id": null,
      "loaded_profile_serial": null
    }
    

    Virtual Disk Quota Update

    Change the quota for a virtual disk.

    PUT /vdisk/{vdisk_id_or_serial}/quota
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | size:limit | nullable integer | upper hard limit on size | | size:notify | nullable integer | notification threshold for size | | size:reserve | integer | guaranteed storage resources
    default: 0 | | iops:limit | nullable integer | limit on sustained I/O operations per second | | workload | nullable string | workload hint
    default: "normal_iops"
    one of:"lower_iops" or "normal_iops" or "higher_iops" |

    Curl Example

    $ curl -X PUT https://mgmt-node/api/vdisk/vdisk:5:10/quota \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "size": {
        "reserve": 2097152
      }
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:04 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 1998
    
    {
      "id": "vdisk:5:10",
      "uuid": "b4b8f626-b739-4658-abef-7575e8a71559",
      "serial": "DSK1962194C4062640F",
      "evt_qry": "serial=DSK1962194C4062640F",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "ctime": 1507570024180,
      "mtime": 1507570024757,
      "seq": 1507570024812,
      "label": "disk-1",
      "notes": null,
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507570024000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                3,
                3,
                3,
                3
              ],
              "v": "dbg"
            },
            {
              "d": [
                2,
                2,
                2,
                2
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507570024779
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "basis_id": null,
      "tags": [
    
      ],
      "locked": false,
      "scsi": {
        "protocol": "SAM-2,SPC-3,SBC-2",
        "tagged_queuing": true,
        "reservations": true,
        "ua_interlock": false,
        "aca": true,
        "vendor_ext": false,
        "dif": false,
        "multi_map": false,
        "read_only": false,
        "write_once": false,
        "removable": false,
        "advise_lbp": false,
        "features": "Tagged Queueing, Reservations, ACA",
        "eui64_id": null,
        "lu_serial": "lu.DSK1962194C4062640F",
        "vendor_id": "B*BRIDGE",
        "t10_id": "b4b8f626-b739-4658-abef-7575e8a71559",
        "naa_id": "naa.60a010a05915a7e81962194c4062640f"
      },
      "caps": {
        "encryption": "XTS-AES-128",
        "eval": false
      },
      "task": {
        "op": "none"
      },
      "capacity": 1048576,
      "quota": {
        "size": {
          "limit": null,
          "notify": null,
          "reserve": 2097152
        },
        "iops": {
          "limit": null
        },
        "workload": null
      },
      "cap_size_ratio": 1.0,
      "transient": null,
      "type": [
        "internal"
      ],
      "format": null,
      "readahead": {
        "mode": "constant",
        "size": 131072
      },
      "encryption": {
        "method": "symmetric",
        "cipher": "aes128",
        "mode": "xts",
        "method_desc": "Symmetric encryption",
        "cipher_desc": "Advanced Encryption Standard (AES128)",
        "mode_desc": "XEX-based tweaked-codebook mode with ciphertext stealing (XTS)",
        "key_desc": "Randomly generated 128-bit key with 128-bit tweak"
      },
      "data_cache": true,
      "replication": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "replication_rts": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "sizing": {
        "size": 0,
        "snapshot": 0
      },
      "media_loaded": false,
      "loaded_profile_id": null,
      "loaded_profile_serial": null
    }
    

    Virtual Disk Add Replication Master

    Add a replication master or slave virtual disk.

    POST /vdisk/{vdisk_id_or_serial}/replication/master
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | vdisk_id | string | virtual disk id to add as replica |

    Curl Example

    $ curl -X POST https://mgmt-node/api/vdisk/vdisk:7:10/replication/master \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "vdisk_id": "vdisk:6:10"
    }'
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:09 GMT
    Server: Goliath
    

    Virtual Disk Remove Replication Master

    Remove a replication master or slave virtual disk.

    DELETE /vdisk/{vdisk_id_or_serial}/replication/master/{vdisk_master_id}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/vdisk/vdisk:7:10/replication/master/vdisk:6:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:10 GMT
    Server: Goliath
    

    Virtual Disk Add Replication Slave

    Add a replication master or slave virtual disk.

    POST /vdisk/{vdisk_id_or_serial}/replication/slaves
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | vdisk_id | string | virtual disk id to add as replica |

    Curl Example

    $ curl -X POST https://mgmt-node/api/vdisk/vdisk:6:10/replication/slaves \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "vdisk_id": "vdisk:7:10"
    }'
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:09 GMT
    Server: Goliath
    

    Virtual Disk Update Replication Slave

    Update the configuration of a replication master or slave virtual disk.

    PUT /vdisk/{vdisk_id_or_serial}/replication/slaves/{vdisk_slave_id}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | state | string | state transition to perform
    one of:"enable" or "disable" or "suspend" or "resume" | | config:mode | string | replication mode
    one of:"async" or "sync" or "async-ordered" | | config:max_lag_cmds | integer | maximum commands to lag behind during async replication
    default: 0 | | config:max_lag_bytes | integer | maximum bytes to lag behind during async replication
    default: 0 | | config:recovery | string | recovery options
    default: "drl"
    one of:"none" or "drl" | | config:rebuild_bandwidth | integer | rebuild bandwidth limit in bytes/sec
    default: 0 | | config:rebuild_hash | boolean | use a hashing optimization to reduce network traffic during rebuild
    default: true | | config:timeout | integer | time to wait (in milliseconds) before stopping an unresponsive slave
    default: 20000
    Range: 100 <= value |

    Curl Example

    $ curl -X PUT https://mgmt-node/api/vdisk/vdisk:6:10/replication/slaves/vdisk:7:10 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "state": "enable",
      "config": {
        "mode": "async-ordered"
      }
    }'
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:09 GMT
    Server: Goliath
    

    Virtual Disk Remove Replication Slave

    Remove a replication master or slave virtual disk.

    DELETE /vdisk/{vdisk_id_or_serial}/replication/slaves/{vdisk_slave_id}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/vdisk/vdisk:6:10/replication/slaves/vdisk:7:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:10 GMT
    Server: Goliath
    

    Virtual Disk Attach Replication Peers

    Create a replication relationship between a master virtual disk and a slave virtual disk.

    POST /vdisk/actions/replication/attach
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | master_id | string | virtual disk id of replica master | | slave_id | string | virtual disk id of replica slave |

    Curl Example

    $ curl -X POST https://mgmt-node/api/vdisk/actions/replication/attach \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "master_id": "vdisk:7:10",
      "slave_id": "vdisk:6:10"
    }'
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:11 GMT
    Server: Goliath
    

    Virtual Disk Detach Replication Peers

    Break the replication relationship between a master virtual disk and a slave virtual disk.

    POST /vdisk/actions/replication/detach
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | master_id | string | virtual disk id of replica master | | slave_id | string | virtual disk id of replica slave |

    Curl Example

    $ curl -X POST https://mgmt-node/api/vdisk/actions/replication/detach \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "master_id": "vdisk:6:10",
      "slave_id": "vdisk:7:10"
    }'
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:11 GMT
    Server: Goliath
    

    Virtual Disk Rebuild Replication Slave

    Rebuild a replication slave virtual disk.

    POST /vdisk/actions/replication/rebuild
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | master_id | string | virtual disk id of replica master | | slave_id | string | virtual disk id of replica slave |

    Curl Example

    $ curl -X POST https://mgmt-node/api/vdisk/actions/replication/rebuild \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "master_id": "vdisk:6:10",
      "slave_id": "vdisk:7:10"
    }'
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:11 GMT
    Server: Goliath
    

    Virtual Disk Resize

    Change the size of an internal virtual disk

    POST /vdisk/{vdisk_id_or_serial}/actions/resize
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | capacity | integer | new user addressable capacity in bytes
    Range: 131072 <= value <= 1125899906842624 |

    Curl Example

    $ curl -X POST https://mgmt-node/api/vdisk/vdisk:5:10/actions/resize \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "capacity": 1036870912
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:27:05 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 2004
    
    {
      "id": "vdisk:5:10",
      "uuid": "b4b8f626-b739-4658-abef-7575e8a71559",
      "serial": "DSK1962194C4062640F",
      "evt_qry": "serial=DSK1962194C4062640F",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "ctime": 1507570024180,
      "mtime": 1507570025563,
      "seq": 1507570025573,
      "label": "disk-1",
      "notes": null,
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507570024000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                3,
                3,
                3,
                3
              ],
              "v": "dbg"
            },
            {
              "d": [
                2,
                2,
                2,
                2
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507570024779
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "basis_id": null,
      "tags": [
    
      ],
      "locked": false,
      "scsi": {
        "protocol": "SAM-2,SPC-3,SBC-2",
        "tagged_queuing": true,
        "reservations": true,
        "ua_interlock": false,
        "aca": true,
        "vendor_ext": false,
        "dif": false,
        "multi_map": false,
        "read_only": false,
        "write_once": false,
        "removable": false,
        "advise_lbp": false,
        "features": "Tagged Queueing, Reservations, ACA",
        "eui64_id": null,
        "lu_serial": "lu.DSK1962194C4062640F",
        "vendor_id": "B*BRIDGE",
        "t10_id": "b4b8f626-b739-4658-abef-7575e8a71559",
        "naa_id": "naa.60a010a05915a7e81962194c4062640f"
      },
      "caps": {
        "encryption": "XTS-AES-128",
        "eval": false
      },
      "task": {
        "op": "none"
      },
      "capacity": 1036871168,
      "quota": {
        "size": {
          "limit": null,
          "notify": null,
          "reserve": 2073741824
        },
        "iops": {
          "limit": null
        },
        "workload": null
      },
      "cap_size_ratio": 1.0,
      "transient": null,
      "type": [
        "internal"
      ],
      "format": null,
      "readahead": {
        "mode": "constant",
        "size": 131072
      },
      "encryption": {
        "method": "symmetric",
        "cipher": "aes128",
        "mode": "xts",
        "method_desc": "Symmetric encryption",
        "cipher_desc": "Advanced Encryption Standard (AES128)",
        "mode_desc": "XEX-based tweaked-codebook mode with ciphertext stealing (XTS)",
        "key_desc": "Randomly generated 128-bit key with 128-bit tweak"
      },
      "data_cache": true,
      "replication": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "replication_rts": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "sizing": {
        "size": 0,
        "snapshot": 0
      },
      "media_loaded": false,
      "loaded_profile_id": null,
      "loaded_profile_serial": null
    }
    

    Virtual Disk Thicken

    vdisk thicken

    POST /vdisk/{vdisk_id_or_serial}/actions/thicken
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | limit_bandwidth | boolean | limit bandwidth usage | | bandwidth | integer | verification bandwidth limit in bytes/sec |

    Curl Example

    $ curl -X POST FIXME
    

    Response Example

    HTTP/1.1 200 OK
    

    Virtual Disk Compress

    vdisk compress

    POST /vdisk/{vdisk_id_or_serial}/actions/compress
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | limit_bandwidth | boolean | limit bandwidth usage | | bandwidth | integer | verification bandwidth limit in bytes/sec |

    Curl Example

    $ curl -X POST FIXME
    

    Response Example

    HTTP/1.1 200 OK
    

    Virtual Disk Reclaim

    vdisk reclaim

    POST /vdisk/{vdisk_id_or_serial}/actions/reclaim
    

    Curl Example

    $ curl -X POST FIXME
    

    Response Example

    HTTP/1.1 200 OK
    

    Virtual Disk Rollback

    vdisk rollback

    POST /vdisk/{vdisk_id_or_serial}/actions/rollback
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | snapshot_id | string | snapshot id to roll back to |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | dry_run | boolean | Run a non-destructive check to see if rollback is possible |

    Curl Example

    $ curl -X POST FIXME
    

    Response Example

    HTTP/1.1 200 OK
    

    Virtual Disk Lock

    Lock an internal virtual disk. This action uses the supplied passphrase to encrypt the disk's encryption key. Once locked, the disk cannot be decrypted without supplying the passphrase.

    POST /vdisk/{vdisk_id_or_serial}/actions/lock
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | passphrase | string | passphrase
    Length: 1..∞ |

    Curl Example

    $ curl -X POST https://mgmt-node/api/vdisk/vdisk:5:10/actions/lock \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "passphrase": "foo"
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:27:05 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 2003
    
    {
      "id": "vdisk:5:10",
      "uuid": "b4b8f626-b739-4658-abef-7575e8a71559",
      "serial": "DSK1962194C4062640F",
      "evt_qry": "serial=DSK1962194C4062640F",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "ctime": 1507570024180,
      "mtime": 1507570025869,
      "seq": 1507570025881,
      "label": "disk-1",
      "notes": null,
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507570025000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                8,
                8,
                8,
                8
              ],
              "v": "dbg"
            },
            {
              "d": [
                6,
                6,
                6,
                6
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507570025771
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "basis_id": null,
      "tags": [
    
      ],
      "locked": true,
      "scsi": {
        "protocol": "SAM-2,SPC-3,SBC-2",
        "tagged_queuing": true,
        "reservations": true,
        "ua_interlock": false,
        "aca": true,
        "vendor_ext": false,
        "dif": false,
        "multi_map": false,
        "read_only": false,
        "write_once": false,
        "removable": false,
        "advise_lbp": false,
        "features": "Tagged Queueing, Reservations, ACA",
        "eui64_id": null,
        "lu_serial": "lu.DSK1962194C4062640F",
        "vendor_id": "B*BRIDGE",
        "t10_id": "b4b8f626-b739-4658-abef-7575e8a71559",
        "naa_id": "naa.60a010a05915a7e81962194c4062640f"
      },
      "caps": {
        "encryption": "XTS-AES-128",
        "eval": false
      },
      "task": {
        "op": "none"
      },
      "capacity": 1036871168,
      "quota": {
        "size": {
          "limit": null,
          "notify": null,
          "reserve": 2073741824
        },
        "iops": {
          "limit": null
        },
        "workload": null
      },
      "cap_size_ratio": 1.0,
      "transient": null,
      "type": [
        "internal"
      ],
      "format": null,
      "readahead": {
        "mode": "constant",
        "size": 131072
      },
      "encryption": {
        "method": "symmetric",
        "cipher": "aes128",
        "mode": "xts",
        "method_desc": "Symmetric encryption",
        "cipher_desc": "Advanced Encryption Standard (AES128)",
        "mode_desc": "XEX-based tweaked-codebook mode with ciphertext stealing (XTS)",
        "key_desc": "Randomly generated 128-bit key with 128-bit tweak"
      },
      "data_cache": true,
      "replication": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "replication_rts": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "sizing": {
        "size": 0,
        "snapshot": 0
      },
      "media_loaded": false,
      "loaded_profile_id": null,
      "loaded_profile_serial": null
    }
    

    Virtual Disk Unlock

    Unlock a locked virtual disk. The correct passphrase must be supplied.

    POST /vdisk/{vdisk_id_or_serial}/actions/unlock
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | passphrase | string | passphrase
    Length: 1..∞ |

    Curl Example

    $ curl -X POST https://mgmt-node/api/vdisk/vdisk:5:10/actions/unlock \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "passphrase": "foo"
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:27:06 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 2019
    
    {
      "id": "vdisk:5:10",
      "uuid": "b4b8f626-b739-4658-abef-7575e8a71559",
      "serial": "DSK1962194C4062640F",
      "evt_qry": "serial=DSK1962194C4062640F",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "ctime": 1507570024180,
      "mtime": 1507570026542,
      "seq": 1507570026553,
      "label": "disk",
      "notes": "vdisk label changed",
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": 1507570025000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                8,
                8,
                8,
                8
              ],
              "v": "dbg"
            },
            {
              "d": [
                6,
                6,
                6,
                6
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "status": "current",
        "seq": 1507570025771
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "basis_id": null,
      "tags": [
    
      ],
      "locked": false,
      "scsi": {
        "protocol": "SAM-2,SPC-3,SBC-2",
        "tagged_queuing": true,
        "reservations": true,
        "ua_interlock": false,
        "aca": true,
        "vendor_ext": false,
        "dif": false,
        "multi_map": false,
        "read_only": false,
        "write_once": false,
        "removable": false,
        "advise_lbp": false,
        "features": "Tagged Queueing, Reservations, ACA",
        "eui64_id": null,
        "lu_serial": "lu.DSK1962194C4062640F",
        "vendor_id": "B*BRIDGE",
        "t10_id": "b4b8f626-b739-4658-abef-7575e8a71559",
        "naa_id": "naa.60a010a05915a7e81962194c4062640f"
      },
      "caps": {
        "encryption": "XTS-AES-128",
        "eval": false
      },
      "task": {
        "op": "none"
      },
      "capacity": 1036871168,
      "quota": {
        "size": {
          "limit": null,
          "notify": null,
          "reserve": 2073741824
        },
        "iops": {
          "limit": null
        },
        "workload": null
      },
      "cap_size_ratio": 1.0,
      "transient": null,
      "type": [
        "internal"
      ],
      "format": null,
      "readahead": {
        "mode": "constant",
        "size": 131072
      },
      "encryption": {
        "method": "symmetric",
        "cipher": "aes128",
        "mode": "xts",
        "method_desc": "Symmetric encryption",
        "cipher_desc": "Advanced Encryption Standard (AES128)",
        "mode_desc": "XEX-based tweaked-codebook mode with ciphertext stealing (XTS)",
        "key_desc": "Randomly generated 128-bit key with 128-bit tweak"
      },
      "data_cache": true,
      "replication": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "replication_rts": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "sizing": {
        "size": 0,
        "snapshot": 0
      },
      "media_loaded": false,
      "loaded_profile_id": null,
      "loaded_profile_serial": null
    }
    

    Virtual Disk Load Media

    vdisk load

    POST /vdisk/{vdisk_id_or_serial}/actions/load
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | profile_id | string | initiator profile id (for which virtual disk is loaded) |

    Curl Example

    $ curl -X POST https://mgmt-node/api/vdisk/vdisk:8:10/actions/load \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "profile_id": "initiator_profile:9:10"
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:27:15 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 1994
    
    {
      "id": "vdisk:8:10",
      "uuid": "51ea1be3-fd01-40ff-8b7d-585af695959f",
      "serial": "DSK1962194C406264D5",
      "evt_qry": "serial=DSK1962194C406264D5",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "ctime": 1507570035177,
      "mtime": 1507570035279,
      "seq": 1507570035326,
      "label": "rmv",
      "notes": "removable virtual disk",
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "v": "dbg",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "info",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "warn",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "err",
              "d": [
                0,
                0,
                0,
                0
              ]
            }
          ]
        },
        "status": "current",
        "seq": 1507570035193
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "basis_id": null,
      "tags": [
    
      ],
      "locked": false,
      "scsi": {
        "protocol": "SAM-2,SPC-3,SBC-2",
        "tagged_queuing": true,
        "reservations": true,
        "ua_interlock": false,
        "aca": true,
        "vendor_ext": false,
        "dif": false,
        "multi_map": false,
        "read_only": false,
        "write_once": false,
        "removable": true,
        "advise_lbp": false,
        "features": "Tagged Queueing, Reservations, ACA",
        "eui64_id": null,
        "lu_serial": "lu.DSK1962194C406264D5",
        "vendor_id": "B*BRIDGE",
        "t10_id": "51ea1be3-fd01-40ff-8b7d-585af695959f",
        "naa_id": "naa.60a010a09f9595f61962194c406264d5"
      },
      "caps": {
        "encryption": null,
        "eval": null
      },
      "task": {
        "op": "none"
      },
      "capacity": 1048576,
      "quota": {
        "size": {
          "limit": null,
          "notify": null,
          "reserve": 0
        },
        "iops": {
          "limit": null
        },
        "workload": null
      },
      "cap_size_ratio": 1.0,
      "transient": null,
      "type": [
        "internal"
      ],
      "format": null,
      "readahead": {
        "mode": "constant",
        "size": 131072
      },
      "encryption": {
        "method": "symmetric",
        "cipher": "aes128",
        "mode": "xts",
        "method_desc": "Symmetric encryption",
        "cipher_desc": "Advanced Encryption Standard (AES128)",
        "mode_desc": "XEX-based tweaked-codebook mode with ciphertext stealing (XTS)",
        "key_desc": "Randomly generated 128-bit key with 128-bit tweak"
      },
      "data_cache": true,
      "replication": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "replication_rts": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "sizing": {
        "size": null,
        "snapshot": null
      },
      "media_loaded": null,
      "loaded_profile_id": null,
      "loaded_profile_serial": null
    }
    

    Virtual Disk Load Cloned Media

    Clone the specified snapshot and load the media into a new removable virtual disk.

    POST /vdisk/{vdisk_id_or_serial}/actions/load-clone
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | profile_id | string | initiator profile id (for which virtual disk is loaded) |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | label | string | user assigned label
    Length: 1..64 |

    Curl Example

    $ curl -X POST https://mgmt-node/api/vdisk/vdisk:5:10/actions/load-clone \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "profile_id": "initiator_profile:9:10",
      "label": "clone-disk"
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:27:16 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 1995
    
    {
      "id": "vdisk:9:10",
      "uuid": "1a72cbae-b6f9-485e-96e8-ab5b5f342912",
      "serial": "DSK1962194C406264CD",
      "evt_qry": "serial=DSK1962194C406264CD",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "ctime": 1507570035928,
      "mtime": 1507570036189,
      "seq": 1507570036249,
      "label": "clone-disk",
      "notes": null,
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "v": "dbg",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "info",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "warn",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "err",
              "d": [
                0,
                0,
                0,
                0
              ]
            }
          ]
        },
        "status": "current",
        "seq": 1507570035956
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "basis_id": "snapshot:1:10",
      "tags": [
    
      ],
      "locked": false,
      "scsi": {
        "protocol": "SAM-2,SPC-3,SBC-2",
        "tagged_queuing": true,
        "reservations": true,
        "ua_interlock": false,
        "aca": true,
        "vendor_ext": false,
        "dif": false,
        "multi_map": false,
        "read_only": false,
        "write_once": false,
        "removable": true,
        "advise_lbp": false,
        "features": "Tagged Queueing, Reservations, ACA",
        "eui64_id": null,
        "lu_serial": "lu.DSK1962194C406264CD",
        "vendor_id": "B*BRIDGE",
        "t10_id": "1a72cbae-b6f9-485e-96e8-ab5b5f342912",
        "naa_id": "naa.60a010a01229345f1962194c406264cd"
      },
      "caps": {
        "encryption": null,
        "eval": null
      },
      "task": {
        "op": "none"
      },
      "capacity": 1036871168,
      "quota": {
        "size": {
          "limit": null,
          "notify": null,
          "reserve": 0
        },
        "iops": {
          "limit": null
        },
        "workload": null
      },
      "cap_size_ratio": 1.0,
      "transient": true,
      "type": [
        "internal"
      ],
      "format": null,
      "readahead": {
        "mode": "constant",
        "size": 131072
      },
      "encryption": {
        "method": "symmetric",
        "cipher": "aes128",
        "mode": "xts",
        "method_desc": "Symmetric encryption",
        "cipher_desc": "Advanced Encryption Standard (AES128)",
        "mode_desc": "XEX-based tweaked-codebook mode with ciphertext stealing (XTS)",
        "key_desc": "Randomly generated 128-bit key with 128-bit tweak"
      },
      "data_cache": true,
      "replication": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "replication_rts": {
        "master": null,
        "slave": null,
        "slaves": [
    
        ]
      },
      "sizing": {
        "size": null,
        "snapshot": null
      },
      "media_loaded": null,
      "loaded_profile_id": null,
      "loaded_profile_serial": null
    }
    

    Virtual Disk Eject Media

    Eject the media for a removable virtual disk.

    POST /vdisk/{vdisk_id_or_serial}/actions/eject
    

    Curl Example

    $ curl -X POST https://mgmt-node/api/vdisk/vdisk:8:10/actions/eject \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:16 GMT
    Server: Goliath
    

    Virtual Disk Backup

    Initiate a backup.

    POST /vdisk/{vdisk_id_or_serial}/actions/backup
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | snapshot_id | string | snapshot id | | obj_store_id | string | object store id |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | uuid | uuid | backup UUID | | object_key | nullable string | object store base key string |

    Curl Example

    $ curl -X POST https://mgmt-node/api/vdisk/vdisk:5:10/actions/backup \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "snapshot_id": "snapshot:2:10",
      "obj_store_id": "obj_store:7:10"
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:27:18 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 163
    
    {
      "status": "success",
      "task_id": "ptask:313:10",
      "task_context": "759fe227-d14f-4d80-909b-2b37dd7ddac6",
      "backup_id": "a541db70-32fa-4f7d-b4a0-0edb93d391a6",
      "headers": {
      }
    }
    

    Virtual Disk Barrier Create

    Raise a time-limited I/O barrier. Outstanding I/O operations will run to completion. New operations will wait until the barrier expires or is removed.

    POST /vdisk/{vdisk_id_or_serial}/barrier
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | uuid | uuid | barrier UUID | | expires | integer | relative expiration time (in ms) | | vdisk_id | string | virtual disk ID |

    Curl Example

    $ curl -X POST https://mgmt-node/api/vdisk/vdisk:5:10/barrier \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "uuid": "58308c7f-9501-4a03-a36d-31e2be6eb015",
      "expires": 5000
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:27:05 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 55
    
    {
      "status": "success",
      "start": 1507570025022,
      "headers": {
      }
    }
    

    Virtual Disk Barrier Remove

    Remove a virtual disk I/O barrier.

    DELETE /vdisk/{vdisk_id_or_serial}/barrier/{vdisk_uuid}
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | uuid | uuid | object uuid | | vdisk_id | string | virtual disk ID |

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/vdisk/vdisk:5:10/barrier/58308c7f-9501-4a03-a36d-31e2be6eb015 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:05 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 53
    
    {
      "status": "success",
      "barrier": "removed",
      "headers": {
      }
    }
    

    iSCSI Initiator Profile

    Initiator profiles hold the authentication and transport encryption parameters for one or more iSCSI initiators. From this resource, you may also create secure access tokens that use split key encryption to enable you to unlock access to your disks on demand. And, you can define policies that restrict initiator access to certain times of day, or to certain IP address ranges.

    Attributes

    NameTypeDescription
    idstringobject id
    uuiduuidobject uuid
    ctimeintegerinitiator profile create time
    Range: 0 <= value
    mtimeintegerinitiator profile last modified time
    Range: 0 <= value
    labelnullable stringuser assigned label
    Length: 1..64
    protocolstringlow-level storage protocol (ds record)
    one of:"iscsi" or "nvme"
    iscsi:auth_methodstringauthentication method string
    iscsi:initiator_loginstringinitator CHAP username
    iscsi:initiator_login_suffixstringinitiator CHAP username suffix (account name)
    iscsi:initiator_pass_setbooleanpassword is set
    iscsi:suggested_base_iqnstringsuggested IQN string for this profile
    iscsi:initiator_listarrayinitiator access list
    iscsi:initiator_chap_modestringinitiator CHAP mode
    one of:"username" or "token"
    iscsi:mutual_authstringmutual authentication administrative state
    one of:"disabled" or "optional" or "required"
    iscsi:target_loginstringmutual authentication target CHAP username
    access_token:validbooleanaccess token is valid
    access_token:created_stampintegertoken created timestamp
    Range: 0 <= value
    access_token:idstringaccess token id
    transport:modestringsecure transport mode
    one of:"insecure" or "tls" or "ikev1" or "ikev2"
    transport:encryption_policystringtransport encryption policy
    default: "disallowed"
    one of:"disallowed" or "optional" or "required"
    transport:ikev1:modestringno documentation
    one of:"transport"
    transport:ikev1:authstringclient authentication mode
    one of:"psk"
    transport:ikev1:pskstringpre-shared secret key
    Length: 1..∞
    transport:ikev2:modestringno documentation
    one of:"transport" or "tunnel"
    transport:ikev2:subnetstringprivate subnet designation
    default: "172_31"
    one of:"172_31" or "172_30" or "10_1"
    transport:ikev2:authstringclient authentication mode
    one of:"mschapv2"
    transport:ikev2:mschapv2_userstringMSCHAPv2 username
    Length: 1..∞
    transport:ikev2:mschapv2_passstringMSCHAPv2 password
    Length: 1..∞
    transport:tls:portal_ipaddripv4virtual target portal ip address
    transport:tls:portal_ipportintegervirtual target portal ip port
    nvme:initiator_listarrayinitiator access list
    nvme:auth_requiredbooleanauthentication required
    nvme:auth_methodstringauthentication method string
    nvme:mutual_authstringmutual authentication
    one of:"disabled" or "optional" or "required"
    account_idstringaccount ref
    serialstringinitiator profile serial number
    vss_idnullable stringvirtual storage service id (if not global)
    notesnullable stringuser assigned notes
    Length: 0..256
    replicationbooleanis profile for replication
    systembooleansystem target
    xmd_refsarrayarray of extensible metadata reference keys
    xrefnullable stringarbitrary string reference
    Length: 1..256
    rules:options:timezonestringtimezone
    one of:"local"
    rules:access:ip/typestringaccess type
    one of:"allow" or "deny"
    rules:access:ip/ipipv4IP address
    rules:access:ip/maskipv4netmask
    rules:access:weekly/typestringaccess type
    one of:"allow" or "deny"
    rules:access:weekly/startintegerstart time in milliseconds since the start of the week (Monday 00:00:00.000)
    Range: 0 <= value <= 604799000
    rules:access:weekly/endintegerend time in milliseconds since the start of the week (Monday 00:00:00.000)
    Range: 0 <= value <= 604799000
    rules:throttle:weekly/bandwidthintegerbandwidth limit
    rules:throttle:weekly/startintegerstart time in milliseconds since the start of the week (Monday 00:00:00.000)
    Range: 0 <= value <= 604799000
    rules:throttle:weekly/endintegerend time in milliseconds since the start of the week (Monday 00:00:00.000)
    Range: 0 <= value <= 604799000
    rules:disk:commandsstringdata commands
    one of:"read-write" or "read-only" or "write-only"
    rules:disk:modelstringmodel override
    pattern: ^[\x20-\x7e]+$
    Length: 0..16
    status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    status:detailnullable stringstatus detail
    xmd/idstringno documentation
    xmd/refstringarbitrary string reference key
    Length: 1..256
    xmd/mtimeintegerlast modified time of xmd
    Range: 0 <= value
    xmd/tagsarrayobject tags
    xmd/selfbooleanno documentation
    xmd/datanullable stringno documentation

    iSCSI Initiator Profile Info

    Retrieve an existing iSCSI initiator profile.

    GET /initiator-profile/{initiator_profile_id_or_serial}
    

    Curl Example

    $ curl https://mgmt-node/api/initiator-profile/initiator_profile:9:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:12 GMT
    Server: Goliath
    ETag: "c9e392e8a14d62d563325d038a852d81"
    Content-Type: application/json
    Content-Length: 1420
    
    {
      "id": "initiator_profile:9:10",
      "uuid": "3a20192f-7fac-4ac9-acc7-a506038a8d83",
      "serial": "PRF0062194C406264CB",
      "evt_qry": "serial=PRF0062194C406264CB",
      "account_id": "account:1:10",
      "vss_id": null,
      "ctime": 1507570031974,
      "mtime": 1507570032486,
      "seq": 1507570032618,
      "label": "global_profile",
      "notes": "initiator profile was updated with chap info",
      "status": {
        "indicator": "online",
        "value": "online",
        "detail": ""
      },
      "ec": {
        "status": "current",
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "dbg"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "seq": 1507570031982
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "access_token": {
        "valid": false
      },
      "iscsi": {
        "auth_method": "Challenge-Handshake Authentication Protocol (CHAP)",
        "initiator_login": "chapuser",
        "initiator_login_suffix": "@system",
        "initiator_pass_set": true,
        "suggested_base_iqn": "iqn.2009-12.com.blockbridge:i-pjxazxi",
        "initiator_list": [
          "iqn.2009-12.com.blockbridge.client-host:da3db582a6f7"
        ],
        "initiator_chap_mode": "username",
        "mutual_auth": "disabled"
      },
      "transport": {
        "mode": "insecure",
        "encryption_policy": "disallowed"
      },
      "rules": {
        "options": {
          "timezone": "local"
        },
        "disk": {
          "commands": "read-write"
        },
        "access": {
          "options": {
          },
          "ip": [
            {
              "type": [
                "allow"
              ],
              "ip": "0.0.0.0",
              "mask": "0.0.0.0"
            },
            {
              "type": [
                "allow"
              ],
              "ip": "::",
              "mask": "::"
            }
          ],
          "weekly": [
            {
              "type": [
                "allow"
              ],
              "start": 0,
              "end": 604799000
            }
          ]
        },
        "throttle": {
          "options": {
          },
          "weekly": [
    
          ]
        }
      }
    }
    

    iSCSI Initiator Profile List

    Enumerate iSCSI initiator profiles.

    GET /initiator-profile
    

    Curl Example

    $ curl https://mgmt-node/api/initiator-profile \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:12 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 2913
    
    [
      {
        "id": "initiator_profile:8:10",
        "uuid": "7b81fe1e-d5f4-4edf-87d0-f9b7b45b1713",
        "serial": "PRF0062194C406264D3",
        "evt_qry": "serial=PRF0062194C406264D3",
        "account_id": "account:1:10",
        "vss_id": "vss:5:10",
        "ctime": 1507570030986,
        "mtime": 1507570030986,
        "seq": 1507570031776,
        "label": "replication-dsk1962194c40626437-764188fd15164c48f545a8871c923206",
        "notes": null,
        "status": {
          "indicator": "online",
          "value": "online",
          "detail": ""
        },
        "ec": {
          "status": "current",
          "table": {
            "time": 1507570031000,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  2,
                  2,
                  2,
                  2
                ],
                "v": "dbg"
              },
              {
                "d": [
                  5,
                  5,
                  5,
                  5
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "seq": 1507570031776
        },
        "rec_status": null,
        "xmd_refs": [
    
        ],
        "xref": null,
        "xmd": null,
        "access_token": {
          "valid": false
        },
        "iscsi": {
          "auth_method": "Challenge-Handshake Authentication Protocol (CHAP)",
          "initiator_login": "replication-dsk1962194c40626437-764188fd15164c48f545a8871c923206",
          "initiator_login_suffix": "@system",
          "initiator_pass_set": true,
          "suggested_base_iqn": "iqn.2009-12.com.blockbridge:i-pjxazxh",
          "initiator_list": [
            "iqn.2009-12.com.blockbridge:i-pjxazxh-replication-764188fd15164c48f545a8871c923206"
          ],
          "initiator_chap_mode": "username",
          "mutual_auth": "disabled"
        },
        "transport": {
          "mode": "tls",
          "encryption_policy": "required",
          "tls": {
            "portal_ipaddr": "127.0.0.1",
            "portal_ipport": 3260
          }
        },
        "rules": {
          "options": {
            "timezone": "local"
          },
          "disk": {
            "commands": "read-write"
          },
          "access": {
            "options": {
            },
            "ip": [
              {
                "type": [
                  "allow"
                ],
                "ip": "0.0.0.0",
                "mask": "0.0.0.0"
              },
              {
                "type": [
                  "allow"
                ],
                "ip": "::",
                "mask": "::"
              }
            ],
            "weekly": [
              {
                "type": [
                  "allow"
                ],
                "start": 0,
                "end": 604799000
              }
            ]
          },
          "throttle": {
            "options": {
            },
            "weekly": [
    
            ]
          }
        }
      },
      {
        "id": "initiator_profile:9:10",
        "uuid": "3a20192f-7fac-4ac9-acc7-a506038a8d83",
        "serial": "PRF0062194C406264CB",
        "evt_qry": "serial=PRF0062194C406264CB",
        "account_id": "account:1:10",
        "vss_id": null,
        "ctime": 1507570031974,
        "mtime": 1507570031975,
        "seq": 1507570031982,
        "label": "profile-1",
        "notes": null,
        "status": {
          "indicator": "online",
          "value": "online",
          "detail": ""
        },
        "ec": {
          "status": "current",
          "table": {
            "time": null,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "dbg"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "seq": 1507570031982
        },
        "rec_status": null,
        "xmd_refs": [
    
        ],
        "xref": null,
        "xmd": null,
        "access_token": {
          "valid": false
        },
        "iscsi": {
          "auth_method": "Challenge-Handshake Authentication Protocol (CHAP)",
          "initiator_login": "PRF0062194C406264CB",
          "initiator_login_suffix": "@system",
          "initiator_pass_set": false,
          "suggested_base_iqn": "iqn.2009-12.com.blockbridge:i-pjxazxi",
          "initiator_list": [
    
          ],
          "initiator_chap_mode": "username",
          "mutual_auth": "disabled"
        },
        "transport": {
          "mode": "insecure",
          "encryption_policy": "disallowed"
        },
        "rules": {
          "options": {
            "timezone": "local"
          },
          "disk": {
            "commands": "read-write"
          },
          "access": {
            "options": {
            },
            "ip": [
              {
                "type": [
                  "allow"
                ],
                "ip": "0.0.0.0",
                "mask": "0.0.0.0"
              },
              {
                "type": [
                  "allow"
                ],
                "ip": "::",
                "mask": "::"
              }
            ],
            "weekly": [
              {
                "type": [
                  "allow"
                ],
                "start": 0,
                "end": 604799000
              }
            ]
          },
          "throttle": {
            "options": {
            },
            "weekly": [
    
            ]
          }
        }
      }
    ]
    

    iSCSI Initiator Profile Create

    Create a new iSCSI initiator profile.

    POST /initiator-profile
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | host_secret | string | NVMe host secret
    Length: 0..103 | | subsystem_secret | string | NVMe subsystem secret
    Length: 0..103 |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | xmd_refs | array | array of extensible metadata reference keys | | xref | nullable string | arbitrary string reference
    Length: 1..256 | | label | nullable string | user assigned label
    Length: 1..64 | | enabled | boolean | initiator profile enabled for access
    default: true | | initiator_login | string | initiator CHAP username
    Length: 1..128 | | initiator_pass | string | initiator CHAP password
    Length: 12..64 | | vss_id | string | profile is local to specified virtual storage service | | initiator_list | array | initiator access list | | initiator_chap_mode | string | initiator CHAP mode
    one of:"username" or "token" | | mutual_auth | string | mutual authentication
    default: "disabled"
    one of:"disabled" or "optional" or "required" | | target_login | string | mutual authentication target CHAP username
    Length: 1..128 | | target_pass | string | mutual authentication target CHAP password
    Length: 12..64 | | transport:mode | string | secure transport mode
    default: "insecure"
    one of:"insecure" | | transport:encryption_policy | string | transport encryption policy
    default: "disallowed"
    one of:"disallowed" or "optional" or "required" | | transport:tls:portal_ipaddr | ipv4 | virtual target portal ip address
    default: "127.0.0.1" | | transport:tls:portal_ipport | integer | virtual target portal ip port
    default: 3260 | | rules:options:timezone | string | timezone
    one of:"local" | | rules:disk:commands | string | data commands
    default: "read-write"
    one of:"read-write" or "read-only" or "write-only" | | rules:disk:model | string | model override
    pattern: ^[\x20-\x7e]+$
    Length: 0..16 | | rules:access:ip/type | string | access type
    one of:"allow" or "deny" | | rules:access:ip/ip | ipv4 | IP address | | rules:access:ip/mask | ipv4 | netmask | | rules:access:weekly/type | string | access type
    one of:"allow" or "deny" | | rules:access:weekly/start | integer | start time in milliseconds since the start of the week (Monday 00:00:00.000)
    Range: 0 <= value <= 604799000 | | rules:access:weekly/end | integer | end time in milliseconds since the start of the week (Monday 00:00:00.000)
    Range: 0 <= value <= 604799000 | | rules:throttle:weekly/bandwidth | integer | bandwidth limit | | rules:throttle:weekly/start | integer | start time in milliseconds since the start of the week (Monday 00:00:00.000)
    Range: 0 <= value <= 604799000 | | rules:throttle:weekly/end | integer | end time in milliseconds since the start of the week (Monday 00:00:00.000)
    Range: 0 <= value <= 604799000 | | notes | string | user assigned notes
    Length: 0..256 | | uuid | uuid | object UUID | | protocol | string | low-level storage protocol (task parameter)
    default: "iscsi"
    one of:"iscsi" or "nvme" | | auth_required | boolean | authentication required |

    Curl Example

    $ curl -X POST https://mgmt-node/api/initiator-profile \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:27:12 GMT
    Server: Goliath
    ETag: "611e739de8597997cbbfab21c6120cc2"
    Content-Type: application/json
    Content-Length: 1331
    
    {
      "id": "initiator_profile:9:10",
      "uuid": "3a20192f-7fac-4ac9-acc7-a506038a8d83",
      "serial": "PRF0062194C406264CB",
      "evt_qry": "serial=PRF0062194C406264CB",
      "account_id": "account:1:10",
      "vss_id": null,
      "ctime": 1507570031974,
      "mtime": 1507570031975,
      "seq": 1507570031982,
      "label": "profile-1",
      "notes": null,
      "status": {
        "indicator": "online",
        "value": "online",
        "detail": ""
      },
      "ec": {
        "status": "current",
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "dbg"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "seq": 1507570031982
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "access_token": {
        "valid": false
      },
      "iscsi": {
        "auth_method": "Challenge-Handshake Authentication Protocol (CHAP)",
        "initiator_login": "PRF0062194C406264CB",
        "initiator_login_suffix": "@system",
        "initiator_pass_set": false,
        "suggested_base_iqn": "iqn.2009-12.com.blockbridge:i-pjxazxi",
        "initiator_list": [
    
        ],
        "initiator_chap_mode": "username",
        "mutual_auth": "disabled"
      },
      "transport": {
        "mode": "insecure",
        "encryption_policy": "disallowed"
      },
      "rules": {
        "options": {
          "timezone": "local"
        },
        "disk": {
          "commands": "read-write"
        },
        "access": {
          "options": {
          },
          "ip": [
            {
              "type": [
                "allow"
              ],
              "ip": "0.0.0.0",
              "mask": "0.0.0.0"
            },
            {
              "type": [
                "allow"
              ],
              "ip": "::",
              "mask": "::"
            }
          ],
          "weekly": [
            {
              "type": [
                "allow"
              ],
              "start": 0,
              "end": 604799000
            }
          ]
        },
        "throttle": {
          "options": {
          },
          "weekly": [
    
          ]
        }
      }
    }
    

    iSCSI Initiator Profile Remove

    Remove an existing iSCSI initiator profile.

    DELETE /initiator-profile/{initiator_profile_id_or_serial}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/initiator-profile/initiator_profile:9:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:33 GMT
    Server: Goliath
    

    iSCSI Initiator Profile Update

    Change the configuration of an existing iSCSI initiator profile.

    PATCH /initiator-profile/{initiator_profile_id_or_serial}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | xmd_refs | array | array of extensible metadata reference keys | | enabled | boolean | initiator profile enabled for access | | initiator_login | string | initiator CHAP username
    Length: 1..128 | | initiator_pass | string | initiator CHAP password
    Length: 12..64 | | initiator_list | array | initiator access list | | initiator_chap_mode | string | initiator CHAP mode
    one of:"username" or "token" | | mutual_auth | string | mutual authentication
    one of:"disabled" or "optional" or "required" | | target_login | string | mutual authentication target CHAP username
    Length: 1..128 | | target_pass | string | mutual authentication target CHAP password
    Length: 12..64 | | transport:mode | string | secure transport mode
    one of:"insecure" | | transport:encryption_policy | string | transport encryption policy
    default: "disallowed"
    one of:"disallowed" or "optional" or "required" | | transport:tls:portal_ipaddr | ipv4 | virtual target portal ip address
    default: "127.0.0.1" | | transport:tls:portal_ipport | integer | virtual target portal ip port
    default: 3260 | | rules:options:timezone | string | timezone
    one of:"local" | | rules:disk:commands | string | data commands
    one of:"read-write" or "read-only" or "write-only" | | rules:disk:model | string | model override
    pattern: ^[\x20-\x7e]+$
    Length: 0..16 | | rules:access:ip/type | string | access type
    one of:"allow" or "deny" | | rules:access:ip/ip | ipv4 | IP address | | rules:access:ip/mask | ipv4 | netmask | | rules:access:weekly/type | string | access type
    one of:"allow" or "deny" | | rules:access:weekly/start | integer | start time in milliseconds since the start of the week (Monday 00:00:00.000)
    Range: 0 <= value <= 604799000 | | rules:access:weekly/end | integer | end time in milliseconds since the start of the week (Monday 00:00:00.000)
    Range: 0 <= value <= 604799000 | | rules:throttle:weekly/bandwidth | integer | bandwidth limit | | rules:throttle:weekly/start | integer | start time in milliseconds since the start of the week (Monday 00:00:00.000)
    Range: 0 <= value <= 604799000 | | rules:throttle:weekly/end | integer | end time in milliseconds since the start of the week (Monday 00:00:00.000)
    Range: 0 <= value <= 604799000 | | label | nullable string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | auth_required | boolean | authentication required | | host_secret | string | NVMe host secret
    Length: 0..103 | | subsystem_secret | string | NVMe subsystem secret
    Length: 0..103 |

    Curl Example

    $ curl -X PATCH https://mgmt-node/api/initiator-profile/initiator_profile:9:10 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "initiator_login": "chapuser",
      "initiator_pass": "chappassword",
      "initiator_list": [
        "iqn.2009-12.com.blockbridge.client-host:da3db582a6f7"
      ],
      "label": "global_profile",
      "notes": "initiator profile was updated with chap info"
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:12 GMT
    Server: Goliath
    ETag: "c9e392e8a14d62d563325d038a852d81"
    Content-Type: application/json
    Content-Length: 1420
    
    {
      "id": "initiator_profile:9:10",
      "uuid": "3a20192f-7fac-4ac9-acc7-a506038a8d83",
      "serial": "PRF0062194C406264CB",
      "evt_qry": "serial=PRF0062194C406264CB",
      "account_id": "account:1:10",
      "vss_id": null,
      "ctime": 1507570031974,
      "mtime": 1507570032486,
      "seq": 1507570032618,
      "label": "global_profile",
      "notes": "initiator profile was updated with chap info",
      "status": {
        "indicator": "online",
        "value": "online",
        "detail": ""
      },
      "ec": {
        "status": "current",
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "dbg"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "seq": 1507570031982
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "access_token": {
        "valid": false
      },
      "iscsi": {
        "auth_method": "Challenge-Handshake Authentication Protocol (CHAP)",
        "initiator_login": "chapuser",
        "initiator_login_suffix": "@system",
        "initiator_pass_set": true,
        "suggested_base_iqn": "iqn.2009-12.com.blockbridge:i-pjxazxi",
        "initiator_list": [
          "iqn.2009-12.com.blockbridge.client-host:da3db582a6f7"
        ],
        "initiator_chap_mode": "username",
        "mutual_auth": "disabled"
      },
      "transport": {
        "mode": "insecure",
        "encryption_policy": "disallowed"
      },
      "rules": {
        "options": {
          "timezone": "local"
        },
        "disk": {
          "commands": "read-write"
        },
        "access": {
          "options": {
          },
          "ip": [
            {
              "type": [
                "allow"
              ],
              "ip": "0.0.0.0",
              "mask": "0.0.0.0"
            },
            {
              "type": [
                "allow"
              ],
              "ip": "::",
              "mask": "::"
            }
          ],
          "weekly": [
            {
              "type": [
                "allow"
              ],
              "start": 0,
              "end": 604799000
            }
          ]
        },
        "throttle": {
          "options": {
          },
          "weekly": [
    
          ]
        }
      }
    }
    

    iSCSI Initiator Profile Prepare Token

    Prepare to create a secure access token for an initiator profile.

    GET /initiator-profile/{initiator_profile_id_or_serial}/token
    

    Curl Example

    $ curl FIXME
    

    Response Example

    HTTP/1.1 200 OK
    

    iSCSI Initiator Profile Create Token

    Create a secure access token for an iSCSI initiator profile.

    POST /initiator-profile/{initiator_profile_id_or_serial}/token
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | tok_hash | string | cryptographic hash of access token (sha-256)
    Length: 32 | | pad | string | random pad used during access token creation
    Length: 32 |

    Curl Example

    $ curl -X POST https://mgmt-node/api/initiator-profile/initiator_profile:18:10/token \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/i1ryvdh1gZU0yexJ9eo5Zztdt0Zgs+k2/BUs71KqDyTLWvK92HWLhQ"
    

    Response Example

    400 Bad Request
    Date: Sat, 15 Apr 2017 14:38:26 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 207
    Connection: close
    
    {
      "status": 400,
      "message": "parameter validation failure",
      "type": [
        "validation"
      ],
      "errors": [
        {
          "type": [
            "missing"
          ],
          "field": "/tok_hash",
          "msg": "must be present"
        },
        {
          "type": [
            "missing"
          ],
          "field": "/pad",
          "msg": "must be present"
        }
      ]
    }
    

    iSCSI Initiator Profile Remove Token

    Remove a configured secure access token from an iSCSI initiator profile.

    DELETE /initiator-profile/{initiator_profile_id_or_serial}/token
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/initiator-profile/initiator_profile:9:10/token \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:12 GMT
    Server: Goliath
    

    iSCSI Target

    The iSCSI target defines how disks are mapped to the network, making them accessible to iSCSI clients. In the Blockbridge System, the iSCSI target is virtual, so that a single storage node supports many targets. You're free to define them as needed.

    Attributes

    NameTypeDescription
    idstringobject id
    uuiduuidobject uuid
    ctimeintegeriSCSI target create time
    Range: 0 <= value
    mtimeintegeriSCSI target last modified time
    Range: 0 <= value
    protocolstringlow-level storage protocol (ds record)
    one of:"iscsi" or "nvme"
    iqn_basestringbase of iSCSI target IQN
    pattern: ^iqn.\d{4}-\d{2}((?
    iqn_suffixstringsuffix of iSCSI target IQN
    pattern: ^[a-z0-9.-]*$
    iqnstringiSCSI target IQN
    pattern: ^iqn.\d{4}-\d{2}((?
    namestringiSCSI target IQN or NVMe subsystem NQN
    labelnullable stringuser assigned label
    Length: 1..64
    aliasstringiSCSI target alias
    Length: 0..64
    nvme:nqnstringtarget NQN
    nvme:nqn_basestringtarget NQN base
    nvme:nqn_suffixstringtarget NQN suffix
    account_idstringaccount id
    node_idstringstorage node id
    vss_idstringvirtual storage service id
    acl/profile_idstringprofile ref
    acl/privacystringprivacy permission level
    default: "no"
    one of:"yes" or "no"
    acl/discoverstringdiscovery permission level
    default: "no"
    one of:"yes" or "no"
    acl/accessstringaccess permission level
    default: "no"
    one of:"yes" or "no"
    luns/lunintegerSCSI logical unit number
    luns/vdisk_idstringno documentation
    lun_unitstringtarget LUN mapping table
    lun_minintegerminimum allowed lun value
    lun_maxintegermaximum allowed lun value
    notesnullable stringuser assigned notes
    Length: 0..256
    serialstringiSCSI target serial number
    automapbooleaniSCSI target supports automapped LUNS
    replicationbooleaniSCSI target is the virtual storage service replication target
    systembooleansystem target
    xmd_refsarrayarray of extensible metadata reference keys
    xrefstringarbitrary string reference
    Length: 1..256
    status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    status:detailnullable stringstatus detail
    sessionsnullable arrayarray of active iSCSI target sessions
    sessions/profile_idstringinitiator profile ID
    sessions/ini_idstringinitiator id
    sessions/isidintegeriSCSI session ID
    Range: value <= 281474976710660
    sessions/ini_aliasstringinitiator alias
    Length: 0..255
    sessions/tsihintegertarget session identifying handle
    Range: 0 <= value <= 65535
    sessions/ageintegersession age (in milliseconds)
    sessions/prm:max_connintegermax connections
    Range: 0 <= value <= 65535
    sessions/prm:erlvlintegererror recovery level
    Range: 0 <= value <= 2
    sessions/prm:immedbooleanimmediate data
    sessions/prm:init_r2tbooleaninitial R2T
    sessions/prm:inrd_databooleanIn Order Data
    sessions/prm:inrd_seqbooleanIn Order Sequence
    sessions/prm:fblintegerfirst burst length
    Range: 0 <= value <= 16777215
    sessions/prm:mblintegermaximum burst length
    Range: 0 <= value <= 16777215
    sessions/conns/cidintegerconnection ID
    Range: 0 <= value <= 65535
    sessions/conns/portintegerinitiator TCP port
    sessions/conns/hdr_digbooleanHeader Digest
    sessions/conns/dat_digbooleanData Digest
    sessions/conns/rcv_winintegerTCP Receive Window
    sessions/conns/latencyintegerlatency in milliseconds
    sessions/conns/sec_modestringsecurity mode
    one of:"insecure" or "ssl" or "ipsec"
    sessions/conns/ipsec:crypt_algstringcrypto algorithm
    sessions/conns/ipsec:auth_modestringauthentication cipher mode
    sessions/conns/ipsec:tunnelbooleantunnel mode
    sessions/conns/ipsec:auth_lenintegerauthentication key length
    sessions/conns/ipsec:auth_algstringauthentication algorithm
    sessions/conns/ipsec:crypt_lenintegercrypto key length
    sessions/conns/ipsec:crypt_modestringcrypto cipher mode
    sessions/conns/ssl:compbooleanis compressed
    sessions/conns/ssl:comp_algstringcompression algorithm
    sessions/conns/ssl:versionstringSSL version
    sessions/conns/peer_innernullable ipv4initiator IP address, tunnel mode inner
    sessions/conns/peer_outeripv4initiator IP address, public
    sessions/conns/host_innernullable ipv4target IP address, tunnel mode inner
    sessions/conns/host_outeripv4target IP address, public
    associationsnullable arrayarray of active NVMe target associations
    associations/subsys_ipipv4subsystem IP address
    associations/host_nqnstringhost NQN
    associations/ctimeintegercreation time (in epoch ms), local to storage node
    associations/host_idstringhexadecimal host ID
    associations/host_ipipv4host IP address
    associations/qpintegernumber of I/O queue pairs (excluding admin)
    Range: 0 <= value <= 256
    associations/cntlidintegercontroller id
    Range: value <= 65535
    associations/ioqintegernumber of I/O queue pairs (excluding admin)
    Range: 0 <= value <= 256
    session_numnullable integernumber of active sessions
    conn_numnullable integernumber of active connections
    portals/hostnamenullable hostnameiSCSI target portal DNS hostname
    Length: 0..1024
    portals/interfacenullable stringiSCSI target portal network interface
    portals/upnullable booleaniSCSI target portal network interface is up
    portals/speednullable integeriSCSI target portal network interface link speed
    portals/duplexnullable stringnetwork interface duplex
    one of:"half" or "full" or "unknown"
    portals/ipaddrs/addripv4iSCSI target portal ip address
    portals/ipaddrs/portintegeriSCSI target portal ip port
    portals/ipaddrs/familystringnetwork interface family
    one of:"IPv4" or "IPv6" or "unknown"
    portals/ipaddrs/detailstringiSCSI target portal ip detail
    portals/mtunullable integerno documentation
    portals/hwaddrnullable stringno documentation
    ppsnullable integeriSCSI PDUs per second
    xmd/idstringno documentation
    xmd/refstringarbitrary string reference key
    Length: 1..256
    xmd/mtimeintegerlast modified time of xmd
    Range: 0 <= value
    xmd/tagsarrayobject tags
    xmd/selfbooleanno documentation
    xmd/datanullable stringno documentation

    iSCSI Target Info

    Retrieve an existing iSCSI target.

    GET /target/{target_id_or_serial}
    

    Curl Example

    $ curl https://mgmt-node/api/target/target:9:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:13 GMT
    Server: Goliath
    ETag: "5ae9cdbab762724d8b51db3d56a92a80"
    Content-Type: application/json
    Content-Length: 1205
    
    {
      "id": "target:9:10",
      "uuid": "d8ca81fa-1729-4daa-b31b-10112b1b5f40",
      "serial": "TGT1D62194C406264C1",
      "evt_qry": "serial=TGT1D62194C406264C1",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "ctime": 1507570033125,
      "mtime": 1507570033582,
      "seq": 1507570033589,
      "label": "target",
      "notes": "target was updated",
      "status": {
        "indicator": "online",
        "value": "online",
        "detail": ""
      },
      "ec": {
        "status": "current",
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "dbg"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "seq": 1507570033144
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "iqn": "iqn.2009-12.com.blockbridge:t-pjxazxi-gbliafkm:target-1",
      "iqn_base": "iqn.2009-12.com.blockbridge:t-pjxazxi-",
      "iqn_suffix": "gbliafkm:target-1",
      "alias": "target-1",
      "acl": [
        {
          "profile_id": "initiator_profile:9:10",
          "privacy": "no",
          "discover": "yes",
          "access": "yes"
        }
      ],
      "luns": [
    
      ],
      "automap": true,
      "replication": false,
      "sessions": [
    
      ],
      "portals": [
        {
          "hostname": null,
          "interface": "eth0",
          "up": true,
          "speed": null,
          "duplex": null,
          "ipaddrs": [
            {
              "addr": "10.10.200.23",
              "port": 3260,
              "family": "IPv4"
            },
            {
              "addr": "fe80::f816:3eff:fe6a:7c79%eth0",
              "port": 3260,
              "family": "IPv6"
            }
          ]
        }
      ]
    }
    

    iSCSI Target List

    Enumerate iSCSI targets.

    GET /target
    

    Curl Example

    $ curl https://mgmt-node/api/target \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:13 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 1107
    
    [
      {
        "id": "target:9:10",
        "uuid": "d8ca81fa-1729-4daa-b31b-10112b1b5f40",
        "serial": "TGT1D62194C406264C1",
        "evt_qry": "serial=TGT1D62194C406264C1",
        "account_id": "account:1:10",
        "node_id": "node:10000",
        "vss_id": "vss:4:10",
        "ctime": 1507570033125,
        "mtime": 1507570033125,
        "seq": 1507570033144,
        "label": "target-1",
        "notes": null,
        "status": {
          "indicator": "online",
          "value": "online",
          "detail": ""
        },
        "ec": {
          "status": "current",
          "table": {
            "time": null,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "dbg"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "seq": 1507570033144
        },
        "rec_status": null,
        "xmd_refs": [
    
        ],
        "xref": null,
        "xmd": null,
        "iqn": "iqn.2009-12.com.blockbridge:t-pjxazxi-gbliafkm:target-1",
        "iqn_base": "iqn.2009-12.com.blockbridge:t-pjxazxi-",
        "iqn_suffix": "gbliafkm:target-1",
        "alias": "target-1",
        "acl": [
    
        ],
        "luns": [
    
        ],
        "automap": true,
        "replication": false,
        "sessions": [
    
        ],
        "portals": [
          {
            "hostname": null,
            "interface": "eth0",
            "up": true,
            "speed": null,
            "duplex": null,
            "ipaddrs": [
              {
                "addr": "10.10.200.23",
                "port": 3260,
                "family": "IPv4"
              },
              {
                "addr": "fe80::f816:3eff:fe6a:7c79%eth0",
                "port": 3260,
                "family": "IPv6"
              }
            ]
          }
        ]
      }
    ]
    

    iSCSI Target Create

    Create a new iSCSI target.

    POST /target
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | vss_id | string | virtual storage service id |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | label | nullable string | user assigned label
    Length: 1..64 | | xmd_refs | array | array of extensible metadata reference keys | | xref | nullable string | arbitrary string reference
    Length: 1..256 | | iqn_suffix | string | suffix for generated iSCSI target IQN
    pattern: ^[a-z0-9.-]*$
    Length: 0..223 | | alias | string | iSCSI target alias
    Length: 0..64 | | acl/profile_id | string | profile ref | | acl/privacy | string | privacy permission level
    default: "no"
    one of:"yes" or "no" | | acl/discover | string | discovery permission level
    default: "no"
    one of:"yes" or "no" | | acl/access | string | access permission level
    default: "no"
    one of:"yes" or "no" | | luns/lun | integer | SCSI logical unit number
    Range: 1 <= value <= 65535 | | luns/vdisk_id | string | no documentation | | notes | string | user assigned notes
    Length: 0..256 | | automap | boolean | target allows automap | | uuid | uuid | object UUID | | protocol | string | low-level storage protocol (task parameter)
    default: "iscsi"
    one of:"iscsi" or "nvme" | | nvme:nqn_suffix | string | target NQN suffix |

    Curl Example

    $ curl -X POST https://mgmt-node/api/target \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "vss_id": "vss:4:10"
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:27:13 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 1105
    
    {
      "id": "target:9:10",
      "uuid": "d8ca81fa-1729-4daa-b31b-10112b1b5f40",
      "serial": "TGT1D62194C406264C1",
      "evt_qry": "serial=TGT1D62194C406264C1",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "ctime": 1507570033125,
      "mtime": 1507570033125,
      "seq": 1507570033144,
      "label": "target-1",
      "notes": null,
      "status": {
        "indicator": "online",
        "value": "online",
        "detail": ""
      },
      "ec": {
        "status": "current",
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "dbg"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "seq": 1507570033144
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "iqn": "iqn.2009-12.com.blockbridge:t-pjxazxi-gbliafkm:target-1",
      "iqn_base": "iqn.2009-12.com.blockbridge:t-pjxazxi-",
      "iqn_suffix": "gbliafkm:target-1",
      "alias": "target-1",
      "acl": [
    
      ],
      "luns": [
    
      ],
      "automap": true,
      "replication": false,
      "sessions": [
    
      ],
      "portals": [
        {
          "hostname": null,
          "interface": "eth0",
          "up": true,
          "speed": null,
          "duplex": null,
          "ipaddrs": [
            {
              "addr": "10.10.200.23",
              "port": 3260,
              "family": "IPv4"
            },
            {
              "addr": "fe80::f816:3eff:fe6a:7c79%eth0",
              "port": 3260,
              "family": "IPv6"
            }
          ]
        }
      ]
    }
    

    iSCSI Target Remove

    Remove an existing iSCSI target.

    DELETE /target/{target_id_or_serial}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/target/target:9:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:33 GMT
    Server: Goliath
    

    iSCSI Target Update

    Change the configuration of an existing iSCSI target.

    PATCH /target/{target_id_or_serial}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | xmd_refs | array | array of extensible metadata reference keys | | acl/profile_id | string | profile ref | | acl/privacy | string | privacy permission level
    default: "no"
    one of:"yes" or "no" | | acl/discover | string | discovery permission level
    default: "no"
    one of:"yes" or "no" | | acl/access | string | access permission level
    default: "no"
    one of:"yes" or "no" | | luns/lun | integer | SCSI logical unit number
    Range: 1 <= value <= 65535 | | luns/vdisk_id | string | no documentation | | iqn_suffix | string | suffix for generated iSCSI target IQN
    pattern: ^[a-z0-9.-]*$
    Length: 0..223 | | label | nullable string | user assigned label
    Length: 1..64 | | alias | string | iSCSI target alias
    Length: 0..64 | | notes | string | user assigned notes
    Length: 0..256 | | automap | boolean | target allows automap | | nvme:nqn_suffix | string | target NQN suffix |

    Curl Example

    $ curl -X PATCH https://mgmt-node/api/target/target:9:10 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "label": "target",
      "notes": "target was updated",
      "acl": [
        {
          "profile_id": "initiator_profile:9:10",
          "discover": "yes",
          "access": "yes"
        }
      ]
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:13 GMT
    Server: Goliath
    ETag: "5ae9cdbab762724d8b51db3d56a92a80"
    Content-Type: application/json
    Content-Length: 1205
    
    {
      "id": "target:9:10",
      "uuid": "d8ca81fa-1729-4daa-b31b-10112b1b5f40",
      "serial": "TGT1D62194C406264C1",
      "evt_qry": "serial=TGT1D62194C406264C1",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "ctime": 1507570033125,
      "mtime": 1507570033582,
      "seq": 1507570033589,
      "label": "target",
      "notes": "target was updated",
      "status": {
        "indicator": "online",
        "value": "online",
        "detail": ""
      },
      "ec": {
        "status": "current",
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "dbg"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "seq": 1507570033144
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "iqn": "iqn.2009-12.com.blockbridge:t-pjxazxi-gbliafkm:target-1",
      "iqn_base": "iqn.2009-12.com.blockbridge:t-pjxazxi-",
      "iqn_suffix": "gbliafkm:target-1",
      "alias": "target-1",
      "acl": [
        {
          "profile_id": "initiator_profile:9:10",
          "privacy": "no",
          "discover": "yes",
          "access": "yes"
        }
      ],
      "luns": [
    
      ],
      "automap": true,
      "replication": false,
      "sessions": [
    
      ],
      "portals": [
        {
          "hostname": null,
          "interface": "eth0",
          "up": true,
          "speed": null,
          "duplex": null,
          "ipaddrs": [
            {
              "addr": "10.10.200.23",
              "port": 3260,
              "family": "IPv4"
            },
            {
              "addr": "fe80::f816:3eff:fe6a:7c79%eth0",
              "port": 3260,
              "family": "IPv6"
            }
          ]
        }
      ]
    }
    

    iSCSI Target LUN Map

    Map a virtual disk to an existing iSCSI target.

    PUT /target/{target_id_or_serial}/luns/{target_lun}
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | vdisk_id | string | virtual disk id |

    Curl Example

    $ curl -X PUT https://mgmt-node/api/target/target:9:10/luns/42 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "vdisk_id": "vdisk:5:10"
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:14 GMT
    Server: Goliath
    ETag: "e73a392ce22c0c304f56e7672f94c6d2"
    Content-Type: application/json
    Content-Length: 1248
    
    {
      "id": "target:9:10",
      "uuid": "d8ca81fa-1729-4daa-b31b-10112b1b5f40",
      "serial": "TGT1D62194C406264C1",
      "evt_qry": "serial=TGT1D62194C406264C1",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "ctime": 1507570033125,
      "mtime": 1507570034623,
      "seq": 1507570034635,
      "label": "target",
      "notes": "target was updated",
      "status": {
        "indicator": "online",
        "value": "online",
        "detail": ""
      },
      "ec": {
        "status": "current",
        "table": {
          "time": 1507570033000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                4,
                4,
                4,
                4
              ],
              "v": "dbg"
            },
            {
              "d": [
                4,
                4,
                4,
                4
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "seq": 1507570033773
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "iqn": "iqn.2009-12.com.blockbridge:t-pjxazxi-gbliafkm:target-1",
      "iqn_base": "iqn.2009-12.com.blockbridge:t-pjxazxi-",
      "iqn_suffix": "gbliafkm:target-1",
      "alias": "target-1",
      "acl": [
        {
          "profile_id": "initiator_profile:9:10",
          "privacy": "no",
          "discover": "yes",
          "access": "yes"
        }
      ],
      "luns": [
        {
          "lun": 42,
          "vdisk_id": "vdisk:5:10"
        }
      ],
      "automap": true,
      "replication": false,
      "sessions": [
    
      ],
      "portals": [
        {
          "hostname": null,
          "interface": "eth0",
          "up": true,
          "speed": null,
          "duplex": null,
          "ipaddrs": [
            {
              "addr": "10.10.200.23",
              "port": 3260,
              "family": "IPv4"
            },
            {
              "addr": "fe80::f816:3eff:fe6a:7c79%eth0",
              "port": 3260,
              "family": "IPv6"
            }
          ]
        }
      ]
    }
    

    iSCSI Target LUN Unmap

    Unmap a virtual disk from an existing iSCSI target.

    DELETE /target/{target_id_or_serial}/luns/{target_lun}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/target/target:9:10/luns/42 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:14 GMT
    Server: Goliath
    ETag: "08b9b2c937f4856727ceb00b5aa6f21b"
    Content-Type: application/json
    Content-Length: 1218
    
    {
      "id": "target:9:10",
      "uuid": "d8ca81fa-1729-4daa-b31b-10112b1b5f40",
      "serial": "TGT1D62194C406264C1",
      "evt_qry": "serial=TGT1D62194C406264C1",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "ctime": 1507570033125,
      "mtime": 1507570034898,
      "seq": 1507570034906,
      "label": "target",
      "notes": "target was updated",
      "status": {
        "indicator": "online",
        "value": "online",
        "detail": ""
      },
      "ec": {
        "status": "current",
        "table": {
          "time": 1507570034000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                10,
                10,
                10,
                10
              ],
              "v": "dbg"
            },
            {
              "d": [
                7,
                7,
                7,
                7
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "seq": 1507570034773
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "iqn": "iqn.2009-12.com.blockbridge:t-pjxazxi-gbliafkm:target-1",
      "iqn_base": "iqn.2009-12.com.blockbridge:t-pjxazxi-",
      "iqn_suffix": "gbliafkm:target-1",
      "alias": "target-1",
      "acl": [
        {
          "profile_id": "initiator_profile:9:10",
          "privacy": "no",
          "discover": "yes",
          "access": "yes"
        }
      ],
      "luns": [
    
      ],
      "automap": true,
      "replication": false,
      "sessions": [
    
      ],
      "portals": [
        {
          "hostname": null,
          "interface": "eth0",
          "up": true,
          "speed": null,
          "duplex": null,
          "ipaddrs": [
            {
              "addr": "10.10.200.23",
              "port": 3260,
              "family": "IPv4"
            },
            {
              "addr": "fe80::f816:3eff:fe6a:7c79%eth0",
              "port": 3260,
              "family": "IPv6"
            }
          ]
        }
      ]
    }
    

    iSCSI Target Disk Map

    Map a virtual disk to an existing iSCSI target.

    PUT /target/{target_id_or_serial}/disks/{vdisk_id_or_serial}
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | lun | integer | SCSI LUN assignment (automatic if unspecified)
    Range: 0 <= value <= 16384 |

    Curl Example

    $ curl -X PUT https://mgmt-node/api/target/target:9:10/disks/vdisk:5:10 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "vdisk_id": "vdisk:5:10"
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:14 GMT
    Server: Goliath
    ETag: "86fb0f31223eddb4d1dca5ff887c4ca5"
    Content-Type: application/json
    Content-Length: 1247
    
    {
      "id": "target:9:10",
      "uuid": "d8ca81fa-1729-4daa-b31b-10112b1b5f40",
      "serial": "TGT1D62194C406264C1",
      "evt_qry": "serial=TGT1D62194C406264C1",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "ctime": 1507570033125,
      "mtime": 1507570034021,
      "seq": 1507570034036,
      "label": "target",
      "notes": "target was updated",
      "status": {
        "indicator": "online",
        "value": "online",
        "detail": ""
      },
      "ec": {
        "status": "current",
        "table": {
          "time": 1507570033000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                4,
                4,
                4,
                4
              ],
              "v": "dbg"
            },
            {
              "d": [
                4,
                4,
                4,
                4
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "seq": 1507570033773
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "iqn": "iqn.2009-12.com.blockbridge:t-pjxazxi-gbliafkm:target-1",
      "iqn_base": "iqn.2009-12.com.blockbridge:t-pjxazxi-",
      "iqn_suffix": "gbliafkm:target-1",
      "alias": "target-1",
      "acl": [
        {
          "profile_id": "initiator_profile:9:10",
          "privacy": "no",
          "discover": "yes",
          "access": "yes"
        }
      ],
      "luns": [
        {
          "lun": 0,
          "vdisk_id": "vdisk:5:10"
        }
      ],
      "automap": true,
      "replication": false,
      "sessions": [
    
      ],
      "portals": [
        {
          "hostname": null,
          "interface": "eth0",
          "up": true,
          "speed": null,
          "duplex": null,
          "ipaddrs": [
            {
              "addr": "10.10.200.23",
              "port": 3260,
              "family": "IPv4"
            },
            {
              "addr": "fe80::f816:3eff:fe6a:7c79%eth0",
              "port": 3260,
              "family": "IPv6"
            }
          ]
        }
      ]
    }
    

    iSCSI Target Disk Unmap

    Unmap a virtual disk from an existing iSCSI target.

    DELETE /target/{target_id_or_serial}/disks/{vdisk_id_or_serial}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/target/target:9:10/disks/vdisk:5:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:14 GMT
    Server: Goliath
    ETag: "a78abd1ded3f410f336ef8ac17d46f73"
    Content-Type: application/json
    Content-Length: 1214
    
    {
      "id": "target:9:10",
      "uuid": "d8ca81fa-1729-4daa-b31b-10112b1b5f40",
      "serial": "TGT1D62194C406264C1",
      "evt_qry": "serial=TGT1D62194C406264C1",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "ctime": 1507570033125,
      "mtime": 1507570034331,
      "seq": 1507570034341,
      "label": "target",
      "notes": "target was updated",
      "status": {
        "indicator": "online",
        "value": "online",
        "detail": ""
      },
      "ec": {
        "status": "current",
        "table": {
          "time": 1507570033000,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                4,
                4,
                4,
                4
              ],
              "v": "dbg"
            },
            {
              "d": [
                4,
                4,
                4,
                4
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "seq": 1507570033773
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "iqn": "iqn.2009-12.com.blockbridge:t-pjxazxi-gbliafkm:target-1",
      "iqn_base": "iqn.2009-12.com.blockbridge:t-pjxazxi-",
      "iqn_suffix": "gbliafkm:target-1",
      "alias": "target-1",
      "acl": [
        {
          "profile_id": "initiator_profile:9:10",
          "privacy": "no",
          "discover": "yes",
          "access": "yes"
        }
      ],
      "luns": [
    
      ],
      "automap": true,
      "replication": false,
      "sessions": [
    
      ],
      "portals": [
        {
          "hostname": null,
          "interface": "eth0",
          "up": true,
          "speed": null,
          "duplex": null,
          "ipaddrs": [
            {
              "addr": "10.10.200.23",
              "port": 3260,
              "family": "IPv4"
            },
            {
              "addr": "fe80::f816:3eff:fe6a:7c79%eth0",
              "port": 3260,
              "family": "IPv6"
            }
          ]
        }
      ]
    }
    

    Snapshot

    You can take a point-in-time snapshot of a disk's contents to make a backup image, or to create a reference from which cloned disks may be created.

    Attributes

    NameTypeDescription
    idstringobject id
    uuiduuidobject uuid
    ctimeintegersnapshot create time
    Range: 0 <= value
    mtimeintegersnapshot last modified time
    Range: 0 <= value
    labelnullable stringuser assigned label
    Length: 1..64
    notesnullable stringuser assigned notes
    Length: 0..256
    tagsarrayobject tags
    vss_idstringvirtual storage service id
    node_idstringstorage node id
    account_idstringaccount id
    vdisk_idstringvirtual disk id
    serialstringsnapshot serial number
    capacitynullable integersnapshot capacity (in bytes)
    generationnullable integersnapshot generation
    timestampnullable integersnapshot timestamp
    Range: 0 <= value
    transientbooleansnapshot transient
    trashedbooleanwaiting for garbage collection
    xmd_refsarrayarray of extensible metadata reference keys
    xrefstringarbitrary string reference
    Length: 1..256
    vdisk_refs/idstringdependent vdisk id
    vdisk_refs/serialstringdependent vdisk serial
    vdisk_refs/labelnullable stringdependent vdisk label
    Length: 1..64
    status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    status:detailnullable stringstatus detail
    xmd/idstringno documentation
    xmd/refstringarbitrary string reference key
    Length: 1..256
    xmd/mtimeintegerlast modified time of xmd
    Range: 0 <= value
    xmd/tagsarrayobject tags
    xmd/selfbooleanno documentation
    xmd/datanullable stringno documentation

    Snapshot Info

    Retrieve an existing virtual disk snapshot.

    GET /snapshot/{snapshot_id_or_serial}
    

    Curl Example

    $ curl https://mgmt-node/api/snapshot/snapshot:2:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:17 GMT
    Server: Goliath
    ETag: "d258b47c5ce32ea12920122a602d2a1b"
    Content-Type: application/json
    Content-Length: 787
    
    {
      "id": "snapshot:2:10",
      "uuid": "a541db70-32fa-4f7d-b4a0-0edb93d391a6",
      "serial": "SNP3D62194C40626478",
      "evt_qry": "serial=SNP3D62194C40626478",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "vdisk_id": "vdisk:5:10",
      "ctime": 1507570037150,
      "mtime": 1507570037721,
      "seq": 1507570037742,
      "label": "snapshot",
      "notes": "snapshot name was updated",
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "v": "dbg",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "info",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "warn",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "err",
              "d": [
                0,
                0,
                0,
                0
              ]
            }
          ]
        },
        "status": "current",
        "seq": 1507570037213
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "vdisk_refs": [
    
      ],
      "tags": [
    
      ],
      "capacity": 1036871168,
      "generation": 1,
      "timestamp": 1507570037000
    }
    

    Snapshot List

    Enumerate virtual disk snapshots.

    GET /snapshot
    

    Curl Example

    $ curl https://mgmt-node/api/snapshot \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:17 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 768
    
    [
      {
        "id": "snapshot:2:10",
        "uuid": "a541db70-32fa-4f7d-b4a0-0edb93d391a6",
        "serial": "SNP3D62194C40626478",
        "evt_qry": "serial=SNP3D62194C40626478",
        "account_id": "account:1:10",
        "node_id": "node:10000",
        "vss_id": "vss:4:10",
        "vdisk_id": "vdisk:5:10",
        "ctime": 1507570037150,
        "mtime": 1507570037309,
        "seq": 1507570037322,
        "label": "snapshot-2",
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": null,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "v": "dbg",
                "d": [
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "v": "info",
                "d": [
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "v": "warn",
                "d": [
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "v": "err",
                "d": [
                  0,
                  0,
                  0,
                  0
                ]
              }
            ]
          },
          "status": "current",
          "seq": 1507570037213
        },
        "rec_status": null,
        "xmd_refs": [
    
        ],
        "xref": null,
        "xmd": null,
        "vdisk_refs": [
    
        ],
        "tags": [
    
        ],
        "capacity": 1036871168,
        "generation": 1,
        "timestamp": 1507570037000
      }
    ]
    

    Snapshot Create

    Create a new snapshot of the contents of an internal virtual disk.

    POST /snapshot
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | vdisk_id | string | virtual disk id |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | uuid | uuid | snapshot UUID | | xmd_refs | array | array of extensible metadata reference keys | | xref | string | arbitrary string reference
    Length: 1..256 | | label | nullable string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | tags | array | object tags | | transient | boolean | snapshot created for a transient clone |

    Curl Example

    $ curl -X POST https://mgmt-node/api/snapshot \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "vdisk_id": "vdisk:5:10"
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:27:17 GMT
    Server: Goliath
    ETag: "8187479d36ea0802a5d369cb80eff844"
    Content-Type: application/json
    Content-Length: 766
    
    {
      "id": "snapshot:2:10",
      "uuid": "a541db70-32fa-4f7d-b4a0-0edb93d391a6",
      "serial": "SNP3D62194C40626478",
      "evt_qry": "serial=SNP3D62194C40626478",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "vdisk_id": "vdisk:5:10",
      "ctime": 1507570037150,
      "mtime": 1507570037309,
      "seq": 1507570037322,
      "label": "snapshot-2",
      "notes": null,
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "v": "dbg",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "info",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "warn",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "err",
              "d": [
                0,
                0,
                0,
                0
              ]
            }
          ]
        },
        "status": "current",
        "seq": 1507570037213
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "vdisk_refs": [
    
      ],
      "tags": [
    
      ],
      "capacity": 1036871168,
      "generation": 1,
      "timestamp": 1507570037000
    }
    

    Snapshot Remove

    Remove an existing virtual disk snapshot. Once the snapshot has been removed, the storage node starts reclaiming user data blocks that are no longer needed for other snapshots or for the virtual disk itself.

    DELETE /snapshot/{snapshot_id_or_serial}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/snapshot/snapshot:2:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:33 GMT
    Server: Goliath
    

    Snapshot Update

    Change the configuration of an existing virtual disk snapshot.

    PATCH /snapshot/{snapshot_id_or_serial}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | label | nullable string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | xmd_refs | array | array of extensible metadata reference keys | | tags | array | object tags |

    Curl Example

    $ curl -X PATCH https://mgmt-node/api/snapshot/snapshot:2:10 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "label": "snapshot",
      "notes": "snapshot name was updated"
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:17 GMT
    Server: Goliath
    ETag: "d258b47c5ce32ea12920122a602d2a1b"
    Content-Type: application/json
    Content-Length: 787
    
    {
      "id": "snapshot:2:10",
      "uuid": "a541db70-32fa-4f7d-b4a0-0edb93d391a6",
      "serial": "SNP3D62194C40626478",
      "evt_qry": "serial=SNP3D62194C40626478",
      "account_id": "account:1:10",
      "node_id": "node:10000",
      "vss_id": "vss:4:10",
      "vdisk_id": "vdisk:5:10",
      "ctime": 1507570037150,
      "mtime": 1507570037721,
      "seq": 1507570037742,
      "label": "snapshot",
      "notes": "snapshot name was updated",
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "v": "dbg",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "info",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "warn",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "err",
              "d": [
                0,
                0,
                0,
                0
              ]
            }
          ]
        },
        "status": "current",
        "seq": 1507570037213
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "vdisk_refs": [
    
      ],
      "tags": [
    
      ],
      "capacity": 1036871168,
      "generation": 1,
      "timestamp": 1507570037000
    }
    

    Object Store

    The Object Store is endpoint and authentication configuration to support data backup to an object store such as Amazon S3 or OpenStack Swift.

    Attributes

    NameTypeDescription
    idstringobject id
    uuiduuidobject uuid
    ctimeintegerobject store create time
    Range: 0 <= value
    mtimeintegerobject store last modified time
    Range: 0 <= value
    serialstringobject store serial number
    labelnullable stringuser assigned label
    Length: 1..64
    notesnullable stringuser assigned notes
    Length: 0..256
    account_idstringaccount id
    location:countrystringISO 3166-1 alpha-3 country code
    default: ""
    location:latnumberlatitude
    default: 0
    location:longnumberlongitude
    default: 0
    location:citystringcity
    default: ""
    location:statestringstate as two-character USPS abbreviation
    default: ""
    verified:statusstringverified status
    one of:"unverified" or "success" or "failed"
    verified:timenullable integerlast verified time
    Range: 0 <= value
    verified:detailstringverified detail
    typestringobject store type
    one of:"s3"
    bucket_namestringbucket name
    host_namenullable stringhost name
    protocolnullable stringprotocol
    uri_stylenullable stringuri style
    access_key_idnullable stringaccess key id
    secret_access_key_setbooleansecret access key is set
    security_token_setbooleansecurity token is set
    default_wkey_password_setbooleandefault wkey password is set
    status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    status:detailnullable stringstatus detail

    Object Store Info

    Retrieve an existing object store definition.

    GET /obj-store/{obj_store_id_or_serial}
    

    Curl Example

    $ curl https://mgmt-node/api/obj-store/obj_store:7:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:54 GMT
    Server: Goliath
    ETag: "9b23b33078e4daada733eecef0802e36"
    Content-Type: application/json
    Content-Length: 888
    
    {
      "id": "obj_store:7:10",
      "uuid": "01299a26-ac49-4db0-b2e8-a3d78cd92a8a",
      "serial": "OBJ4562194C4062642E",
      "evt_qry": "serial=OBJ4562194C4062642E",
      "account_id": "account:1:10",
      "ctime": 1507570013691,
      "mtime": 1507570014086,
      "seq": 1507570014094,
      "label": "cambridge bucket",
      "notes": null,
      "status": {
        "indicator": "online",
        "value": "online",
        "detail": ""
      },
      "ec": {
        "status": "current",
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "dbg"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "seq": 1507570013715
      },
      "rec_status": null,
      "type": [
        "s3"
      ],
      "location": {
        "country": "",
        "lat": 0,
        "long": 0,
        "city": "",
        "state": ""
      },
      "bucket_name": "bb-api-ox-test",
      "host_name": "ceph-s3.localnet:7480",
      "protocol": "http",
      "uri_style": "path",
      "access_key_id": "AWPTG56F131EAZIFSD04",
      "secret_access_key_set": true,
      "security_token_set": false,
      "default_wkey_password_set": true
    }
    

    Object Store List

    Enumerate object stores.

    GET /obj-store
    

    Curl Example

    $ curl https://mgmt-node/api/obj-store \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:53 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 889
    
    [
      {
        "id": "obj_store:7:10",
        "uuid": "01299a26-ac49-4db0-b2e8-a3d78cd92a8a",
        "serial": "OBJ4562194C4062642E",
        "evt_qry": "serial=OBJ4562194C4062642E",
        "account_id": "account:1:10",
        "ctime": 1507570013691,
        "mtime": 1507570013728,
        "seq": 1507570013734,
        "label": "object-store-1",
        "notes": null,
        "status": {
          "indicator": "online",
          "value": "online",
          "detail": ""
        },
        "ec": {
          "status": "current",
          "table": {
            "time": null,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "dbg"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "info"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "warn"
              },
              {
                "d": [
                  0,
                  0,
                  0,
                  0
                ],
                "v": "err"
              }
            ]
          },
          "seq": 1507570013715
        },
        "rec_status": null,
        "type": [
          "s3"
        ],
        "location": {
          "country": "",
          "lat": 0,
          "long": 0,
          "city": "",
          "state": ""
        },
        "bucket_name": "bb-api-ox-test",
        "host_name": "ceph-s3.localnet:7480",
        "protocol": "http",
        "uri_style": "path",
        "access_key_id": "AWPTG56F131EAZIFSD04",
        "secret_access_key_set": true,
        "security_token_set": false,
        "default_wkey_password_set": false
      }
    ]
    

    Object Store List backups

    Enumerate backups on an object-store.

    GET /obj-store/{obj_store_id_or_serial}/backups
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | max_results | integer | maximum number of results to return
    default: 256 | | token | nullable string | continuation token for paged enumeration |

    Curl Example

    $ curl https://mgmt-node/api/obj-store/obj_store:7:10/backups \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:18 GMT
    Server: Goliath
    etag: "e71373c6a95370dc4c015178e4247af3c075035cfab70e1ff1dc5614b4a9b500"
    Content-Type: application/json
    Content-Length: 2289
    
    [
      {
        "id": "a541db70-32fa-4f7d-b4a0-0edb93d391a6",
        "key": "a541db70-32fa-4f7d-b4a0-0edb93d391a6",
        "short_id": "snap-0edb93d391a6",
        "uuid": "8f729850-7cec-445d-92c2-65e9878d1946",
        "mode": "full",
        "progress": 100,
        "phase": "complete",
        "capacity": 1036871168,
        "size": 0,
        "comp_size": 0,
        "started_at": "2017-10-09T17:27+00:00",
        "completed_at": "2017-10-09T17:27+00:00",
        "description": "snap-0edb93d391a6 988.8 MiB"
      },
      {
        "id": "feb3e7d4-ad17-4f03-b249-d07c34f766d9",
        "key": "feb3e7d4-ad17-4f03-b249-d07c34f766d9",
        "short_id": "snap-d07c34f766d9",
        "uuid": "fb799644-033d-4ee1-bda1-30702f93cfaf",
        "mode": "full",
        "progress": 100,
        "phase": "complete",
        "capacity": 2073741824,
        "size": 0,
        "comp_size": 0,
        "started_at": "2017-08-06T02:35+00:00",
        "completed_at": "2017-08-06T02:35+00:00",
        "description": "snap-d07c34f766d9 1.9 GiB"
      },
      {
        "id": "ff97c7a7-1017-4a26-bc82-180b01efcecc",
        "key": "ff97c7a7-1017-4a26-bc82-180b01efcecc",
        "short_id": "snap-180b01efcecc",
        "uuid": "46d16646-4dc1-4b24-90a0-7fd578ada189",
        "mode": "full",
        "progress": 100,
        "phase": "complete",
        "capacity": 2073741824,
        "size": 0,
        "comp_size": 0,
        "started_at": "2017-06-28T09:39+00:00",
        "completed_at": "2017-06-28T09:39+00:00",
        "description": "snap-180b01efcecc 1.9 GiB"
      },
      {
        "id": "ffb1bfa2-da49-44e0-ab97-8d23577f4120",
        "key": "ffb1bfa2-da49-44e0-ab97-8d23577f4120",
        "short_id": "snap-8d23577f4120",
        "uuid": "895c0c59-5783-4e8f-9172-71b08c29f547",
        "mode": "full",
        "progress": 100,
        "phase": "complete",
        "capacity": 2073741824,
        "size": 0,
        "comp_size": 0,
        "started_at": "2017-06-14T05:53+00:00",
        "completed_at": "2017-06-14T05:53+00:00",
        "description": "snap-8d23577f4120 1.9 GiB"
      },
      {
        "id": "ffe1af43-e70c-40cc-81dd-c634c136b469",
        "key": "ffe1af43-e70c-40cc-81dd-c634c136b469",
        "short_id": "snap-c634c136b469",
        "uuid": "f4a4bc05-af59-4de3-bf08-7e7236bceb2f",
        "mode": "full",
        "progress": 100,
        "phase": "complete",
        "capacity": 2073741824,
        "size": 0,
        "comp_size": 0,
        "started_at": "2017-06-20T07:44+00:00",
        "completed_at": "2017-06-20T07:44+00:00",
        "description": "snap-c634c136b469 1.9 GiB"
      },
      {
        "id": "ffe32972-dca1-4f51-8567-33c1848461d7",
        "key": "ffe32972-dca1-4f51-8567-33c1848461d7",
        "short_id": "snap-33c1848461d7",
        "uuid": "35816b72-9ebb-4e38-b5c1-3328e44f6ce8",
        "mode": "full",
        "progress": 100,
        "phase": "complete",
        "capacity": 2073741824,
        "size": 0,
        "comp_size": 0,
        "started_at": "2017-07-18T11:07+00:00",
        "completed_at": "2017-07-18T11:07+00:00",
        "description": "snap-33c1848461d7 1.9 GiB"
      }
    ]
    

    Object Store Remove backup

    Delete a backup from an object-store.

    DELETE /obj-store/{obj_store_id_or_serial}/backups/{obj_store_backup_id}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | force | boolean | remove in-progress backup |

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/obj-store/obj_store:7:10/backups/a541db70-32fa-4f7d-b4a0-0edb93d391a6 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:18 GMT
    Server: Goliath
    

    Object Store Create

    Create an object store definition.

    POST /obj-store
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | bucket_name | string | bucket name | | host_name | string | host name |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | type | string | object store type
    default: "s3"
    one of:"s3" | | access_key_id | nullable string | access key id | | secret_access_key | nullable string | secret access key | | security_token | nullable string | security token | | label | nullable string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | uuid | uuid | object UUID | | protocol | nullable string | object store protocol
    default: "http"
    one of:"http" or "https" | | uri_style | nullable string | object store uri style
    default: "path"
    one of:"virtual_host" or "path" | | location:country | string | ISO 3166-1 alpha-3 country code
    default: "" | | location:lat | number | latitude
    default: 0 | | location:long | number | longitude
    default: 0 | | location:city | string | city
    default: "" | | location:state | string | state as two-character USPS abbreviation
    default: "" | | default_wkey_password | nullable string | default wrap key passphrase
    Length: 1..128 |

    Curl Example

    $ curl -X POST https://mgmt-node/api/obj-store \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "bucket_name": "bb-api-ox-test",
      "access_key_id": "AWPTG56F131EAZIFSD04",
      "secret_access_key": "w8SLNWrqDOfCIgJmYc39kQlFnDtqrT384e95JLNr",
      "host_name": "ceph-s3.localnet:7480"
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:26:53 GMT
    Server: Goliath
    ETag: "732b13e01fedb77d53fd884cfd646c25"
    Content-Type: application/json
    Content-Length: 887
    
    {
      "id": "obj_store:7:10",
      "uuid": "01299a26-ac49-4db0-b2e8-a3d78cd92a8a",
      "serial": "OBJ4562194C4062642E",
      "evt_qry": "serial=OBJ4562194C4062642E",
      "account_id": "account:1:10",
      "ctime": 1507570013691,
      "mtime": 1507570013728,
      "seq": 1507570013734,
      "label": "object-store-1",
      "notes": null,
      "status": {
        "indicator": "online",
        "value": "online",
        "detail": ""
      },
      "ec": {
        "status": "current",
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "dbg"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "seq": 1507570013715
      },
      "rec_status": null,
      "type": [
        "s3"
      ],
      "location": {
        "country": "",
        "lat": 0,
        "long": 0,
        "city": "",
        "state": ""
      },
      "bucket_name": "bb-api-ox-test",
      "host_name": "ceph-s3.localnet:7480",
      "protocol": "http",
      "uri_style": "path",
      "access_key_id": "AWPTG56F131EAZIFSD04",
      "secret_access_key_set": true,
      "security_token_set": false,
      "default_wkey_password_set": false
    }
    

    Object Store Remove

    Remove an obj_store definition.

    DELETE /obj-store/{obj_store_id_or_serial}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/obj-store/obj_store:7:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:18 GMT
    Server: Goliath
    

    Object Store Update

    Change the configuration of an existing object store definition.

    PATCH /obj-store/{obj_store_id_or_serial}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | label | nullable string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | bucket_name | string | bucket name | | host_name | nullable string | host name | | access_key_id | nullable string | access key id | | secret_access_key | nullable string | secret access key | | security_token | nullable string | security token | | protocol | nullable string | object store protocol
    one of:"http" or "https" | | location:country | string | ISO 3166-1 alpha-3 country code
    default: "" | | location:lat | number | latitude
    default: 0 | | location:long | number | longitude
    default: 0 | | location:city | string | city
    default: "" | | location:state | string | state as two-character USPS abbreviation
    default: "" | | type | string | object store type
    one of:"s3" | | uri_style | nullable string | object store uri style
    one of:"virtual_host" or "path" | | default_wkey_password | nullable string | default wrap key passphrase
    Length: 1..128 |

    Curl Example

    $ curl -X PATCH https://mgmt-node/api/obj-store/obj_store:7:10 \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "label": "cambridge bucket",
      "default_wkey_password": "foo"
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:54 GMT
    Server: Goliath
    ETag: "896f26b4fa665453b063a7bc96d80cea"
    Content-Type: application/json
    Content-Length: 910
    
    {
      "id": "obj_store:7:10",
      "uuid": "01299a26-ac49-4db0-b2e8-a3d78cd92a8a",
      "serial": "OBJ4562194C4062642E",
      "evt_qry": "serial=OBJ4562194C4062642E",
      "account_id": "account:1:10",
      "ctime": 1507570013691,
      "mtime": 1507570014048,
      "seq": 1507570014053,
      "label": "cambridge bucket",
      "notes": null,
      "status": {
        "indicator": "degraded",
        "value": "degraded",
        "detail": "needs verification"
      },
      "ec": {
        "status": "current",
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "dbg"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "info"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "warn"
            },
            {
              "d": [
                0,
                0,
                0,
                0
              ],
              "v": "err"
            }
          ]
        },
        "seq": 1507570013715
      },
      "rec_status": null,
      "type": [
        "s3"
      ],
      "location": {
        "country": "",
        "lat": 0,
        "long": 0,
        "city": "",
        "state": ""
      },
      "bucket_name": "bb-api-ox-test",
      "host_name": "ceph-s3.localnet:7480",
      "protocol": "http",
      "uri_style": "path",
      "access_key_id": "AWPTG56F131EAZIFSD04",
      "secret_access_key_set": true,
      "security_token_set": false,
      "default_wkey_password_set": true
    }
    

    Events

    The Blockbridge system maintains an extensive audit history of administrative actions and status changes for each configuration object. These events have a descriptive symbol, such as TARGET_LOGIN and several additional qualifiers, such as the ID and serial number of the affected objects, and in some cases the iSCSI initiator IQN, or the user's name.

    Requesting events from the REST API opens a distributed query to retrieve events from throughout the Blockbridge managment network. If the response doesn't indicate end-of-file (eof), then increase the number of desired results with the num parameter, or shorten the specified time range.

    Attributes

    NameTypeDescription
    eofbooleanend of results
    batch/cstringcookie
    batch/eofbooleanend of results
    batch/dintegerprocess ID
    batch/garrayclassification tags
    batch/fstringtruncated source file
    batch/istringprimary context id (pcid)
    batch/hintegerHA cluster logical node ID
    batch/kintegerquery sequence number
    batch/mstringformatted message string
    batch/lintegersource file line
    batch/nstringnode ID
    batch/qintegersequence number
    batch/sstringmessage symbol
    batch/rintegerreference sequence number
    batch/tintegermilliseconds since epoch
    Range: 0 <= value
    batch/ystringdata type, set to 'e' for events
    one of:"l" or "e" or "c" or "s" or "m" or "h"
    batch/pstringprocess
    one of:"unk" or "mp" or "cp" or "dcp" or "sp" or "con" or "slp" or "mlp" or "dlp" or "sl" or "ml" or "dl" or "dc" or "mclmon" or "sclmon" or "da" or "ha"
    batch/pistringprimary ID
    batch/bnullable stringcontext block
    batch/vstringmessage severity
    one of:"dev" or "dbg" or "info" or "note" or "warn" or "err" or "crit" or "alrt"
    batch/xintegerSP complex ID

    Events Query Account

    Retrieve all events for the requestor's account.

    GET /events
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | tstart | integer | start time for query in milliseconds since epoch
    Range: 0 <= value | | num | integer | number of events to return
    Range: 1 <= value <= 8192 |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | tend | integer | end time for query in milliseconds since epoch (0 or unspecified for now)
    default: 0
    Range: 0 <= value | | sev | string | minimum event severity
    default: "info"
    one of:"dbg" or "info" or "note" or "warn" or "err" |

    Curl Example

    $ curl https://mgmt-node/api/events/account:10:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -G \
      -d num=2 \
      -d sev=info \
      -d tstart=0
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:40 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 23
    
    {
      "batch": [
    
      ],
      "eof": true
    }
    

    Events Query

    Retrieve user and administrative events for the specified id or serial number. Any type of id or serial number may be specified in place of {events_identity}.

    GET /events/{events_identity}
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | tstart | integer | start time for query in milliseconds since epoch
    Range: 0 <= value | | num | integer | number of events to return
    Range: 1 <= value <= 8192 |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | tend | integer | end time for query in milliseconds since epoch (0 or unspecified for now)
    default: 0
    Range: 0 <= value | | sev | string | minimum event severity
    default: "info"
    one of:"dbg" or "info" or "note" or "warn" or "err" |

    Curl Example

    $ curl https://mgmt-node/api/events \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -G \
      -d num=2 \
      -d sev=info \
      -d tstart=0
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:40 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 1196
    
    {
      "batch": [
        {
          "c": "e1507569969.226.010bcc:me5e01082d:a",
          "d": 14830,
          "g": [
            "task"
          ],
          "f": "v-create",
          "i": "node:10000",
          "k": 1,
          "m": " ",
          "l": 105,
          "n": "node:10",
          "q": 68556,
          "s": "OS_DEVICE_CREATE_INTERNAL_ERROR",
          "t": 1507569969226,
          "y": "e",
          "p": "mp",
          "pi": "os_device",
          "b": {
            "account.id": "account:1:10",
            "user.id": "user_profile:1:10",
            "user.serial": "USR1B62194C40626440",
            "user.login": "system",
            "user.ipaddr": "172.16.5.200",
            "task.id": "ptask:228:10",
            "task.serial": "TSK0A62194C40626A14",
            "node.id": "node:10000",
            "node.serial": "NOD0F68194C40601558",
            "os_device.id": "os_dev:13:10",
            "os_device.serial": "OSD0D62194C40626481"
          },
          "v": "err"
        },
        {
          "c": "e1507567945.502.009200:me5e01082d:a",
          "d": 14830,
          "g": [
            "task"
          ],
          "f": "v-create",
          "i": "node:10000",
          "k": 2,
          "m": " ",
          "l": 105,
          "n": "node:10",
          "q": 37376,
          "s": "OS_DEVICE_CREATE_INTERNAL_ERROR",
          "t": 1507567945502,
          "y": "e",
          "p": "mp",
          "pi": "os_device",
          "b": {
            "account.id": "account:1:10",
            "user.id": "user_profile:1:10",
            "user.serial": "USR1B62194C40626440",
            "user.login": "system",
            "user.ipaddr": "172.16.5.200",
            "task.id": "ptask:107:10",
            "task.serial": "TSK0A62194C406262EA",
            "node.id": "node:10000",
            "node.serial": "NOD0F68194C40601558",
            "os_device.id": "os_dev:9:10",
            "os_device.serial": "OSD0D62194C406264C0"
          },
          "v": "err"
        }
      ],
      "eof": false
    }
    

    Statistics

    Blockbridge storage nodes keep a long history of how the node's storage resources have been used over time. You can retrieve time-series information information such as block usage for virtual disks, IOPS, or write bandwidth for various types of resources.

    These statistics are grouped into snapshots of related data points called statistics blocks. Available statistics block types include:

    • vdisk_history: read/write bandwidth, I/O size histograms, IOPS and storage consumption for virtual disks
    • target_history: read/write bandwidth and IOPS, iSCSI PDUs sent and received for iSCSI targets
    • vss_history: storage consumption and IOPS usage for virtual storage services
    • sys_ds_history: storage consumption, IOPS, and other performance metrics for system datastores
    • node_usage_history: counters for devices, services, virtual disks, snapshots, etc. for a storage node

    Requesting statistics from the REST API opens a query internally to the appropriate storage node. The statistics are reuturned in reverse time order, starting from tend. If the response doesn't indicate end-of-file (eof), then increase the number of desired results with the num parameter, or shorten the specified time range.

    Attributes

    NameTypeDescription
    eofbooleanend of results
    batch/astringaccount/admin ID
    batch/cstringcookie
    batch/eofbooleanend of results
    batch/enullable stringextended key
    batch/dnullable stringstatistics block sub-object, see additional notes
    batch/rtbooleandata point obtained in real time (open-ended query only)
    batch/kintegerquery sequence number
    batch/ostringobject OID
    batch/nstringnode ID
    batch/tintegermilliseconds since epoch for measurement
    Range: 0 <= value
    batch/ystringdata type, set to 's' for statistics
    one of:"l" or "e" or "c" or "s" or "m" or "h"
    batch/xstringstatistics block type

    Statistics Query

    Retrieve statistics for the specified id or serial number. Any type of id or serial number may be specified in place of {stats_identity}.

    GET /stats/{stats_identity}
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | tstart | integer | start time for query in milliseconds since epoch
    Range: 0 <= value | | period | integer | resolution to return data, in milliseconds (0 for all data)
    Range: 0 <= value | | num | integer | number of data points to return
    Range: 1 <= value <= 8192 |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | tend | integer | end time for query in milliseconds since epoch (0 or unspecified for now)
    default: 0
    Range: 0 <= value |

    Curl Example

    $ curl https://mgmt-node/api/stats/vdisk:5:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -G \
      -d num=2 \
      -d period=0 \
      -d tstart=0
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:33 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 314
    
    {
      "batch": [
        {
          "a": "account:1:10",
          "c": "x1507570024.225.1f0a000000000050.0 20:900000000027100",
          "d": {
            "rb": 0,
            "wb": 0,
            "ub": 0,
            "ro": 0,
            "wo": 0,
            "oo": 0,
            "i": 0,
            "rst": 0,
            "rsto": 0,
            "wst": 0,
            "wsto": 0,
            "tt": 0,
            "dt": 0,
            "qs": 0,
            "qsz": 0,
            "qes": 0
          },
          "k": 1,
          "o": "vdisk:5:10",
          "n": "node:10000",
          "t": 1507570024225,
          "y": "s",
          "x": "vdisk_history"
        }
      ],
      "eof": true
    }
    

    Extensible Metadata Record

    The Extensible Metadata Record provides a way for applications to store free-form data in the Blockbridge management node. The data can include information of use to the client itself, to other clients, or to the storage administrator. The data can be associated with another object such as a virtual disk or service, so that it is removed when the associated object is deleted.

    Attributes

    NameTypeDescription
    idstringobject id
    uuiduuidobject uuid
    ctimeintegerextensible metadata create time
    Range: 0 <= value
    mtimeintegerextensible metadata last modified time
    Range: 0 <= value
    serialstringextensible metadata serial number
    labelnullable stringuser assigned label
    Length: 1..64
    account_idnullable stringaccount id
    vss_idnullable stringoptional vss ref
    refstringarbitrary string reference key
    Length: 1..256
    publishbooleanno documentation
    typenullable stringno documentation
    notesnullable stringuser assigned notes
    Length: 0..256
    tagsarrayobject tags
    ext_statusnullable objectexternal application status
    ext_status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    ext_status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    ext_status:detailnullable stringstatus detail
    datanullable objectapplication-supplied data
    systembooleansystem xmd
    xmd_refsarrayarray of extensible metadata reference keys
    xrefstringarbitrary string reference
    Length: 1..256
    status:indicatorstringstatus indicator
    one of:"online" or "degraded" or "offline" or "na"
    status:valuestringstatus value
    one of:"online" or "degraded" or "offline" or "pending" or "payment"
    status:detailnullable stringstatus detail
    rdeps/idstringdependent object id
    rdeps/serialstringdependent object serial number
    rdeps/labelnullable stringdependent object label
    rdeps/refstringdependent object reference key
    Length: 1..256
    rdeps/typestringdependent object type
    rdeps/selfbooleandependent object references itself
    xmd/idstringno documentation
    xmd/refstringarbitrary string reference key
    Length: 1..256
    xmd/mtimeintegerlast modified time of xmd
    Range: 0 <= value
    xmd/tagsarrayobject tags
    xmd/selfbooleanno documentation
    xmd/datanullable stringno documentation

    Extensible Metadata Record Info

    Retrieve an existing external metadata object.

    GET /xmd/{xmd_id_or_serial_or_ref}
    

    Curl Example

    $ curl https://mgmt-node/api/xmd/xmd:7:10 \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:39 GMT
    Server: Goliath
    ETag: "eb42871915d000bae233234b8619454c"
    Content-Type: application/json
    Content-Length: 709
    
    {
      "id": "xmd:7:10",
      "uuid": "ff89ac1c-f779-4f41-be78-60bb62492d61",
      "serial": "XMD3962194C4062642D",
      "evt_qry": null,
      "account_id": "account:1:10",
      "ctime": 1507570059641,
      "mtime": 1507570059642,
      "seq": 1507570059689,
      "label": null,
      "notes": null,
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "v": "dbg",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "info",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "warn",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "err",
              "d": [
                0,
                0,
                0,
                0
              ]
            }
          ]
        },
        "status": "current",
        "seq": 1507570059689
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "ref": "68d89b8c-75a9-484b-ac9f-99e1984a706f",
      "tags": [
    
      ],
      "data": {
        "example": {
          "data": {
          },
          "_schema": "terminal"
        }
      },
      "ext_status": null,
      "rdeps": [
    
      ]
    }
    

    Extensible Metadata Record List

    Enumerate extensible metadata objects.

    GET /xmd
    

    Curl Example

    $ curl https://mgmt-node/api/xmd \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:39 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 711
    
    [
      {
        "id": "xmd:7:10",
        "uuid": "ff89ac1c-f779-4f41-be78-60bb62492d61",
        "serial": "XMD3962194C4062642D",
        "evt_qry": null,
        "account_id": "account:1:10",
        "ctime": 1507570059641,
        "mtime": 1507570059642,
        "seq": 1507570059689,
        "label": null,
        "notes": null,
        "status": {
          "value": "online",
          "indicator": "online",
          "detail": ""
        },
        "ec": {
          "table": {
            "time": null,
            "hdrs": [
              3600000,
              86400000,
              604800000,
              2629800000
            ],
            "rows": [
              {
                "v": "dbg",
                "d": [
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "v": "info",
                "d": [
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "v": "warn",
                "d": [
                  0,
                  0,
                  0,
                  0
                ]
              },
              {
                "v": "err",
                "d": [
                  0,
                  0,
                  0,
                  0
                ]
              }
            ]
          },
          "status": "current",
          "seq": 1507570059689
        },
        "rec_status": null,
        "xmd_refs": [
    
        ],
        "xref": null,
        "xmd": null,
        "ref": "68d89b8c-75a9-484b-ac9f-99e1984a706f",
        "tags": [
    
        ],
        "data": {
          "example": {
            "data": {
            },
            "_schema": "terminal"
          }
        },
        "ext_status": null,
        "rdeps": [
    
        ]
      }
    ]
    

    Extensible Metadata Record Create

    Create an extensible metadata object.

    POST /xmd
    

    Required Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | ref | string | arbitrary string reference key
    Length: 1..256 |

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | vss_id | string | virtual storage service id | | xmd_refs | array | array of extensible metadata reference keys | | xref | nullable string | arbitrary string reference
    Length: 1..256 | | label | nullable string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | tags | array | object tags | | ext_status:indicator | string | status indicator
    one of:"online" or "degraded" or "offline" or "na" | | ext_status:value | string | status value
    one of:"online" or "degraded" or "offline" or "pending" or "payment" | | ext_status:detail | nullable string | status detail | | uuid | uuid | object UUID | | replace | boolean | replace existing xmd ref | | type | nullable string | no documentation | | publish | boolean | publish xmd |

    Curl Example

    $ curl -X POST https://mgmt-node/api/xmd \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "ref": "68d89b8c-75a9-484b-ac9f-99e1984a706f",
      "data": {
        "example": {
          "data": {
          },
          "_schema": "terminal"
        }
      }
    }'
    

    Response Example

    201 Created
    Date: Mon, 09 Oct 2017 17:27:39 GMT
    Server: Goliath
    ETag: "eb42871915d000bae233234b8619454c"
    Content-Type: application/json
    Content-Length: 709
    
    {
      "id": "xmd:7:10",
      "uuid": "ff89ac1c-f779-4f41-be78-60bb62492d61",
      "serial": "XMD3962194C4062642D",
      "evt_qry": null,
      "account_id": "account:1:10",
      "ctime": 1507570059641,
      "mtime": 1507570059642,
      "seq": 1507570059689,
      "label": null,
      "notes": null,
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "v": "dbg",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "info",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "warn",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "err",
              "d": [
                0,
                0,
                0,
                0
              ]
            }
          ]
        },
        "status": "current",
        "seq": 1507570059689
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "ref": "68d89b8c-75a9-484b-ac9f-99e1984a706f",
      "tags": [
    
      ],
      "data": {
        "example": {
          "data": {
          },
          "_schema": "terminal"
        }
      },
      "ext_status": null,
      "rdeps": [
    
      ]
    }
    

    Extensible Metadata Record Remove

    Remove an extensible metadata object.

    DELETE /xmd/{xmd_id_or_serial_or_ref}
    

    Curl Example

    $ curl -X DELETE https://mgmt-node/api/xmd/68d89b8c-75a9-484b-ac9f-99e1984a706f \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg"
    

    Response Example

    204 No Content
    Date: Mon, 09 Oct 2017 17:27:40 GMT
    Server: Goliath
    

    Extensible Metadata Record Update

    Change an extensible metadata object.

    PATCH /xmd/{xmd_id_or_serial_or_ref}
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | noent_action | string | response when metadata record not found
    default: "fail"
    one of:"fail" or "success" or "create" | | mode | string | update mode
    default: "replace"
    one of:"replace" or "merge" or "patch" | | xmd_refs | array | array of extensible metadata reference keys | | label | nullable string | user assigned label
    Length: 1..64 | | notes | string | user assigned notes
    Length: 0..256 | | tags | array | object tags | | ext_status:indicator | string | status indicator
    one of:"online" or "degraded" or "offline" or "na" | | ext_status:value | string | status value
    one of:"online" or "degraded" or "offline" or "pending" or "payment" | | ext_status:detail | nullable string | status detail | | vss_id | string | vss id | | uuid | uuid | object UUID | | type | nullable string | no documentation | | xref | nullable string | arbitrary string reference
    Length: 1..256 | | publish | boolean | publish xmd | | new_ref | string | arbitrary string reference key
    Length: 1..256 |

    Curl Example

    $ curl -X PATCH https://mgmt-node/api/xmd/68d89b8c-75a9-484b-ac9f-99e1984a706f \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -d \
    '{
      "data": [
        {
          "path": "/example/data/lines",
          "value": [
            "Linux client 2.6.32-431.29.2.el6.x86_64"
          ],
          "op": "add"
        }
      ],
      "mode": "patch"
    }'
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:27:40 GMT
    Server: Goliath
    ETag: "ff6827d4a5ba87024776fe031e07ecbe"
    Content-Type: application/json
    Content-Length: 760
    
    {
      "id": "xmd:7:10",
      "uuid": "ff89ac1c-f779-4f41-be78-60bb62492d61",
      "serial": "XMD3962194C4062642D",
      "evt_qry": null,
      "account_id": "account:1:10",
      "ctime": 1507570059641,
      "mtime": 1507570060134,
      "seq": 1507570060146,
      "label": null,
      "notes": null,
      "status": {
        "value": "online",
        "indicator": "online",
        "detail": ""
      },
      "ec": {
        "table": {
          "time": null,
          "hdrs": [
            3600000,
            86400000,
            604800000,
            2629800000
          ],
          "rows": [
            {
              "v": "dbg",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "info",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "warn",
              "d": [
                0,
                0,
                0,
                0
              ]
            },
            {
              "v": "err",
              "d": [
                0,
                0,
                0,
                0
              ]
            }
          ]
        },
        "status": "current",
        "seq": 1507570059689
      },
      "rec_status": null,
      "xmd_refs": [
    
      ],
      "xref": null,
      "xmd": null,
      "ref": "68d89b8c-75a9-484b-ac9f-99e1984a706f",
      "tags": [
    
      ],
      "data": {
        "example": {
          "_schema": "terminal",
          "data": {
            "lines": [
              "Linux client 2.6.32-431.29.2.el6.x86_64"
            ]
          }
        }
      },
      "ext_status": null,
      "rdeps": [
    
      ]
    }
    

    CA Certificate

    The Blockbridge management node may be configured with an embedded Certificate Authority that issues SSL certificates for clients to securely access to the API and the management web application. Install its CA certificate on client machines that will use Blockbridge management services. If no certificate authority is configured, SSL connections use self-signed certificates.

    Attributes

    NameTypeDescription
    datastringencoded ca-certificate data
    encodingstringadditional encoding of response data
    one of:"base64"

    CA Certificate Info

    Retrieve the certificate authority certificate.

    GET /ca-certificate
    

    Optional Parameters

    | Name | Type | Description | | ------- | ------- | ------- | ------- | | cert_format | string | ca cert format
    default: "pem"
    one of:"pem" or "der" |

    Curl Example

    $ curl https://mgmt-node/api/ca-certificate \
      -H "Authorization: Bearer 0/ZWbIgDWDjWa86fkBeFN34C/p+TDTQf/2hFEomiWU2Q1lZ8iANYOHdg" \
      -G \
      -d cert_format=pem
    

    Response Example

    200 OK
    Date: Mon, 09 Oct 2017 17:26:52 GMT
    Server: Goliath
    Content-Type: application/json
    Content-Length: 2897
    
    {
     "data": "-----BEGIN CERTIFICATE-----\nMIIH+jCCBeKgAwIBAgIJAIFqYjmDMSPJMA0GCSqGSIb3DQEBBQUAMIHPMQswCQYD\nVQQGEwJVUzEWMBQGA1UECAwNTWFzc2FjaHVzZXR0czESMBAGA1UEBwwJQ2FtYnJp\nZGdlMSIwIAYDVQQKDBlCbG9ja2JyaWRnZSBOZXR3b3JrcywgTExDMTAwLgYDVQQL\nDCdFbWJlZGRlZCBDQSAoTW9uIE9jdCAwOSAxNToyNyBVVEMgMjAxNykxGDAWBgNV\nBAMMD2Jsb2NrYnJpZGdlLmNvbTEkMCIGCSqGSIb3DQEJARYVYWRtaW5AYmxvY2ti\ncmlkZ2UuY29tMB4XDTE3MTAwOTE1MjcxNFoXDTM3MTAwOTE1MjcxNFowgc8xCzAJ\nBgNVBAYTAlVTMRYwFAYDVQQIDA1NYXNzYWNodXNldHRzMRIwEAYDVQQHDAlDYW1i\ncmlkZ2UxIjAgBgNVBAoMGUJsb2NrYnJpZGdlIE5ldHdvcmtzLCBMTEMxMDAuBgNV\nBAsMJ0VtYmVkZGVkIENBIChNb24gT2N0IDA5IDE1OjI3IFVUQyAyMDE3KTEYMBYG\nA1UEAwwPYmxvY2ticmlkZ2UuY29tMSQwIgYJKoZIhvcNAQkBFhVhZG1pbkBibG9j\na2JyaWRnZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDQ6UXb\nm1bCtko87HJRKaCfCNwOejG2vwTg4dKV715r/VmtpwQgoa1xZKHMI+9pzs33FNuj\nq/OEjk9gYIOnuGXO5J+Vh527RUscIpHhs9q02/6TIUoBV1NW0YyNZh19ZzFuanaO\nl2YPkXRaEMb0MadHd38+ItqVlFvl+PSfZOLeKgbYRJdE2OPk+K8VJZ2FD1PNmu6q\nCLk36PqMifFmPItDsUCZBL7f3xuVmnrdU3juGE8QXXPysBj8fU/5k5aMW31Pfc2m\nHojcXGsYqjoVEnvd89qzNJt3U8zc51XkrjnAxS68dV9lWAjuk5bF5ZYfhuYAKaH+\ngruiYOroyCq3RiPCXYTe7jk1tQMTR3V8Gr9N05B37uzYBJ3HQ8FdK6NgJ/z+68Y7\nOuVrDXbkBAK4DYcV2u2RSHe/RMCZT36rNQcjMv6r528XsIctxWktLeSHar5WdEC3\n6rbi0PE40hu6L10tViTI9hlU+ZjPEmjANpQtcluFY/pB0riOxNzEhEeIJ6pmahIu\n2X93SA1uds5NaiCLPwAC24hISeGv2xcGjx6QCgvPqE079bcWl/kwBxAosOdh8Shs\nCwXYjpcznNOXClvjNr6XErZpbkxIKsDdVS8YVxtrr7h1b09Y08tPDIdUy7SazE6t\nG8blN73oCCEMFXKaXWavBIbdv/XPVqG85xb4lQIDAQABo4IB1TCCAdEwIAYDVR0R\nBBkwF4EVYWRtaW5AYmxvY2ticmlkZ2UuY29tMA4GA1UdDwEB/wQEAwIBBjAPBgNV\nHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSSJ3ByGRWjRZF5pkcnXYEDNZQ85jARBglg\nhkgBhvhCAQEEBAMCAgQwggEEBgNVHSMEgfwwgfmAFJIncHIZFaNFkXmmRyddgQM1\nlDzmoYHVpIHSMIHPMQswCQYDVQQGEwJVUzEWMBQGA1UECAwNTWFzc2FjaHVzZXR0\nczESMBAGA1UEBwwJQ2FtYnJpZGdlMSIwIAYDVQQKDBlCbG9ja2JyaWRnZSBOZXR3\nb3JrcywgTExDMTAwLgYDVQQLDCdFbWJlZGRlZCBDQSAoTW9uIE9jdCAwOSAxNToy\nNyBVVEMgMjAxNykxGDAWBgNVBAMMD2Jsb2NrYnJpZGdlLmNvbTEkMCIGCSqGSIb3\nDQEJARYVYWRtaW5AYmxvY2ticmlkZ2UuY29tggkAgWpiOYMxI8kwIAYDVR0SBBkw\nF4EVYWRtaW5AYmxvY2ticmlkZ2UuY29tMDAGCWCGSAGG+EIBAwQjFiFodHRwOi8v\nd3d3LmJsb2NrYnJpZGdlLmNvbS9jYS5jcmwwDQYJKoZIhvcNAQEFBQADggIBAL++\n3zKnq/B+TaBe//w7/fLBJIhRmMUj852dUD1EWhFHnBeYU8wOzZ4nzOym95XZMVLg\nbC4WKUFr0C+oYOM7zz9M9GZUoLLGK1SFAKtP3BjJNCcBPmBpdUwFnTPXMLRx+pRy\nWl7iVrpG+jq2Oq0ubBzpP/kiJ06HMJNou6e1PNiMKGsupcvEICiu7w4LSkNX4z2I\nlj+cYRhNJBQrsbvWmorz1tU7DYLNLIvFlaMZRr4xQ0ZEiWVww4ojomS32Brl0JkN\nSSg5EG3zh1CkS8uy1lqiPCzSLFE0JYL2cVM1v0VKjppn7YzE7Zj4WUf+Ptdk8fs1\n1t69MC8o31h1BZ8JVLNK/Dm6MGyOf/a+LpdKGm5SM0WSbkAtatO7EJTK8Ee12Us8\nqH7jPFy2h0S7swRA0QNpPn5ujboSsycVi7difI7YekO2xX5fFZO+1iErrcrxPNRW\nYTZiRWYii+HOkq5SAteiwvt/IG5Ud/81XPlmqgV2bxEuA7Rx6Dbdef3S4Y9A7TPW\naXjYkOp8OJCs/YXHtJXO18UPEhqLh4V8OjuVP51EsMCJJsjaEPXBkbvurfpaKCkr\nKyS4M6ns8YmSCuvVINVdAcUTiraHXrnzVLcHnnUPWxfq230RRt0BlIp6SUO0kBXP\nJN9qm7geoCcdOz4pmC7W3r+OITOQtBp9feHoY74R\n-----END CERTIFICATE-----\n",
     "encoding": null
    Web Analytics