Portworx OpenStoragePool API

The OpenStoragePool API from Portworx — 5 operation(s) for openstoragepool.

OpenAPI Specification

portworx-openstoragepool-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: OpenStorage SDK OpenStorageAlerts OpenStoragePool API
  version: 0.186.0
security:
- bearerAuth: []
tags:
- name: OpenStoragePool
paths:
  /v1/storagepools/rebalance:
    put:
      operationId: OpenStoragePool_Rebalance
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkStorageRebalanceResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Rebalance creates a new rebalance task
      tags:
      - OpenStoragePool
  /v1/storagepools/rebalance/job:
    get:
      operationId: OpenStoragePool_EnumerateRebalanceJobs
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkEnumerateRebalanceJobsResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: EnumerateRebalanceJobs returns all rebalance jobs currently known to the system
      tags:
      - OpenStoragePool
  /v1/storagepools/rebalance/job/{id}:
    get:
      operationId: OpenStoragePool_GetRebalanceJobStatus
      parameters:
      - description: ID of the rebalance job
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkGetRebalanceJobStatusResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: GetRebalanceJobStatus returns rebalance status for specified job
      tags:
      - OpenStoragePool
    put:
      operationId: OpenStoragePool_UpdateRebalanceJobState
      parameters:
      - description: ID of the rebalance job
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkUpdateRebalanceJobResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: 'UpdateRebalanceJobState updates existing rebalance task state.

        Only acceptable values are

        StorageRebalanceJobState_PAUSED - acceptable only from running state

        StorageRebalanceJobState_CANCELLED - acceptable only from running/pause state

        StorageRebalanceJobState_RUNNING - acceptable only from pause state'
      tags:
      - OpenStoragePool
  /v1/storagepools/rebalance/schedule:
    delete:
      operationId: OpenStoragePool_DeleteRebalanceSchedule
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkDeleteRebalanceScheduleResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: DeleteRebalanceSchedule deletes the rebalance schedule
      tags:
      - OpenStoragePool
    get:
      operationId: OpenStoragePool_GetRebalanceSchedule
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkGetRebalanceScheduleResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: GetRebalanceSchedule returns the information of rebalance schedule
      tags:
      - OpenStoragePool
    post:
      operationId: OpenStoragePool_CreateRebalanceSchedule
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkCreateRebalanceScheduleResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: CreateRebalanceSchedule creates a scheudle for the input rebalance requests
      tags:
      - OpenStoragePool
  /v1/storagepools/resize/{uuid}:
    put:
      operationId: OpenStoragePool_Resize
      parameters:
      - description: UUID of the storage pool to inspect
        in: path
        name: uuid
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkStoragePoolResizeResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Resize expands the specified storage pool based on the request parameters
      tags:
      - OpenStoragePool
components:
  schemas:
    apiSdkUpdateRebalanceJobResponse:
      type: object
    apiSdkGetRebalanceScheduleResponse:
      properties:
        scheduleInfo:
          $ref: '#/components/schemas/apiRebalanceScheduleInfo'
      type: object
    StorageRebalanceAuditStorageRebalanceAction:
      default: ADD_REPLICA
      description: "- ADD_REPLICA: Indicates new replica was added\n - REMOVE_REPLICA: Indicates existing replica was removed"
      enum:
      - ADD_REPLICA
      - REMOVE_REPLICA
      title: StorageRebalanceAction describes type of rebalance action
      type: string
    apiStorageRebalanceSummary:
      properties:
        total_run_time_seconds:
          format: uint64
          title: TotalRunTimeSeconds is the total time rebalance is running
          type: string
        work_summary:
          items:
            $ref: '#/components/schemas/apiStorageRebalanceWorkSummary'
          title: WorkSummary summarizes the work done
          type: array
      title: StorageRebalanceSummary describes summary for the job
      type: object
    apiStorageRebalanceAudit:
      properties:
        action:
          $ref: '#/components/schemas/StorageRebalanceAuditStorageRebalanceAction'
        end_time:
          format: date-time
          title: EndTime is time time at which action ended
          type: string
        name:
          title: Name is the name of the volumes which was rebalanced
          type: string
        node:
          title: Node on which this action happened
          type: string
        pool:
          title: Pool on which this action happened
          type: string
        replication_set_id:
          format: uint64
          title: ReplicationSetId is the ID of the replication set
          type: string
        start_time:
          format: date-time
          title: StartTime is the time at which action was started
          type: string
        state:
          $ref: '#/components/schemas/apiStorageRebalanceJobState'
        volume_id:
          title: VolumeID is the id of the volume which was rebalanced
          type: string
        work_summary:
          items:
            $ref: '#/components/schemas/apiStorageRebalanceWorkSummary'
          title: WorkSummary summarizes the work done
          type: array
      title: StorageRebalanceAudit describes the action taken during rebalance
      type: object
    apiSdkCreateRebalanceScheduleResponse:
      properties:
        scheduleInfo:
          $ref: '#/components/schemas/apiRebalanceScheduleInfo'
      type: object
    apiSdkDeleteRebalanceScheduleResponse:
      type: object
    StorageRebalanceTriggerThresholdMetric:
      default: PROVISION_SPACE
      description: "- PROVISION_SPACE: ProvisionSpace indicates rebalance for provisioned space\n - USED_SPACE: UsedSpace indicates rebalance for used space"
      enum:
      - PROVISION_SPACE
      - USED_SPACE
      title: Metric is an enum that defines the metric to use for rebalance
      type: string
    apiSdkStoragePoolResizeResponse:
      title: Defines a response when resizing a storage pool
      type: object
    apiStorageRebalanceJobState:
      default: PENDING
      description: "- PENDING: Pending indicates job is still pending and has not started work\n - RUNNING: Running indicates job is actively running\n - DONE: Done indicates job has finished processing\n - PAUSED: Paused indicates job is paused\n - CANCELLED: Cancelled indicates job is cancelled"
      enum:
      - PENDING
      - RUNNING
      - DONE
      - PAUSED
      - CANCELLED
      title: StorageRebalanceJobState is an enum for state of the current rebalance operation
      type: string
    apiLabelSelectorRequirement:
      description: 'LabelSelectorRequirement is a selector that contains values, a key, and an operator that

        relates the key and values.'
      properties:
        key:
          description: Key is the label key that the selector applies to.
          type: string
        operator:
          $ref: '#/components/schemas/LabelSelectorRequirementOperator'
        values:
          description: 'Values is an array of string values. If the operator is In or NotIn,

            the values array must be non-empty. If the operator is Exists or DoesNotExist,

            the values array must be empty. This array is replaced during a strategic

            merge patch.'
          items:
            type: string
          type: array
      type: object
    apiStorageRebalanceTriggerThresholdType:
      default: ABSOLUTE_PERCENT
      description: "- ABSOLUTE_PERCENT: AbsolutePercent indicates absolute percent comparison.\nExample, 75 % used of capacity, or 50 % provisioned of capacity.\n - DELTA_MEAN_PERCENT: DeltaMeanPercent indicates mean percent comparison threshold.\nExample, 10 % more than mean for cluster."
      enum:
      - ABSOLUTE_PERCENT
      - DELTA_MEAN_PERCENT
      title: Type is an enum that defines the type fo the trigger threshold
      type: string
    apiRebalanceScheduleInfo:
      properties:
        create_time:
          format: date-time
          type: string
        rebalance_requests:
          items:
            $ref: '#/components/schemas/apiSdkStorageRebalanceRequest'
          type: array
        schedule:
          type: string
      type: object
    apiSdkStorageRebalanceResponse:
      properties:
        actions:
          items:
            $ref: '#/components/schemas/apiStorageRebalanceAudit'
          title: Actions describe all the actions taken during this rebalance
          type: array
        job:
          $ref: '#/components/schemas/apiStorageRebalanceJob'
        summary:
          $ref: '#/components/schemas/apiStorageRebalanceSummary'
      title: SdkStorageRebalanceResponse is the response to a storage rebalance request
      type: object
    apiStorageRebalanceJob:
      properties:
        create_time:
          format: date-time
          title: CreateTime is the time the job was created
          type: string
        id:
          title: ID of the rebalance job
          type: string
        last_update_time:
          format: date-time
          title: LastUpdateTime is the time the job was updated
          type: string
        parameters:
          $ref: '#/components/schemas/apiSdkStorageRebalanceRequest'
        state:
          $ref: '#/components/schemas/apiStorageRebalanceJobState'
        status:
          title: Status describes status of pools after rebalance if rebalance did not finish successfully
          type: string
      title: StorageRebalanceJob describes job input and current status
      type: object
    apiStorageRebalanceTriggerThreshold:
      properties:
        metric:
          $ref: '#/components/schemas/StorageRebalanceTriggerThresholdMetric'
        over_load_trigger_threshold:
          description: 'OverLoadTriggerThreshold will select entity which is over this

            threshold. OverLoadTriggerThreshold threshold selects pools

            which act as source for reduction of load defined by the metric.'
          format: uint64
          type: string
        type:
          $ref: '#/components/schemas/apiStorageRebalanceTriggerThresholdType'
        under_load_trigger_threshold:
          description: 'UnderLoadTriggerThreshold will select entity which is under this

            threshold. UnderLoadTriggerThreshold selects pools which act as

            targets for increasing load defined by metric.'
          format: uint64
          type: string
      type: object
    runtimeError:
      properties:
        code:
          format: int32
          type: integer
        details:
          items:
            $ref: '#/components/schemas/protobufAny'
          type: array
        error:
          type: string
        message:
          type: string
      type: object
    LabelSelectorRequirementOperator:
      default: In
      description: "- In: In means the value for 'key' should be in one of the given value(s)\n - NotIn: NotIn means the value for 'key' should NOT be in one of the given value(s)\n - Exists: Exists means the 'key' should just exist regardless of the value\n - DoesNotExist: DoesNotExist means the 'key' should NOT exist\n - Gt: Gt means the 'key' should be greater than the value(s)\n - Lt: Lt means the 'key' should be less than the value(s)"
      enum:
      - In
      - NotIn
      - Exists
      - DoesNotExist
      - Gt
      - Lt
      title: This defines operator types used in a label matching rule
      type: string
    apiSdkStorageRebalanceRequest:
      properties:
        max_duration_minutes:
          format: uint64
          title: 'MaxDurationMinutes defines how long operation should run when started at schedule.

            0 values means no limit on duration'
          type: string
        mode:
          $ref: '#/components/schemas/apiSdkStorageRebalanceRequestMode'
        remove_repl_1_snapshots:
          title: RemoveRepl1Snapshots if true will instruct rebalance job to remove repl-1 snapshots
          type: boolean
        source_pool_selector:
          items:
            $ref: '#/components/schemas/apiLabelSelectorRequirement'
          title: SourcePoolSelector allows selecting pools to which trigger thresholds will apply as source
          type: array
        target_pool_selector:
          items:
            $ref: '#/components/schemas/apiLabelSelectorRequirement'
          title: TargetPoolSelector allows selecting pools to which trigger thresholds will apply as target
          type: array
        trial_run:
          title: TrialRun if true the job only produces steps that would be taken without making any changes
          type: boolean
        trigger_thresholds:
          description: 'TriggerThresholds defines thresholds that would trigger rebalance.

            For example, TriggerThreshold{ThresholdTypeAbsolutePercent, MetricTypeUsedSpace, 75, 10}

            would trigger rebalance on pools where used space is more than 75% or less than 10%. Similarly,

            TriggerThreshold{ThresholdTypeDeltaMeanPercent, MetricTypeUsedSpace, 15, 25} will

            trigger rebalance for pools where used space is more than 15% from the mean

            percent for used space for the entire cluster or less than 25% from the mean

            percent for used space for the entire cluster.'
          items:
            $ref: '#/components/schemas/apiStorageRebalanceTriggerThreshold'
          type: array
      type: object
    apiSdkEnumerateRebalanceJobsResponse:
      properties:
        jobs:
          items:
            $ref: '#/components/schemas/apiStorageRebalanceJob'
          title: Jobs is the list of rebalance jobs in the response
          type: array
      type: object
    protobufAny:
      properties:
        type_url:
          type: string
        value:
          format: byte
          type: string
      type: object
    apiSdkGetRebalanceJobStatusResponse:
      properties:
        actions:
          items:
            $ref: '#/components/schemas/apiStorageRebalanceAudit'
          title: Actions describe all the actions taken during this rebalance
          type: array
        job:
          $ref: '#/components/schemas/apiStorageRebalanceJob'
        summary:
          $ref: '#/components/schemas/apiStorageRebalanceSummary'
      type: object
    apiSdkStorageRebalanceRequestMode:
      default: STORAGE_REBALANCE
      description: "- STORAGE_REBALANCE: StorageRebalance mode: rebalance pools based on provisioned/used space (the default mode)\n - VOLUME_PLACEMENT_FIX: VolumePlacementFix mode: scan all volumes for incorrect placement and fix them\n - POOL_DRAIN: PoolDrain mode: drain all volumes & snapshots on the source pools (optionally to target pools)"
      enum:
      - STORAGE_REBALANCE
      - VOLUME_PLACEMENT_FIX
      - POOL_DRAIN
      title: Mode is an enum that defines the mode of the volume reorg job
      type: string
    apiStorageRebalanceWorkSummary:
      properties:
        done:
          format: uint64
          title: Done is the amount of bytes/work done
          type: string
        pending:
          format: uint64
          title: Pending is the amount of bytes/work pending. Done + Pending == Total
          type: string
        type:
          $ref: '#/components/schemas/apiStorageRebalanceWorkSummaryType'
      type: object
    apiStorageRebalanceWorkSummaryType:
      default: UnbalancedPools
      description: "- UnbalancedPools: summary for unbalanced pools\n - UnbalancedVolumes: summary for unbalanced volumes\n - UnbalancedProvisionedSpaceBytes: summary for unbalanced provisioned space\n - UnbalancedUsedSpaceBytes: summary for unbalanced used space"
      enum:
      - UnbalancedPools
      - UnbalancedVolumes
      - UnbalancedProvisionedSpaceBytes
      - UnbalancedUsedSpaceBytes
      title: Type is an enum to indicate the type of work summary
      type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT