Delphix PaaSSnapshots API

The PaaSSnapshots API from Delphix — 10 operation(s) for paassnapshots.

OpenAPI Specification

delphix-paassnapshots-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Delphix DCT Algorithms PaaSSnapshots API
  version: 3.28.0
  description: Delphix DCT API
  contact:
    name: Delphix Support
    url: https://portal.perforce.com/s/
    email: support@delphix.com
servers:
- url: /dct/v3
security:
- ApiKeyAuth: []
tags:
- name: PaaSSnapshots
paths:
  /paas-instances/{paaSInstanceId}/snapshots:
    post:
      summary: Create a snapshot of a PaaS Instance
      operationId: create_paas_instance_snapshot
      tags:
      - PaaSSnapshots
      parameters:
      - $ref: '#/components/parameters/paaSInstanceIdParam'
      requestBody:
        content:
          application/json:
            schema:
              x-body-name: paas_snapshot_request
              $ref: '#/components/schemas/PaaSSnapshotRequest'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                title: CreatePaaSInstanceSnapshotResponse
                properties:
                  job:
                    $ref: '#/components/schemas/Job'
  /paas-snapshots:
    get:
      summary: Get all PaaS Snapshots
      operationId: get_all_paas_snapshots
      tags:
      - PaaSSnapshots
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/cursor'
      - $ref: '#/components/parameters/PaaSSnapshotSortParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                title: ListPaaSSnapshotResponse
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PaaSSnapshot'
                  response_metadata:
                    $ref: '#/components/schemas/PaginatedResponseMetadata'
  /paas-snapshots/{paaSSnapshotId}:
    parameters:
    - $ref: '#/components/parameters/paaSSnapshotIdParam'
    get:
      summary: Get PaaS Snapshot by ID
      operationId: get_paas_snapshot_by_id
      tags:
      - PaaSSnapshots
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaaSSnapshot'
  /paas-snapshots/{paaSSnapshotId}/tags:
    parameters:
    - $ref: '#/components/parameters/paaSSnapshotIdParam'
    post:
      tags:
      - PaaSSnapshots
      summary: Create tags for a PaaS Snapshot.
      operationId: create_paas_snapshot_tags
      requestBody:
        content:
          application/json:
            schema:
              x-body-name: paas_snapshot_tags
              $ref: '#/components/schemas/CloudTagsRequest'
        description: Tags information for PaaS Snapshot.
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudTagsResponse'
    get:
      tags:
      - PaaSSnapshots
      summary: Get tags for a PaaS Snapshot.
      operationId: get_paas_snapshot_tags
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudTagsResponse'
  /paas-snapshots/{paaSSnapshotId}/tags/delete:
    parameters:
    - $ref: '#/components/parameters/paaSSnapshotIdParam'
    post:
      tags:
      - PaaSSnapshots
      summary: Delete tags for a PaaS Snapshot.
      operationId: delete_paas_snapshot_tags
      requestBody:
        $ref: '#/components/requestBodies/DeleteCloudTags'
      responses:
        '204':
          description: No Content
  /paas-snapshots/search:
    post:
      summary: Search PaaS Snapshots
      operationId: search_paas_snapshots
      tags:
      - PaaSSnapshots
      x-filterable:
        fields:
          id:
            type: string
          name:
            type: string
          size:
            type: integer
            format: int64
          database_id:
            type: string
          database_name:
            type: string
          instance_id:
            type: string
          instance_name:
            type: string
          snapshot_location:
            type: string
          timestamp:
            type: string
            format: date-time
          end_timestamp:
            type: string
            format: date-time
          is_public:
            type: boolean
          cloud_account_id:
            type: string
          timeflow_id:
            type: string
          masked_by_execution_id:
            type: string
          masked_by_collection_id:
            type: string
          tags:
            type: array[object]
            fields:
              key:
                type: string
              value:
                type: string
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/cursor'
      - $ref: '#/components/parameters/PaaSSnapshotSortParam'
      requestBody:
        $ref: '#/components/requestBodies/SearchBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                title: SearchPaaSSnapshotResponse
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PaaSSnapshot'
                  response_metadata:
                    $ref: '#/components/schemas/PaginatedResponseMetadata'
  /paas-snapshots/{paaSSnapshotId}/delete:
    parameters:
    - $ref: '#/components/parameters/paaSSnapshotIdParam'
    post:
      summary: Delete PaaS Snapshot by ID
      operationId: delete_paas_snapshot_by_id
      tags:
      - PaaSSnapshots
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                title: DeletePaaSSnapshotResponse
                properties:
                  job:
                    description: The job object.
                    $ref: '#/components/schemas/Job'
  /paas-snapshots/{paaSSnapshotId}/share:
    post:
      summary: share PaaS Snapshots and make it public
      operationId: share_paas_snapshot
      tags:
      - PaaSSnapshots
      parameters:
      - $ref: '#/components/parameters/paaSSnapshotIdParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                title: SharePaaSSnapshotResponse
                type: object
                properties:
                  snapshot:
                    $ref: '#/components/schemas/PaaSSnapshot'
  /paas-snapshots/{paaSSnapshotId}/unshare:
    post:
      summary: un-share PaaS Snapshots and make it public
      operationId: unshare_paas_snapshot
      tags:
      - PaaSSnapshots
      parameters:
      - $ref: '#/components/parameters/paaSSnapshotIdParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                title: UnSharePaaSSnapshotResponse
                type: object
                properties:
                  snapshot:
                    $ref: '#/components/schemas/PaaSSnapshot'
  /paas-databases/{paaSDatabaseId}/snapshots:
    post:
      summary: Create a snapshot of a PaaS Database
      operationId: create_paas_database_snapshot
      tags:
      - PaaSSnapshots
      parameters:
      - $ref: '#/components/parameters/paaSDatabaseIdParam'
      requestBody:
        content:
          application/json:
            schema:
              x-body-name: paas_snapshot_request
              $ref: '#/components/schemas/PaaSSnapshotRequest'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                title: CreatePaaSDatabaseSnapshotResponse
                properties:
                  job:
                    $ref: '#/components/schemas/Job'
components:
  parameters:
    PaaSSnapshotSortParam:
      name: sort
      in: query
      description: The field to sort snapshot results by. A field prefixed with `-` indicates descending order.
      required: false
      schema:
        type: string
        enum:
        - id
        - -id
        - name
        - -name
        - size
        - -size
        - snapshot_location
        - -snapshot_location
        - database_id
        - -database_id
        - database_name
        - -database_name
        - instance_id
        - -instance_id
        - instance_name
        - -instance_name
        - timestamp
        - -timestamp
        - end_timestamp
        - -end_timestamp
        - is_public
        - -is_public
        - cloud_account_id
        - -cloud_account_id
        - timeflow_id
        - -timeflow_id
        nullable: true
        example: -timestamp
    paaSDatabaseIdParam:
      in: path
      name: paaSDatabaseId
      required: true
      schema:
        type: string
        minLength: 1
      description: The ID of the PaaS Database.
    paaSSnapshotIdParam:
      in: path
      name: paaSSnapshotId
      required: true
      schema:
        type: string
        minLength: 1
      description: The ID of the PaaS Snapshot.
    paaSInstanceIdParam:
      in: path
      name: paaSInstanceId
      required: true
      schema:
        type: string
        minLength: 1
      description: The ID of the PaaS Instance.
    limit:
      name: limit
      in: query
      description: Maximum number of objects to return per query. The value must be between 1 and 1000. Default is 100.
      example: 50
      schema:
        type: integer
        minimum: 1
        maximum: 1000
        default: 100
    cursor:
      name: cursor
      in: query
      description: Cursor to fetch the next or previous page of results. The value of this property must be extracted from the 'prev_cursor' or 'next_cursor' property of a PaginatedResponseMetadata which is contained in the response of list and search API endpoints.
      schema:
        type: string
        minLength: 1
        maxLength: 4096
  schemas:
    Tag:
      type: object
      required:
      - key
      - value
      properties:
        key:
          description: Key of the tag
          type: string
          minLength: 1
          maxLength: 4000
          example: key-1
        value:
          description: Value of the tag
          type: string
          minLength: 1
          maxLength: 4000
          example: value-1
    VirtualizationTaskEvent:
      deprecated: true
      properties:
        message_details:
          type: string
    CloudTagsResponse:
      type: object
      properties:
        tags:
          description: Array of tags with key value pairs
          type: array
          items:
            $ref: '#/components/schemas/CloudTag'
    CloudTag:
      type: object
      required:
      - key
      - value
      properties:
        key:
          description: Key of the tag
          type: string
          minLength: 1
          maxLength: 4000
          example: key-1
        value:
          description: Value of the tag
          type: string
          minLength: 1
          maxLength: 4000
          example: value-1
        mirror_on_cloud:
          description: Whether this tag is mirrored from/to the Cloud Provider account hosting the PaaS Database or Instance. Not applicable to non PaaS objects.
          type: boolean
          default: false
    Engine:
      properties:
        engine_id:
          type: string
          minLength: 1
          maxLength: 4000
        engine_name:
          type: string
          minLength: 1
          maxLength: 4000
    PaginatedResponseMetadata:
      type: object
      properties:
        prev_cursor:
          description: Pointer to the previous page of results. Use this value as a cursor query parameter in a subsequent request, along with limit, to navigate through the collection by virtual page.
          type: string
        next_cursor:
          description: Pointer to the next page of results. Use this value as a cursor query parameter in a subsequent request, along with limit, to navigate through the collection by virtual page.
          type: string
        total:
          description: The total number of results. This value may not be provided.
          type: integer
          format: int_64
    PaaSSnapshotRequest:
      type: object
      properties:
        is_public:
          description: Whether to make the new snapshot public.
          type: boolean
          example: true
        name:
          description: The name of the PaaS Snapshot.
          type: string
          minLength: 1
          maxLength: 128
          example: my-snapshot-123
    JobTaskEvent:
      properties:
        message_details:
          type: string
    JobTask:
      properties:
        id:
          type: string
        parent_job_id:
          type: string
        start_time:
          type: string
          format: date-time
        end_time:
          type: string
          format: date-time
        title:
          type: string
        percent_complete:
          type: integer
          minimum: 0
          maximum: 100
        events:
          type: array
          items:
            $ref: '#/components/schemas/JobTaskEvent'
        status:
          type: string
          enum:
          - PENDING
          - STARTED
          - TIMEDOUT
          - RUNNING
          - CANCELED
          - FAILED
          - SUSPENDED
          - WAITING
          - COMPLETED
          - ABANDONED
    SearchBody:
      description: Search body.
      type: object
      properties:
        filter_expression:
          type: string
          minLength: 5
          maxLength: 50000
          example: string_field CONTAINS "over" AND numberic_field GT 9000 OR string_field2 EQ "Goku"
    CloudTagsRequest:
      type: object
      required:
      - tags
      properties:
        tags:
          description: Array of tags with key value pairs
          type: array
          items:
            $ref: '#/components/schemas/CloudTag'
          minItems: 1
          maxItems: 1000
          uniqueItems: true
    VirtualizationTask:
      deprecated: true
      properties:
        id:
          type: string
        parent_job_id:
          type: string
        start_time:
          type: string
          format: date-time
        end_time:
          type: string
          format: date-time
        title:
          type: string
        percent_complete:
          type: integer
          minimum: 0
          maximum: 100
        events:
          type: array
          items:
            $ref: '#/components/schemas/VirtualizationTaskEvent'
        status:
          type: string
          enum:
          - PENDING
          - STARTED
          - TIMEDOUT
          - RUNNING
          - CANCELED
          - FAILED
          - SUSPENDED
          - WAITING
          - COMPLETED
          - ABANDONED
    DeleteCloudTag:
      type: object
      properties:
        key:
          description: Key of the tag
          type: string
          minLength: 1
          maxLength: 4000
          example: key-1
        value:
          description: Value of the tag
          type: string
          minLength: 1
          maxLength: 4000
          example: value-1
        tags:
          description: List of tags to be deleted
          type: array
          minItems: 1
          maxItems: 1000
          uniqueItems: true
          items:
            $ref: '#/components/schemas/CloudTag'
    PaaSSnapshot:
      description: A PaaS Snapshot.
      type: object
      properties:
        id:
          description: The ID of the PaaS Snapshot.
          type: string
          example: snapshot-123
        name:
          description: The name of the PaaS Snapshot.
          type: string
          example: my-snapshot-123
        size:
          description: The size of the PaaS Snapshot in bytes.
          type: integer
          format: int64
          example: 123456789
        snapshot_location:
          description: The location of the PaaS Snapshot. This is platform specific and may represent a logical unique identifier, a location on storage, ...
          type: string
        database_id:
          description: The ID of the PaaS Database.
          type: string
          example: my-db-123
        instance_id:
          description: The ID of the PaaS Instance.
          type: string
          example: my-db-123
        database_name:
          description: The name of the PaaS Database.
          type: string
          example: my-db
        instance_name:
          description: The name of the PaaS Database instance.
          type: string
          example: my-db
        timestamp:
          type: string
          format: date-time
          description: The timestamp of the PaaS Snapshot. If this snapshot represents a range, this is the start timestamp of the range.
          example: '2021-05-01T08:51:34.148000+00:00'
        end_timestamp:
          description: The last point in time data can be provisioned or refresh to. If the snapshots represents a single point in time, this is equal to timestamp. Otherwise, it must be greater than timestamp, and indicates than any timestamp between timestamp and end_timestamp can be used. If this is null, it indicates the snapshot is valid until the current time.
          type: string
          format: date-time
          example: '2025-05-01T09:51:34.148000+00:00'
        is_public:
          description: Whether this snapshot is public or not.
          type: boolean
          example: true
        is_dct_managed:
          description: Whether this snapshot was created via DCT or not. All snapshots can be used to provision or refresh, but only DCT managed snapshots can be deleted via DCT.
          type: boolean
          example: true
        is_automated_backup:
          description: Whether this snapshot represents an automated backup. Automated backups are point-in-time backups with a retention period that represent a range of time rather than a single point.
          type: boolean
          example: true
        cloud_account_id:
          description: The ID of the Cloud Account.
          type: string
          example: my-db-123
        timeflow_id:
          description: The ID of the PaaSTimeflow this snapshot belongs to.
          type: string
          example: timeflow-123
        masked_by_execution_id:
          description: The ID of the compliance job collection execution that masked this snapshot, if any.
          type: string
          readOnly: true
        masked_by_collection_id:
          description: The ID of the compliance job collection that masked this snapshot, if any.
          type: string
          readOnly: true
        tags:
          type: array
          items:
            $ref: '#/components/schemas/CloudTag'
    Job:
      description: An asynchronous task.
      type: object
      properties:
        id:
          description: The Job entity ID.
          type: string
          example: job-123
        status:
          description: The status of the job.
          type: string
          enum:
          - PENDING
          - STARTED
          - TIMEDOUT
          - RUNNING
          - CANCELED
          - FAILED
          - SUSPENDED
          - WAITING
          - COMPLETED
          - ABANDONED
          example: RUNNING
        is_waiting_for_telemetry:
          description: Indicates that the operations performed by this Job have completed successfully, but the object changes are not yet reflected. This is only set when when the JOB is in STARTED status, with the guarantee that the job will not transition to the FAILED status. Note that this flag will likely be replaced with a new status in future API versions and be deprecated.
          type: boolean
        type:
          description: The type of job being done.
          type: string
          example: DB_REFRESH
        localized_type:
          description: The i18n translated type of job being done.
          type: string
          example: DB Refresh
        error_details:
          description: Details about the failure for FAILED jobs.
          type: string
          example: Unable to connect to the engine.
        warning_message:
          description: Warnings for the job.
          type: string
          example: 'Failed to remove local MaskingJob, engineId: 3 localMaskingJobId: 7.'
        target_id:
          description: A reference to the job's target.
          type: string
          example: vdb-123
        target_name:
          description: A reference to the job's target name.
          type: string
          example: vdb
        start_time:
          description: The time the job started executing.
          type: string
          format: date-time
          example: '2022-01-02T05:11:24.148000+00:00'
        update_time:
          description: The time the job was last updated.
          type: string
          format: date-time
          example: '2022-01-02T06:11:24.148000+00:00'
        trace_id:
          description: traceId of the request which created this Job
          type: string
        engine_ids:
          description: IDs of the engines this Job is executing on.
          type: array
          items:
            type: string
          deprecated: true
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
        engines:
          type: array
          items:
            $ref: '#/components/schemas/Engine'
        account_id:
          description: The ID of the account who initiated this job.
          type: integer
          example: 1
        account_name:
          description: The account name which initiated this job. It can be either firstname and lastname combination or firstname or lastname or username or email address or Account-<id>.
          type: string
          example: User 1
        compliance_node_id:
          description: The ID of the associated compliance node, if applicable.
          type: string
          nullable: true
        compliance_node_name:
          description: The name of the associated compliance node, if applicable.
          type: string
          nullable: true
        percent_complete:
          description: Completion percentage of the Job.
          type: integer
          minimum: 0
          maximum: 100
          example: '50'
        virtualization_tasks:
          deprecated: true
          type: array
          items:
            $ref: '#/components/schemas/VirtualizationTask'
        tasks:
          type: array
          items:
            $ref: '#/components/schemas/JobTask'
        execution_id:
          description: The ID of the associated masking execution, if any.
          type: string
          nullable: true
        result_type:
          description: The type of the job result. This is the type of the object present in the result.
          type: string
        result:
          description: The result of the job execution. This is JSON serialized string of the result object whose type is specified by result_type property.
          type: object
      discriminator:
        propertyName: class_type
  requestBodies:
    SearchBody:
      x-skip-codegen-attr: description
      description: 'A request body containing a filter expression. This enables searching

        for items matching arbitrarily complex conditions. The list of

        attributes which can be used in filter expressions is available

        in the x-filterable vendor extension.


        # Filter Expression Overview

        **Note: All keywords are case-insensitive**


        ## Comparison Operators

        | Operator | Description | Example |

        | --- | --- | --- |

        | CONTAINS | Substring or membership testing for string and list attributes respectively. | field3 CONTAINS ''foobar'', field4 CONTAINS TRUE  |

        | IN | Tests if field is a member of a list literal. List can contain a maximum of 100 values | field2 IN [''Goku'', ''Vegeta''] |

        | GE | Tests if a field is greater than or equal to a literal value | field1 GE 1.2e-2 |

        | GT | Tests if a field is greater than a literal value | field1 GT 1.2e-2 |

        | LE | Tests if a field is less than or equal to a literal value | field1 LE 9000 |

        | LT | Tests if a field is less than a literal value | field1 LT 9.02 |

        | NE | Tests if a field is not equal to a literal value | field1 NE 42 |

        | EQ | Tests if a field is equal to a literal value | field1 EQ 42 |


        ## Search Operator

        The SEARCH operator filters for items which have any filterable

        attribute that contains the input string as a substring, comparison

        is done case-insensitively. This is not restricted to attributes with

        string values. Specifically `SEARCH ''12''` would match an item with an

        attribute with an integer value of `123`.


        ## Logical Operators

        Ordered by precedence.

        | Operator | Description | Example |

        | --- | --- | --- |

        | NOT | Logical NOT (Right associative) | NOT field1 LE 9000 |

        | AND | Logical AND (Left Associative) | field1 GT 9000 AND field2 EQ ''Goku'' |

        | OR | Logical OR (Left Associative) | field1 GT 9000 OR field2 EQ ''Goku'' |


        ## Grouping

        Parenthesis `()` can be used to override operator precedence.


        For example:

        NOT (field1 LT 1234 AND field2 CONTAINS ''foo'')


        ## Literal Values

        | Literal      | Description | Examples |

        | --- | --- | --- |

        | Nil | Represents the absence of a value | nil, Nil, nIl, NIL |

        | Boolean | true/false boolean | true, false, True, False, TRUE, FALSE |

        | Number | Signed integer and floating point numbers. Also supports scientific notation. | 0, 1, -1, 1.2, 0.35, 1.2e-2, -1.2e+2 |

        | String | Single or double quoted | "foo", "bar", "foo bar", ''foo'', ''bar'', ''foo bar'' |

        | Datetime | Formatted according to [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339) | 2018-04-27T18:39:26.397237+00:00 |

        | List | Comma-separated literals wrapped in square brackets | [0], [0, 1], [''foo'', "bar"] |


        ## Limitations

        - A maximum of 8 unique identifiers may be used inside a filter expression.

        '
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SearchBody'
          examples:
            nested:
              description: 'An example of a nested Object comparison testing that at least one repository has a

                version which is equal to 19.0.0.

                '
              summary: Nested Object Comparison
              value:
                filter_expression: repositories CONTAINS {version eq '19.0.0'}
            relative:
              description: 'An example of a relative comparison testing that field1 has a

                value which is less than 123.

                '
              summary: Relative comparison
              value:
                filter_expression: field1 LE 123
            nil:
              description: 'An example of using nil to test for the absence of a value for field2.

                '
              summary: Absence of an attribute value
              value:
                filter_expression: field2 EQ NIL
            non-nil:
              description: 'An example of using nil to test for the existence of a value for field2.

                '
              summary: Existence of an attribute value
              value:
                filter_expression: field2 NE NIL
            contains:
              description: 'An example of using the ''CONTAINS'' operator to check if

                field2 contains the string ''foo''. If field2 is string valued

                then this is checking if ''foo'' is a substring of field2. If

                field2 is a list of strings then this is checking if ''foo''

                is a member of the list.

                '
              summary: Use of the CONTAINS operator
              value:
                filter_expression: field2 CONTAINS 'foo'
            in:
              description: 'An example of using the ''IN'' operator to check if field1

                is an element of a list literal.

                '
              summary: Use of the IN operator
              value:
                filter_expression: field1 IN [1, 2, 3]
            search:
              description: 'An example of using the ''SEARCH'' operator to retrieve all elements

                for which ''foo'' is a substring of a filterable attribute.

                '
              summary: Use of the SEARCH operator
              value:
                filter_expression: SEARCH 'foo'
            parenthesis:
              description: 'An example of parenthesis being used to group operators & override

                operator precedence.

                '
              summary: Overriding operator precedence
              value:
                filter_expression: field1 LT 1234 AND (field2 CONTAINS 'foo' OR field3 CONTAINS 'bar')
    DeleteCloudTags:
      description: The parameters to delete cloud tags
      content:
        application/json:
          schema:
            x-body-name: deleteCloudTag
            $ref: '#/components/schemas/DeleteCloudTag'
          examples:
            delete_all_tags:
              description: Delete all tags for given object - No request body required
              summary: Delete all tags
              value: {}
            delete_tags_by_key:
              description: Delete all tags for given object with matching key
              summary: Delete tags by key
              value:
                key: key-1
            delete_tags_by_key_value:
              description: Delete tag for given object with matching key and value
              summary: Delete a tag by key & value
              value:
                key: key-1
                value: value-1
            delete_multiple_tags_by_key_value:
              description: Delete tags for given list of tags with matching key and value
              summary: Delete multiple tags by key & value
              value:
                tags:
                - key: key-1
                  value: value-1
                  mirror_on_cloud: true
                - key: key-2
                  value: value-2
                  mirror_on_cloud: false
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization