VAST Data qospolicies API

Quality of Service policies enable you to define quality of service per view. Quality of service policies can set maximum limits on read and write bandwidth and IOPS per view.

OpenAPI Specification

vastdata-qospolicies-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  description: VAST Management API definition
  title: VAST API Swagger Schema activedirectory qospolicies API
  version: '1.0'
security:
- ApiToken: []
tags:
- description: Quality of Service policies enable you to define quality of service per view. Quality of service policies can set maximum limits on read and write bandwidth and IOPS per view.
  name: qospolicies
paths:
  /qospolicies/:
    get:
      description: This endpoint lists QoS policies.
      operationId: qospolicies_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/QOSPolicy'
                title: QoS Policy
                type: array
          description: QoS Policies information
      summary: List QoS Policies
      tags:
      - qospolicies
    post:
      description: This endpoint creates a QoS policy.
      operationId: qospolicies_create
      requestBody:
        content:
          application/json:
            schema:
              properties:
                attached_iam_roles:
                  description: List of IAM Roles IDs which should be attached to that QOS Policy
                  items:
                    type: integer
                  type: array
                attached_users:
                  description: The users to which to attach the policy, for a user QOS policy
                  items:
                    $ref: '#/components/schemas/AttachedUser'
                  type: array
                capacity_limits:
                  $ref: '#/components/schemas/RequestQOSDynamicLimits'
                capacity_total_limits:
                  $ref: '#/components/schemas/RequestQOSDynamicTotalLimits'
                is_default:
                  description: Is default User QOS Policy
                  type: boolean
                is_gold:
                  description: Grants priority QoS over views that do not have this setting enabled.
                  type: boolean
                limit_by:
                  description: Specifies which performance parameter(s) are limited by the policy. BW_IOPS=The policy limits service according to bandwidth (BW) and IO per second (IOPS). BW=The policy limits service according to BW only. IOPS=The policy limits service according to IOPS only.
                  enum:
                  - BW
                  - IOPS
                  - BW_IOPS
                  type: string
                mode:
                  description: QoS provisioning mode
                  enum:
                  - STATIC
                  - USED_CAPACITY
                  - PROVISIONED_CAPACITY
                  type: string
                name:
                  type: string
                policy_type:
                  description: QOS Policy type
                  enum:
                  - VIEW
                  - USER
                  - VOLUME
                  type: string
                s3_connections_limit:
                  description: Maximum number of allowed S3 connections, 0 means unlimited
                  type: integer
                static_limits:
                  $ref: '#/components/schemas/RequestQOSStaticLimits'
                static_total_limits:
                  $ref: '#/components/schemas/RequestQOSStaticTotalLimits'
                tenant_id:
                  description: Tenant ID
                  type: integer
                use_total_limits:
                  description: If true - total limits are used instead of separate read/write limits.
                  type: boolean
              required:
              - name
              type: object
        x-originalParamName: QOSPolicyCreateParams
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QOSPolicy'
          description: Created QoS Policy information
      summary: Create QoS Policy
      tags:
      - qospolicies
  /qospolicies/{id}/:
    delete:
      description: This endpoint deletes a QoS policy
      operationId: qospolicies_delete
      parameters:
      - $ref: '#/components/parameters/QOSPolicyId'
      responses:
        '204':
          description: Deleted
      summary: Delete QoS Policy
      tags:
      - qospolicies
    get:
      description: This endpoint returns details of a specified QoS policy
      operationId: qospolicies_read
      parameters:
      - $ref: '#/components/parameters/QOSPolicyId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QOSPolicy'
          description: QoS Policy information
      summary: Return Details of QoS Policy
      tags:
      - qospolicies
    patch:
      description: This endpoint modifies a specified QoS policy.
      operationId: qospolicies_partial_update
      parameters:
      - $ref: '#/components/parameters/QOSPolicyId'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                attached_iam_roles:
                  description: List of IAM Roles IDs which should be attached to that QOS Policy enabled
                  items:
                    type: integer
                  type: array
                attached_users:
                  description: The users to which to attach the policy, for a user QOS policy
                  items:
                    $ref: '#/components/schemas/AttachedUser'
                  type: array
                capacity_limits:
                  $ref: '#/components/schemas/RequestQOSDynamicLimits'
                capacity_total_limits:
                  $ref: '#/components/schemas/RequestQOSDynamicTotalLimits'
                is_default:
                  description: Is default User QOS Policy
                  type: boolean
                is_gold:
                  description: Grants priority QoS over views that do not have this setting enabled.
                  type: boolean
                limit_by:
                  description: Specifies which performance parameter(s) are limited by the policy. BW_IOPS=The policy limits service according to bandwidth (BW) and IO per second (IOPS). BW=The policy limits service according to BW only. IOPS=The policy limits service according to IOPS only.
                  enum:
                  - BW
                  - IOPS
                  - BW_IOPS
                  type: string
                mode:
                  description: QoS provisioning mode
                  enum:
                  - STATIC
                  - USED_CAPACITY
                  - PROVISIONED_CAPACITY
                  type: string
                s3_connections_limit:
                  description: Maximum number of allowed S3 connections, 0 means unlimited
                  type: integer
                static_limits:
                  $ref: '#/components/schemas/RequestQOSStaticLimits'
                static_total_limits:
                  $ref: '#/components/schemas/RequestQOSStaticTotalLimits'
                use_total_limits:
                  description: If true - total limits are used instead of separate read/write limits.
                  type: boolean
              type: object
        x-originalParamName: QOSPolicyModifyParams
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QOSPolicy'
          description: Updated QoS Policy information
      summary: Modify QoS Policy
      tags:
      - qospolicies
components:
  parameters:
    Page:
      in: query
      name: page
      schema:
        minimum: 1
        type: integer
    QOSPolicyId:
      in: path
      name: id
      required: true
      schema:
        minimum: 1
        type: integer
    PageSize:
      in: query
      name: page_size
      schema:
        minimum: 1
        type: integer
  schemas:
    RequestQOSStaticTotalLimits:
      properties:
        burst_bw_mb:
          default: 0
          description: Burst BW Mb
          minimum: 0
          type: integer
        burst_iops:
          default: 0
          description: Burst IOPS
          minimum: 0
          type: integer
        burst_loan_iops:
          default: 0
          description: Burst loan IOPS
          minimum: 0
          type: integer
        burst_loan_mb:
          default: 0
          description: Burst loan Mb
          minimum: 0
          type: integer
        max_bw_mbps:
          default: 0
          description: Maximal BW Mb/s
          minimum: 0
          type: integer
        max_iops:
          default: 0
          description: Maximal IOPS
          minimum: 0
          type: integer
        min_bw_mbps:
          default: 0
          description: Minimal BW Mb/s
          minimum: 0
          type: integer
        min_iops:
          default: 0
          description: Minimal IOPS
          minimum: 0
          type: integer
      type: object
    QOSStaticLimits:
      allOf:
      - $ref: '#/components/schemas/TruncatedQOSStaticLimits'
      - properties:
          min_reads_bw_mbps:
            default: 0
            description: Minimal amount of performance to provide when there is resource contention
            minimum: 0
            type: integer
          min_reads_iops:
            default: 0
            description: Minimal amount of performance to provide when there is resource contention
            minimum: 0
            type: integer
          min_writes_bw_mbps:
            default: 0
            description: Minimal amount of performance to provide when there is resource contention
            minimum: 0
            type: integer
          min_writes_iops:
            default: 0
            description: Minimal amount of performance to provide when there is resource contention
            minimum: 0
            type: integer
        required:
        - min_reads_bw_mbps
        - min_writes_bw_mbps
        - min_reads_iops
        - min_writes_iops
        type: object
    RequestQOSDynamicTotalLimits:
      properties:
        max_bw_mbps_per_gb_capacity:
          default: 0
          description: Maximal amount of performance per GB to provide when there is no resource contention
          minimum: 0
          type: integer
        max_iops_per_gb_capacity:
          default: 0
          description: Maximal amount of performance per GB to provide when there is no resource contention
          minimum: 0
          type: integer
      type: object
    RequestQOSDynamicLimits:
      description: 'Performance limits per unit of either used logical capacity or provisioned capacity, depending on the mode. Units are stated per limit. Valid values: 0-4294967296. 0 means unlimited.'
      properties:
        max_reads_bw_mbps_per_gb_capacity:
          default: 0
          description: Maximal amount of performance per GB to provide when there is no resource contention
          minimum: 0
          type: integer
        max_reads_iops_per_gb_capacity:
          default: 0
          description: Maximal amount of performance per GB to provide when there is no resource contention
          minimum: 0
          type: integer
        max_writes_bw_mbps_per_gb_capacity:
          default: 0
          description: Maximal amount of performance per GB to provide when there is no resource contention
          minimum: 0
          type: integer
        max_writes_iops_per_gb_capacity:
          default: 0
          description: Maximal amount of performance per GB to provide when there is no resource contention
          minimum: 0
          type: integer
      type: object
    TruncatedQOSStaticLimits:
      properties:
        burst_reads_bw_mb:
          default: 0
          description: Burst reads BW Mb
          minimum: 0
          type: integer
        burst_reads_iops:
          default: 0
          description: Burst reads IOPS
          minimum: 0
          type: integer
        burst_reads_loan_iops:
          default: 0
          description: Burst reads loan IOPS
          minimum: 0
          type: integer
        burst_reads_loan_mb:
          default: 0
          description: Burst reads loan Mb
          minimum: 0
          type: integer
        burst_writes_bw_mb:
          default: 0
          description: Burst writes BW Mb
          minimum: 0
          type: integer
        burst_writes_iops:
          default: 0
          description: Burst writes IOPS
          minimum: 0
          type: integer
        burst_writes_loan_iops:
          default: 0
          description: Burst writes loan IOPS
          minimum: 0
          type: integer
        burst_writes_loan_mb:
          default: 0
          description: Burst writes loan Mb
          minimum: 0
          type: integer
        max_reads_bw_mbps:
          default: 0
          description: Maximal amount of performance to provide when there is no resource contention
          minimum: 0
          type: integer
        max_reads_iops:
          default: 0
          description: Maximal amount of performance to provide when there is no resource contention
          minimum: 0
          type: integer
        max_writes_bw_mbps:
          default: 0
          description: Maximal amount of performance to provide when there is no resource contention
          minimum: 0
          type: integer
        max_writes_iops:
          default: 0
          description: Maximal amount of performance to provide when there is no resource contention
          minimum: 0
          type: integer
      required:
      - max_reads_bw_mbps
      - max_writes_bw_mbps
      - max_reads_iops
      - max_writes_iops
      - burst_reads_bw_mb
      - burst_writes_bw_mb
      - burst_reads_loan_mb
      - burst_writes_loan_mb
      - burst_reads_iops
      - burst_writes_iops
      - burst_reads_loan_iops
      - burst_writes_loan_iops
      type: object
    AttachedUser:
      properties:
        fqdn:
          description: The Fully Qualified Domain Name (FQDN) of the user's domain.
          type: string
        identifier_type:
          description: The attribute used to identify the user.
          enum:
          - sid_str
          - uid
          - username
          type: string
        identifier_value:
          description: The value of the identifying attribute for the user. Must be of the attribute specified as identifier_type.
          type: string
        label:
          description: A label for the user
          type: string
        name:
          description: User's name
          type: string
      required:
      - name
      - identifier_type
      - identifier_value
      - fqdn
      type: object
    QOSDynamicLimits:
      properties:
        max_reads_bw_mbps_per_gb_capacity:
          default: 0
          description: Maximal amount of performance per GB to provide when there is no resource contention
          minimum: 0
          type: integer
        max_reads_iops_per_gb_capacity:
          default: 0
          description: Maximal amount of performance per GB to provide when there is no resource contention
          minimum: 0
          type: integer
        max_writes_bw_mbps_per_gb_capacity:
          default: 0
          description: Maximal amount of performance per GB to provide when there is no resource contention
          minimum: 0
          type: integer
        max_writes_iops_per_gb_capacity:
          default: 0
          description: Maximal amount of performance per GB to provide when there is no resource contention
          minimum: 0
          type: integer
      required:
      - max_reads_bw_mbps_per_gb_capacity
      - max_writes_bw_mbps_per_gb_capacity
      - max_reads_iops_per_gb_capacity
      - max_writes_iops_per_gb_capacity
      type: object
    RequestQOSStaticLimits:
      allOf:
      - $ref: '#/components/schemas/RequestTruncatedQOSStaticLimits'
      - properties:
          min_reads_bw_mbps:
            default: 0
            description: Minimal amount of performance to provide when there is resource contention
            minimum: 0
            type: integer
          min_reads_iops:
            default: 0
            description: Minimal amount of performance to provide when there is resource contention
            minimum: 0
            type: integer
          min_writes_bw_mbps:
            default: 0
            description: Minimal amount of performance to provide when there is resource contention
            minimum: 0
            type: integer
          min_writes_iops:
            default: 0
            description: Minimal amount of performance to provide when there is resource contention
            minimum: 0
            type: integer
        type: object
    RequestTruncatedQOSStaticLimits:
      description: 'Performance limits per view. Maximum limits define maximum provisioning in the absence of resource contention. Valid values: 0-4294967296. 0 means unlimited.'
      properties:
        burst_reads_bw_mb:
          default: 0
          description: Burst reads BW Mb
          minimum: 0
          type: integer
        burst_reads_iops:
          default: 0
          description: Burst reads IOPS
          minimum: 0
          type: integer
        burst_reads_loan_iops:
          default: 0
          description: Burst reads loan IOPS
          minimum: 0
          type: integer
        burst_reads_loan_mb:
          default: 0
          description: Burst reads loan Mb
          minimum: 0
          type: integer
        burst_writes_bw_mb:
          default: 0
          description: Burst writes BW Mb
          minimum: 0
          type: integer
        burst_writes_iops:
          default: 0
          description: Burst writes IOPS
          minimum: 0
          type: integer
        burst_writes_loan_iops:
          default: 0
          description: Burst writes loan IOPS
          minimum: 0
          type: integer
        burst_writes_loan_mb:
          default: 0
          description: Burst writes loan Mb
          minimum: 0
          type: integer
        max_reads_bw_mbps:
          default: 0
          description: Maximal amount of performance to provide when there is no resource contention
          minimum: 0
          type: integer
        max_reads_iops:
          default: 0
          description: Maximal amount of performance to provide when there is no resource contention
          minimum: 0
          type: integer
        max_writes_bw_mbps:
          default: 0
          description: Maximal amount of performance to provide when there is no resource contention
          minimum: 0
          type: integer
        max_writes_iops:
          default: 0
          description: Maximal amount of performance to provide when there is no resource contention
          minimum: 0
          type: integer
      type: object
    QOSPolicy:
      properties:
        attached_users:
          description: The users to which to attach the policy, for a user QOS policy
          items:
            $ref: '#/components/schemas/AttachedUser'
          type: array
        capacity_limits:
          $ref: '#/components/schemas/QOSDynamicLimits'
        capacity_total_limits:
          $ref: '#/components/schemas/RequestQOSDynamicTotalLimits'
        guid:
          description: QoS Policy guid
          type: string
        id:
          type: integer
          x-cli-header: ID
        io_size_bytes:
          description: 'Sets the size of IO for static and capacity limit definitions. The number of IOs per request is obtained by dividing request size by IO size. Default: 64K, Recommended range: 4K - 1M'
          type: integer
        is_default:
          description: Is default User QOS Policy
          type: boolean
        is_gold:
          description: Grants priority QoS over views that do not have this setting enabled.
          type: boolean
        limit_by:
          description: Specifies which performance parameter(s) are limited by the policy. BW_IOPS=The policy limits service according to bandwidth (BW) and IO per second (IOPS). BW=The policy limits service according to BW only. IOPS=The policy limits service according to IOPS only.
          enum:
          - BW
          - IOPS
          - BW_IOPS
          type: string
        mode:
          description: The mode of provisioning quality of service per view. STATIC=read and/or write BW and/or IOPS may be limited to a set maximum limit. USED_CAPACITY=BW and IOPS may be limited set per unit of used logical capacity. Static limits are also configurable and define boundaries of performance allowance. PROVISIONED_CAPACITY=BW and IOPS may be limited per unit of logical capacity, as provisioned by the soft limit of a quota on the view path. Static limits are also configurable and define boundaries of performance allowance.
          enum:
          - STATIC
          - USED_CAPACITY
          - PROVISIONED_CAPACITY
          type: string
        name:
          type: string
        policy_type:
          description: QOS Policy type - VIEW or USER
          enum:
          - VIEW
          - USER
          - VOLUME
          type: string
        s3_connections_limit:
          description: Maximum number of allowed S3 connections, 0 means unlimited
          type: integer
        static_limits:
          $ref: '#/components/schemas/QOSStaticLimits'
        static_total_limits:
          $ref: '#/components/schemas/RequestQOSStaticTotalLimits'
        tenant_id:
          description: Tenant ID
          type: integer
        tenant_name:
          description: Tenant Name
          type: string
        use_total_limits:
          description: If true - total limits are used instead of separate read/write limits.
          type: boolean
      required:
      - name
      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