Portworx OpenStorageCloudBackup API

The OpenStorageCloudBackup API from Portworx — 13 operation(s) for openstoragecloudbackup.

OpenAPI Specification

portworx-openstoragecloudbackup-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: OpenStorage SDK OpenStorageAlerts OpenStorageCloudBackup API
  version: 0.186.0
security:
- bearerAuth: []
tags:
- name: OpenStorageCloudBackup
paths:
  /v1/cloudbackups:
    post:
      description: Requires access AccessType.Read of volume
      operationId: OpenStorageCloudBackup_Create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkCloudBackupCreateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkCloudBackupCreateResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: 'Creates a backup request for a specified volume. Use

        OpenStorageCloudBackup.Status() to get the current status of the

        backup request.'
      tags:
      - OpenStorageCloudBackup
  /v1/cloudbackups/backup/{backup_id}:
    delete:
      operationId: OpenStorageCloudBackup_Delete
      parameters:
      - description: ID is the ID of the cloud backup
        in: path
        name: backup_id
        required: true
        schema:
          type: string
      - description: Credential id is the credential for cloud to be used for the request.
        in: query
        name: credential_id
        required: false
        schema:
          type: string
      - description: 'Force Delete cloudbackup even if there are dependencies. This may be

          needed if the backup is an incremental backup and subsequent backups

          depend on this backup specified by `backup_id`.'
        in: query
        name: force
        required: false
        schema:
          type: boolean
      - description: Bucket name to which cloud backup belongs to.
        in: query
        name: bucket
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkCloudBackupDeleteResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: 'Deletes a backup stored in the cloud. If the backup is an incremental

        backup and other backups are dependent on it, it will not be able to be deleted.'
      tags:
      - OpenStorageCloudBackup
  /v1/cloudbackups/catalog:
    post:
      operationId: OpenStorageCloudBackup_Catalog
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkCloudBackupCatalogRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkCloudBackupCatalogResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Catalog returns a list of the contents in the backup
      tags:
      - OpenStorageCloudBackup
  /v1/cloudbackups/deleteall:
    post:
      operationId: OpenStorageCloudBackup_DeleteAll
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkCloudBackupDeleteAllRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkCloudBackupDeleteAllResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: DeleteAll deletes all the backups in the cloud for the specified volume.
      tags:
      - OpenStorageCloudBackup
  /v1/cloudbackups/enumerate/filters:
    post:
      operationId: OpenStorageCloudBackup_EnumerateWithFilters
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkCloudBackupEnumerateWithFiltersRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkCloudBackupEnumerateWithFiltersResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Return a list of backups for the specified volume
      tags:
      - OpenStorageCloudBackup
  /v1/cloudbackups/group:
    post:
      description: This will only backup volumes which the user has read_access to.
      operationId: OpenStorageCloudBackup_GroupCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkCloudBackupGroupCreateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkCloudBackupGroupCreateResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: 'Creates a group backup request for a specified group. Use

        OpenStorageCloudBackup.Status() to get the current status of the

        backup request.'
      tags:
      - OpenStorageCloudBackup
  /v1/cloudbackups/history/{src_volume_id}:
    get:
      operationId: OpenStorageCloudBackup_History
      parameters:
      - description: 'This optional value defines which history of backups is being

          requested. If not provided, it will return the history for all volumes.'
        in: path
        name: src_volume_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkCloudBackupHistoryResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: History returns a list of backups for a specified volume
      tags:
      - OpenStorageCloudBackup
  /v1/cloudbackups/restore:
    post:
      operationId: OpenStorageCloudBackup_Restore
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkCloudBackupRestoreRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkCloudBackupRestoreResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: 'Restore creates a new volume from a backup id. The newly created volume

        has an ha_level (number of replicas) of only 1. To increase the number of

        replicas, use OpenStorageVolume.Set() to change the ha_level.'
      tags:
      - OpenStorageCloudBackup
  /v1/cloudbackups/schedules:
    get:
      operationId: OpenStorageCloudBackup_SchedEnumerate
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkCloudBackupSchedEnumerateResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Enumerate cloud backup schedules
      tags:
      - OpenStorageCloudBackup
    post:
      operationId: OpenStorageCloudBackup_SchedCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkCloudBackupSchedCreateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkCloudBackupSchedCreateResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Create cloud backup schedule
      tags:
      - OpenStorageCloudBackup
    put:
      operationId: OpenStorageCloudBackup_SchedUpdate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkCloudBackupSchedUpdateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkCloudBackupSchedUpdateResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Update existing cloud backup schedule
      tags:
      - OpenStorageCloudBackup
  /v1/cloudbackups/schedules/{backup_schedule_id}:
    delete:
      operationId: OpenStorageCloudBackup_SchedDelete
      parameters:
      - description: Id of cloud backup to delete
        in: path
        name: backup_schedule_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkCloudBackupSchedDeleteResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Delete cloud backup schedule
      tags:
      - OpenStorageCloudBackup
  /v1/cloudbackups/size:
    get:
      operationId: OpenStorageCloudBackup_Size
      parameters:
      - description: 'BackupId is a value which is used to get information on the

          size of the specified backup.'
        in: query
        name: backup_id
        required: false
        schema:
          type: string
      - description: Credential id describe the credentials for the cloud.
        in: query
        name: credential_id
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkCloudBackupSizeResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Size returns the size of any cloud backups of a volume
      tags:
      - OpenStorageCloudBackup
  /v1/cloudbackups/statechange:
    post:
      operationId: OpenStorageCloudBackup_StateChange
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkCloudBackupStateChangeRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkCloudBackupStateChangeResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: StateChange can be used to stop, pause, and restart a backup
      tags:
      - OpenStorageCloudBackup
  /v1/cloudbackups/status:
    post:
      operationId: OpenStorageCloudBackup_Status
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apiSdkCloudBackupStatusRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiSdkCloudBackupStatusResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/runtimeError'
          description: An unexpected error response.
      summary: Status returns the status of any cloud backups of a volume
      tags:
      - OpenStorageCloudBackup
components:
  schemas:
    apiSdkCloudBackupHistoryResponse:
      properties:
        history_list:
          items:
            $ref: '#/components/schemas/apiSdkCloudBackupHistoryItem'
          title: HistoryList is list of past backups on this volume
          type: array
      title: Defines a response containing a list of history of backups to a cloud provider
      type: object
    apiSdkCloudBackupRestoreRequest:
      properties:
        backup_id:
          title: Backup ID being restored
          type: string
        credential_id:
          title: The credential to be used for restore operation
          type: string
        locator:
          $ref: '#/components/schemas/apiVolumeLocator'
        node_id:
          title: 'Optional for provisioning restore

            volume (ResoreVolumeName should not be specified)'
          type: string
        restore_volume_name:
          title: 'Optional volume Name of the new volume to be created

            in the cluster for restoring the cloudbackup'
          type: string
        spec:
          $ref: '#/components/schemas/apiRestoreVolumeSpec'
        task_id:
          title: TaskId of the task performing this restore
          type: string
      title: 'Defines a request to restore a volume from an existing backup stored by

        a cloud provider'
      type: object
    apiProxyProtocol:
      default: PROXY_PROTOCOL_INVALID
      description: "ProxyProtocol defines the protocol used for proxy.\n\n - PROXY_PROTOCOL_INVALID: Invalid uninitialized value\n - PROXY_PROTOCOL_NFS: NFS indicates that the external data source is NFS and the volume\nwill be reflected over NFS protocol\n - PROXY_PROTOCOL_S3: S3 indicates that the external data source is an object store.\n - PROXY_PROTOCOL_PXD: PXD indicates that the external data source is a Portworx block volume.\n - PROXY_PROTOCOL_PURE_BLOCK: PURE_BLOCK indicates that the external data source is a pure_block volume.\n - PROXY_PROTOCOL_PURE_FILE: PURE_FILE indicates that the external data source is a pure_file volume."
      enum:
      - PROXY_PROTOCOL_INVALID
      - PROXY_PROTOCOL_NFS
      - PROXY_PROTOCOL_S3
      - PROXY_PROTOCOL_PXD
      - PROXY_PROTOCOL_PURE_BLOCK
      - PROXY_PROTOCOL_PURE_FILE
      type: string
    OwnershipAccessType:
      default: Read
      description: "Access types can be set by owner to have different levels of access to\na resource.\n\nIt is up to the resource to interpret what the types mean and are\nused for.\n\n - Read: Read access only and cannot affect the resource.\n - Write: Write access and can affect the resource.\nThis type automatically provides Read access also.\n - Admin: Administrator access.\nThis type automatically provides Read and Write access also."
      enum:
      - Read
      - Write
      - Admin
      type: string
    apiSdkSchedulePolicyInterval:
      properties:
        daily:
          $ref: '#/components/schemas/apiSdkSchedulePolicyIntervalDaily'
        monthly:
          $ref: '#/components/schemas/apiSdkSchedulePolicyIntervalMonthly'
        periodic:
          $ref: '#/components/schemas/apiSdkSchedulePolicyIntervalPeriodic'
        retain:
          format: int64
          title: Number of instances to retain
          type: string
        weekly:
          $ref: '#/components/schemas/apiSdkSchedulePolicyIntervalWeekly'
      title: Defines a schedule policy interval
      type: object
    apiSdkCloudBackupSchedCreateResponse:
      properties:
        backup_schedule_id:
          title: Id of newly created backup schedule
          type: string
      title: 'Defines a response containing the id of a schedule for a volume backup

        to a cloud provider'
      type: object
    apiS3ProxySpec:
      description: S3ProxySpec is the spec for proxying an external object store.
      properties:
        bucket_name:
          title: BucketName is the name of the bucket from the object store
          type: string
      type: object
    apiRestoreVolSnashotSchedule:
      properties:
        schedule:
          type: string
      type: object
    apiSdkCloudBackupGroupCreateRequest:
      properties:
        credential_id:
          title: Credential id refers to the cloud credentials needed to backup
          type: string
        delete_local:
          title: 'DeleteLocal indicates if local snap created for backup must be deleted after

            the backup is complete'
          type: boolean
        full:
          title: Full indicates if full backup is desired even though incremental is possible
          type: boolean
        group_id:
          title: GroupID of the volume for which cloudbackup is requested
          type: string
        labels:
          additionalProperties:
            type: string
          description: 'Labels are list of key value pairs to tag the cloud backup. These labels

            are stored in the metadata associated with the backup.'
          type: object
        volume_ids:
          items:
            type: string
          title: 'VolumeIds are a list of volume IDs to use for the backup request.

            If multiple of GroupID, Labels or VolumeIDs are specified, volumes matching

            all of them are backed uup'
          type: array
      title: Defines a request to create a group backup of a group to the cloud
      type: object
    OwnershipPublicAccessControl:
      properties:
        type:
          $ref: '#/components/schemas/OwnershipAccessType'
      title: PublicAccessControl allows assigning public ownership
      type: object
    apiSdkCloudBackupClusterType:
      default: SdkCloudBackupClusterUnknown
      description: "- SdkCloudBackupClusterUnknown: Unknown\n - SdkCloudBackupClusterCurrent: Beongs to this cluster\n - SdkCloudBackupClusterOther: not this. other cluster"
      enum:
      - SdkCloudBackupClusterUnknown
      - SdkCloudBackupClusterCurrent
      - SdkCloudBackupClusterOther
      title: CloudBackup operations types
      type: string
    apiSdkCloudBackupSchedCreateRequest:
      properties:
        cloud_sched_info:
          $ref: '#/components/schemas/apiSdkCloudBackupScheduleInfo'
      title: 'Defines a request to create a schedule for volume backups to a

        cloud provider'
      type: object
    apiSdkSchedulePolicyIntervalWeekly:
      properties:
        day:
          $ref: '#/components/schemas/apiSdkTimeWeekday'
        hour:
          format: int32
          title: 'Range: 0-23'
          type: integer
        minute:
          format: int32
          title: 'Range: 0-59'
          type: integer
      title: Defines a weekly schedule
      type: object
    apiSdkCloudBackupHistoryItem:
      properties:
        src_volume_id:
          title: SrcVolumeID is volume ID which was backedup
          type: string
        status:
          $ref: '#/components/schemas/apiSdkCloudBackupStatusType'
        timestamp:
          format: date-time
          title: TimeStamp is the time at which either backup completed/failed
          type: string
      title: 'SdkCloudBackupHistoryItem contains information about a backup for a

        specific volume'
      type: object
    Sharedv4ServiceSpecServiceType:
      default: UNSPECIFIED
      description: "Type of sharedv4 service. Values are governed by the different types\nof services supported by container orchestrators such as Kubernetes.\n\n - UNSPECIFIED: Unspecified\n - NODEPORT: Export the sharedv4 service on each Node's IP.\nIn this mode the sharedv4 volume can be accessed from outside the\ncluster using one of the node's IPs.\n - CLUSTERIP: Export the shared4 service on an internal cluster IP.\nIn this mode the sharedv4 volume will only be accessible\nwithin the cluster via this service.\n - LOADBALANCER: Expose the sharedv4 service on cloud provider's load balancer.\nApplicable when running in cloud. In this mode the sharedv4 volume\ncan be accessed from outside the cluster.\n - NONE: Do not use sharedv4 service feature. Use legacy sharedv4 volumes instead."
      enum:
      - UNSPECIFIED
      - NODEPORT
      - CLUSTERIP
      - LOADBALANCER
      - NONE
      type: string
    apiCosType:
      default: NONE
      enum:
      - NONE
      - LOW
      - MEDIUM
      - HIGH
      type: string
    apiIoStrategy:
      description: IoStrategy defines how I/O should be performed to backing storage media.
      properties:
        async_io:
          description: AsyncIO enables kaio.
          type: boolean
        direct_io:
          title: Enable direct I/O on the backing datastore
          type: boolean
        early_ack:
          description: EarlyAck enables acks for async I/O at the source.
          type: boolean
      type: object
    apiSdkCloudBackupSchedDeleteResponse:
      title: Empty response
      type: object
    apiSdkSchedulePolicyIntervalPeriodic:
      properties:
        seconds:
          format: int64
          title: Specify the number of seconds between intervals
          type: string
      title: Defines a periodic schedule
      type: object
    apiSdkCloudBackupEnumerateWithFiltersRequest:
      description: '* For a specific volume in current cluster: Set `src_volume_id` to your desired volume id

        and do not provide `cluster_id` and `all`.

        * For a specific volume in a specific cluster: Set `src_volume_id` to your desired volume id

        and specify `cluster_id`.

        * For a specific volume in all clusters: Set `src_volume_id` to your desired volume id

        and set `all` to true, do not provide `cluster_id`.

        * For all volumes in current cluster: do not provide `cluster_id`, `volume_id` and `all`.

        * For all volumes in a specific cluster: Set `cluster_id` to your desired cluster id

        and do not provide `volume_id` and `all`.

        * For all volumes in all clusters: Set `all` to true do not provide `volume_id` and `cluster_id`.'
      properties:
        all:
          description: (optional) All indicates if the request should show cloud backups for all clusters or the current cluster.
          type: boolean
        cloud_backup_id:
          title: 'If one wants to enumerate known backup, set this field to the backup ID

            naming format :clusteruuidORbicketname/srcVolId-snapId(-incr)'
          type: string
        cluster_id:
          title: (optional) Cluster id specifies the cluster for the request
          type: string
        continuation_token:
          description: 'Returned in the enumerate response if not all of the backups could be returned in the

            response.'
          type: string
        credential_id:
          title: Credential id is the credential for cloud to be used for the request
          type: string
        max_backups:
          format: uint64
          title: (optional) if caller wished to limit number of backups returned by enumerate
          type: string
        metadata_filter:
          additionalProperties:
            type: string
          title: (optional) Enumerates backups that have tags of this type
          type: object
        missing_src_volumes:
          title: 'To enumerate cloudbackups for which source volumes do not exist in this

            cluster'
          type: boolean
        src_volume_id:
          description: (optional) Source id of the volume for the request.
          type: string
        status_filter:
          $ref: '#/components/schemas/apiSdkCloudBackupStatusType'
      title: 'Defines a request to list the backups stored by a cloud provider.

        The following combinations can be used to get cloud backup information:'
      type: object
    apiSdkCloudBackupDeleteAllResponse:
      title: Empty response
      type: object
    apiReplicaSet:
      properties:
        id:
          format: int64
          title: ID is the unique ID of this replica set
          type: integer
        nodes:
          items:
            type: string
          type: array
        pool_uuids:
          items:
            type: string
          title: Unique IDs of the storage pools for this replica set
          type: array
      title: 'ReplicaSet set of machine IDs (nodes) to which part of this volume is erasure

        coded - for clustered storage arrays'
      type: object
    apiSdkTimeWeekday:
      default: SdkTimeWeekdaySunday
      description: "- SdkTimeWeekdaySunday: Sunday\n - SdkTimeWeekdayMonday: Monday\n - SdkTimeWeekdayTuesday: Tuesday\n - SdkTimeWeekdayWednesday: Wednesday\n - SdkTimeWeekdayThursday: Thursday\n - SdkTimeWeekdayFriday: Friday\n - SdkTimeWeekdaySaturday: Saturday"
      enum:
      - SdkTimeWeekdaySunday
      - SdkTimeWeekdayMonday
      - SdkTimeWeekdayTuesday
      - SdkTimeWeekdayWednesday
      - SdkTimeWeekdayThursday
      - SdkTimeWeekdayFriday
      - SdkTimeWeekdaySaturday
      title: Defines times of day
      type: string
    apiSdkCloudBackupStatusRequest:
      properties:
        local:
          title: 'Local indicates if only those backups/restores that are

            active on current node must be returned'
          type: boolean
        near_sync_migrate:
          title: Indicates if this is for nearsync migration
          type: boolean
        task_id:
          description: 'TaskId of the backup/restore task, if this is specified,

            volume_id is ignored.'
          type: string
        volume_id:
          description: '(optional) VolumeId is a value which is used to get information on the

            status of a backup for the specified volume. If no volume id and task_id

            is provided, then status for all volumes is returned.'
          type: string
      title: 'Defines a request to retrieve the status of a backup or restore for a

        specified volume'
      type: object
    apiSharedv4Spec:
      properties:
        failover_strategy:
          $ref: '#/components/schemas/apiSharedv4FailoverStrategyValue'
      title: Sharedv4Spec specifies common properties of sharedv4 and sharedv4 service volumes
      type: object
    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
    apiSdkCloudBackupStateChangeRequest:
      properties:
        requested_state:
          $ref: '#/components/schemas/apiSdkCloudBackupRequestedState'
        task_id:
          title: 'Describes the backup/restore task

            state change is being requested'
          type: string
      title: 'Defines a request to change the state of a backup or restore to or

        from a cloud provider'
      type: object
    apiSdkCloudBackupSizeResponse:
      properties:
        capacity_required_for_restore:
          format: uint64
          title: Used size of the volume to be restored (in bytes)
          type: string
        compressed_object_bytes:
          format: uint64
          title: Size of the compressed individual backup in object-store or NFS
          type: string
        size:
          format: uint64
          title: Same value as total_download_bytes, will be deprecated
          type: string
        total_download_bytes:
          format: uint64
          title: Total download size of all the backups (full & incremental) required for a restore
          type: string
      title: Defines a response containing the size of the volume
      type: object
    apiRestoreParamBoolType:
      default: PARAM_BKUPSRC
      enum:
      - PARAM_BKUPSRC
      - PARAM_FALSE
      - PARAM_TRUE
      type: string
    apiExportSpec:
      description: ExportSpec defines how the volume is exported..
      properties:
        export_options:
          description: ExportOptions options exporting the volume.
          type: string
        export_protocol:
          $ref: '#/components/schemas/apiExportProtocol'
      type: object
    apiReplicaPlacementSpec:
      properties:
        affected_replicas:
          format: int32
          title: 'AffectedReplicas defines the number of volume replicas affected by this rule. If not provided,

            rule would affect all replicas

            (optional)'
          type: integer
        enforcement:
          $ref: '#/components/schemas/apiEnforcementType'
        match_expressions:
          description: MatchExpressions is a list of label selector requirements. The requirements are ANDed.
          items:
            $ref: '#/components/schemas/apiLabelSelectorRequirement'
          type: array
        topology_key:
          title: 'TopologyKey key for the matching all segments of the cluster topology with the same key

            e.g If the key is failure-domain.beta.kubernetes.io/zone, this should match all nodes with

            the same value for this key (i.e in the same zone)'
          type: string
        weight:
          format: int64
          title: 'Weight defines the weight of the rule which allows to break the tie with other matching rules. A rule with

            higher weight wins over a rule with lower weight.

            (optional)'
          type: string
      type: object
    apiEnforcementType:
      default: required
      description: "- required: This specifies that the rule is required and must be strictly enforced\n - preferred: This specifies that the rule is preferred and can be best effort"
      enum:
      - required
      - preferred
      title: Defines the types of enforcement on the given rules
      type: string
    apiSdkCloudBackupCreateResponse:
      properties:
        task_id:
          title: TaskId of the task performing the backup
          type: string
      title: Empty response
      type: object
    apiSdkSchedulePolicyIntervalDaily:
      properties:
        hour:
          format: int32
          title: 'Range: 0-23'
          type: integer
        minute:
          format: int32
          title: 'Range: 0-59'
          type: integer
      title: Defines a daily schedule
      type: object
    apiSharedv4FailoverStrategyValue:
      default: UNSPECIFIED
      description: " - UNSPECIFIED: Unspecified\n - AGGRESSIVE: Fail over to the new NFS server quickly. This is appropriate for\nthe apps with sharedv4 service volumes. It can also be used\nfor the apps with sharedv4 volumes when

# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/portworx/refs/heads/main/openapi/portworx-openstoragecloudbackup-api-openapi.yml