VAST Data blockhosts API

Block Hosts are block storage client hosts. They must be added to VMS in order to enable block storage volumes to be made available to them.

OpenAPI Specification

vastdata-blockhosts-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  description: VAST Management API definition
  title: VAST API Swagger Schema activedirectory blockhosts API
  version: '1.0'
security:
- ApiToken: []
tags:
- description: Block Hosts are block storage client hosts. They must be added to VMS in order to enable block storage volumes to be made available to them.
  name: blockhosts
paths:
  /blockhosts/:
    get:
      description: This endpoint lists all block storage hosts configured on the tenant.
      operationId: blockhosts_list
      parameters:
      - $ref: '#/components/parameters/TenantIdQP'
      - $ref: '#/components/parameters/BlockHostNameQP'
      - $ref: '#/components/parameters/BlockHostNqnQP'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/BlockHost'
                title: Block Hosts
                type: array
          description: Block hosts and their properties
      summary: List Block Hosts per Tenant
      tags:
      - blockhosts
    post:
      description: This endpoint creates a blockhost object with the properties of a block storage client host, to enable the assignment of volumes to the host. Block hosts are added per tenant. To serve block storage from multiple tenants, create a blockhost objec on each tennt separately.
      operationId: blockhosts_create
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  description: The name of the block host. Must be unique on the tenant. Can be duplicated on multiple tenants.
                  type: string
                nqn:
                  description: The host's NVMe Qualified Name (NQN), a unique identifier used to identify the host in NVMe operations. Retrieve the NQN from the host.
                  type: string
                tags:
                  $ref: '#/components/schemas/ArbitraryStringsObject'
                tenant_id:
                  description: The ID of the tenant to which to add the block host. Add the host separately as needed to each tenant.
                  type: integer
              required:
              - tenant_id
              - name
              - nqn
              type: object
        x-originalParamName: BlockHostCreateParams
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockHost'
          description: OK
      summary: Create a Block Host
      tags:
      - blockhosts
  /blockhosts/{id}/:
    delete:
      description: This endpoint deletes a block host.
      operationId: blockhosts_delete
      parameters:
      - $ref: '#/components/parameters/PathObjectId'
      - description: Forces removal of mappings of the host to volumes. A host can be deleted only if it is not mapped to any volume.
        in: query
        name: force
        schema:
          type: boolean
      responses:
        '204':
          description: OK
      summary: Delete a Block Host
      tags:
      - blockhosts
    get:
      description: This endpoint returns information about a specific Block Host.
      operationId: blockhosts_read
      parameters:
      - $ref: '#/components/parameters/PathObjectId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockHost'
          description: ''
      summary: Return Details of a Block Host
      tags:
      - blockhosts
    patch:
      description: This endpoint modifies a block storage host.
      operationId: blockhosts_update
      parameters:
      - $ref: '#/components/parameters/PathObjectId'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  description: The name of the block host. Must be unique on the tenant. Can be duplicated on multiple tenants.
                  type: string
                tags:
                  $ref: '#/components/schemas/ArbitraryStringsObject'
              type: object
        x-originalParamName: BlockHostModifyParams
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockHost'
          description: ''
      summary: Modifies a Block Host
      tags:
      - blockhosts
  /blockhosts/{id}/set_volumes:
    patch:
      operationId: hosts_set_volumes
      parameters:
      - $ref: '#/components/parameters/PathObjectId'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                ids:
                  items:
                    type: integer
                  type: array
                snapshot_id:
                  type: integer
              type: object
        x-originalParamName: HostSetVolumesParams
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncTaskInResponse'
          description: This endpoint maps a single host to multiple volumes (where each is either the current version of the volume or a snapshot of the volume).
      summary: Mapping a block host to volumes.
      tags:
      - blockhosts
  /blockhosts/{id}/update_volumes:
    patch:
      operationId: hosts_update_volumes
      parameters:
      - $ref: '#/components/parameters/PathObjectId'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                ids_to_add:
                  items:
                    type: integer
                  type: array
                ids_to_remove:
                  items:
                    type: integer
                  type: array
                snapshot_id:
                  type: integer
              type: object
        x-originalParamName: HostUpdateVolumesParams
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncTaskInResponse'
          description: This endpoint maps (update) a single host into multiple volumes (either their current version or a snapshot).
      summary: Update Mapping of Block Host to Volumes
      tags:
      - blockhosts
components:
  parameters:
    BlockHostNameQP:
      description: name of the blockhost
      in: query
      name: name
      schema:
        type: string
    PathObjectId:
      description: Object ID specified in the path
      in: path
      name: id
      required: true
      schema:
        type: string
    BlockHostNqnQP:
      description: NQN of the blockhost
      in: query
      name: nqn
      schema:
        type: string
    PageSize:
      in: query
      name: page_size
      schema:
        minimum: 1
        type: integer
    TenantIdQP:
      description: Filter by tenant. Specify tenant ID.
      in: query
      name: tenant_id
      schema:
        minimum: 1
        type: integer
    Page:
      in: query
      name: page
      schema:
        minimum: 1
        type: integer
  schemas:
    BlockHost:
      properties:
        id:
          type: integer
        mapped_block_host_count:
          description: The number of block hosts mapped to the volume.
          type: integer
        mapped_block_hosts_preview:
          description: Mapped block hosts preview.
          type: string
        mapped_volume_count:
          description: How many Volumes are mapped to this block host.
          type: integer
        mapped_volumes_preview:
          description: Mapped volumes preview.
          type: string
        name:
          description: The name of the block host, which is unique per tenant.
          type: string
        nqn:
          description: The NVMe Qualified Name of the host.
          type: string
        tags:
          $ref: '#/components/schemas/ArbitraryStringsObject'
        tenant_id:
          description: ID of the tenant to which the block host belongs.
          type: integer
        tenant_name:
          description: The name of the tenant to which the block host belongs.
          type: string
      required:
      - id
      - tenant_id
      - name
      - nqn
      - tags
      type: object
    ArbitraryStringsObject:
      additionalProperties:
        type: string
      type: object
    AsyncTaskInResponse:
      properties:
        async_task:
          description: Creation Async task properties
          type: object
      type: object
  securitySchemes:
    ApiToken:
      description: Send current valid API token in an Authorization header with format Api-Token <token>.
      in: header
      name: ApiToken
      type: apiKey
    basicAuth:
      description: Basic authentication using VMS user name and password
      scheme: basic
      type: http