Palo Alto Networks Snippet Snapshots API

Snippet Snapshots

OpenAPI Specification

palo-alto-networks-snippet-snapshots-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  title: Configuration Setup Snippet Snapshots API
  description: These APIs are used to define how Strata Cloud Manager configurations are implemented.
  termsOfService: https://www.paloaltonetworks.com/content/dam/pan/en_US/assets/pdf/legal/palo-alto-networks-end-user-license-agreement-eula.pdf
  contact:
    email: support@paloaltonetworks.com
    name: Palo Alto Networks Technical Support
    url: https://support.paloaltonetworks.com
  license:
    name: MIT
    url: https://opensource.org/license/mit
servers:
- url: https://api.strata.paloaltonetworks.com/config/setup/v1
  description: Current
security:
- scmToken: []
tags:
- name: Snippet Snapshots
  description: Snippet Snapshots
paths:
  /snippet-snapshots:
    post:
      summary: Save Snippet Snapshots
      description: 'Save Snippet Snapshots.

        '
      tags:
      - Snippet Snapshots
      operationId: SaveSnippetSnapshot
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/save_snippet_snapshot_payload'
        description: The `Save Snippet Snapshots` resource definition
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/save_snippet_snapshot_config_response'
          description: OK
        '400':
          $ref: '#/components/responses/bad_request_errors_basic_with_body'
        '401':
          $ref: '#/components/responses/auth_errors'
        '403':
          $ref: '#/components/responses/access_errors'
        '409':
          $ref: '#/components/responses/conflict_errors'
        default:
          $ref: '#/components/responses/default_errors'
  /snippet-snapshots:publish:
    post:
      summary: Publish Snippet Snapshots
      description: 'Publish Snippet Snapshots.

        '
      tags:
      - Snippet Snapshots
      operationId: PublishSnippetSnapshot
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/snippet_snapshot_publish_request'
        description: The `Snippet Snapshots To Publish` resource definition
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/snippet_snapshot_publish_response'
          description: OK
        '400':
          $ref: '#/components/responses/bad_request_errors_basic_with_body'
        '401':
          $ref: '#/components/responses/auth_errors'
        '403':
          $ref: '#/components/responses/access_errors'
        '409':
          $ref: '#/components/responses/conflict_errors'
        default:
          $ref: '#/components/responses/default_errors'
  /snippet-snapshots:compare:
    post:
      summary: Compare Snippet Snapshots
      description: 'Compare Snippet Snapshots.

        '
      tags:
      - Snippet Snapshots
      operationId: CompareSnippetSnapshot
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/compare_snippet_snapshot_config_payload'
        description: The `Snippet Snapshots To Compare` resource definition
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/snippet_snapshot_compare_response'
          description: OK
        '400':
          $ref: '#/components/responses/bad_request_errors_basic_with_body'
        '401':
          $ref: '#/components/responses/auth_errors'
        '403':
          $ref: '#/components/responses/access_errors'
        '409':
          $ref: '#/components/responses/conflict_errors'
        default:
          $ref: '#/components/responses/default_errors'
  /snippet-snapshots:diff:
    post:
      summary: Diff Snippet Snapshots
      description: 'Diff Snippet Snapshots.

        '
      tags:
      - Snippet Snapshots
      operationId: DiffSnippetSnapshot
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/compare_tlo_payload'
        description: The `Snippet Snapshots To Differentiate` resource definition
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/snippet_snapshot_diff_response'
          description: OK
        '400':
          $ref: '#/components/responses/bad_request_errors_basic_with_body'
        '401':
          $ref: '#/components/responses/auth_errors'
        '403':
          $ref: '#/components/responses/access_errors'
        '409':
          $ref: '#/components/responses/conflict_errors'
        default:
          $ref: '#/components/responses/default_errors'
  /snippet-snapshots:load:
    post:
      summary: Load Snippet Snapshots
      description: 'Load Snippet Snapshots.

        '
      tags:
      - Snippet Snapshots
      operationId: LoadSnippetSnapshot
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/snippet_snapshot_load_snippet_payload'
        description: The `Snippet Snapshots To Load` resource definition
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/snippet_snapshot_load_snippet_response'
          description: OK
        '400':
          $ref: '#/components/responses/bad_request_errors_basic_with_body'
        '401':
          $ref: '#/components/responses/auth_errors'
        '403':
          $ref: '#/components/responses/access_errors'
        '409':
          $ref: '#/components/responses/conflict_errors'
        default:
          $ref: '#/components/responses/default_errors'
  /snippet-snapshots:updates:
    post:
      summary: Update Snippet Snapshots
      description: 'Update Snippet Snapshots.

        '
      tags:
      - Snippet Snapshots
      operationId: UpdateSnippetSnapshot
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/snippet_snapshot_subscriber_compare_payload'
        description: The `Snippet Snapshots To Update` resource definition
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/snippet_snapshot_subscriber_compare_response'
          description: OK
        '400':
          $ref: '#/components/responses/bad_request_errors_basic_with_body'
        '401':
          $ref: '#/components/responses/auth_errors'
        '403':
          $ref: '#/components/responses/access_errors'
        '409':
          $ref: '#/components/responses/conflict_errors'
        default:
          $ref: '#/components/responses/default_errors'
  /snippet-snapshots:convert:
    post:
      summary: Convert Snippet Snapshots
      description: 'Convert Snippet Snapshots.

        '
      tags:
      - Snippet Snapshots
      operationId: ConvertSnippetSnapshot
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/common_snippet_snapshot_payload'
        description: The `Snippet Snapshots To Convert` resource definition
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dynamic_entry'
          description: OK
        '400':
          $ref: '#/components/responses/bad_request_errors_basic_with_body'
        '401':
          $ref: '#/components/responses/auth_errors'
        '403':
          $ref: '#/components/responses/access_errors'
        '409':
          $ref: '#/components/responses/conflict_errors'
        default:
          $ref: '#/components/responses/default_errors'
components:
  schemas:
    compare_snippet_snapshot_config_payload:
      type: object
      properties:
        id:
          type: string
        version:
          type: integer
        comparing_version:
          type: integer
      required:
      - id
      - version
      - comparing_version
    save_snippet_snapshot_payload:
      type: object
      properties:
        id:
          type: string
        description:
          type: string
      required:
      - id
      - description
    save_snippet_snapshot_config_response:
      type: object
      readOnly: true
      properties:
        status:
          type: string
          readOnly: true
        result:
          type: object
          readOnly: true
          properties:
            version:
              type: string
    dynamic_entry:
      type: object
      readOnly: true
      additionalProperties: true
    snippet_snapshot_publish_response:
      type: object
      readOnly: true
      properties:
        id:
          type: string
          readOnly: true
        tsgs:
          type: array
          readOnly: true
          items:
            type: string
        version:
          type:
          - integer
          - 'null'
          readOnly: true
        file_id:
          type:
          - integer
          - 'null'
          readOnly: true
        job_id:
          type: integer
          readOnly: true
    snippet_snapshot_load_snippet_payload:
      type: object
      properties:
        id:
          type: string
        version:
          type: string
      required:
      - id
      - version
    generic_error:
      type: object
      properties:
        _errors:
          $ref: '#/components/schemas/error_detail_cause_infos'
        _request_id:
          type: string
    error_detail_cause_info:
      title: Cause Info
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        details:
          oneOf:
          - type: string
          - type: object
        help:
          type: string
    snippet_snapshot_load_snippet_response:
      type: object
      readOnly: true
      properties:
        status:
          type: string
    error_detail_cause_infos:
      type: array
      items:
        $ref: '#/components/schemas/error_detail_cause_info'
    snippet_snapshot_compare_entry:
      type: object
      readOnly: true
      properties:
        id:
          type: string
          readOnly: true
        admin:
          type: string
          readOnly: true
          format: email
        loc:
          type: string
        loctype:
          type: string
        objectname:
          type: string
        objecttype:
          type: string
        operations:
          type: string
          enum:
          - edit
          - create
        timestamp:
          type: string
          format: date-time
    common_snippet_snapshot_payload:
      type: object
      properties:
        id:
          type: string
        keep_local:
          type: boolean
    snippet_snapshot_subscriber_compare_payload:
      type: object
      properties:
        id:
          type: string
        tenant_id:
          type: string
          description: Publisher Tenant ID
      required:
      - id
      - tenant_id
    snippet_snapshot_diff_response:
      type: object
      properties:
        after:
          type: object
          readOnly: true
          properties:
            '@ts':
              type: string
              readOnly: true
              format: date-time
            entry:
              type: array
              readOnly: true
              items:
                $ref: '#/components/schemas/dynamic_entry'
        before:
          type: object
          properties:
            '@ts':
              type: string
              format: date-time
            entry:
              type: array
              items:
                $ref: '#/components/schemas/dynamic_entry'
    snippet_snapshot_compare_response:
      type: array
      readOnly: true
      items:
        $ref: '#/components/schemas/snippet_snapshot_compare_entry'
    compare_tlo_payload:
      type: object
      properties:
        snippet_id:
          type: string
        object_id:
          type: string
        version:
          type: integer
        comparing_version:
          type: integer
      required:
      - snippet_id
      - object_id
      - version
      - comparing_version    -
    snippet_snapshot_subscriber_compare_response:
      type: object
      properties:
        publisher:
          type: object
          readOnly: true
          properties:
            entry:
              type: array
              items:
                $ref: '#/components/schemas/dynamic_entry'
        subscriber:
          type: object
          readOnly: true
          properties:
            entry:
              type: array
              items:
                $ref: '#/components/schemas/dynamic_entry'
    snippet_snapshot_publish_request:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        tsgs:
          type: array
          items:
            type: string
        validation:
          type: boolean
        version:
          type: integer
  examples:
    json_401_panui_auth_key_expired:
      summary: Key Expired
      value:
        _errors:
        - code: E016
          message: Key Expired
          details: {}
        _request_id: abcd-1234
    json_501_panui_restapi_method_not_supported:
      summary: Method Not Supported
      value:
        _errors:
        - code: E012
          message: Method Not Supported
          details: {}
        _request_id: abcd-1234
    json_400_panui_restapi_input_format_mismatch:
      summary: Input Format Mismatch
      value:
        _errors:
        - code: E003
          message: 'Input Format Mismatch: input-format=json'
          details: {}
        _request_id: abcd-1234
    json_501_panui_restapi_version_not_supported:
      summary: Version Not Supported
      value:
        _errors:
        - code: E012
          message: Version Not Supported
          details: {}
        _request_id: abcd-1234
    json_409_panui_mgmt_name_not_unique:
      summary: Name Not Unique
      value:
        _errors:
        - code: E006
          message: Name Not Unique
          details: {}
        _request_id: abcd-1234
    json_409_panui_mgmt_object_not_unique:
      summary: Object Not Unique
      value:
        _errors:
        - code: E016
          message: Object Not Unique
          details: {}
        _request_id: abcd-1234
    json_400_panui_restapi_missing_body:
      summary: Missing Body
      value:
        _errors:
        - code: E003
          message: Missing Body
          details: {}
        _request_id: abcd-1234
    json_409_panui_mgmt_reference_not_zero:
      summary: Reference Not Zero
      value:
        _errors:
        - code: E009
          message: Reference Not Zero
          details: {}
        _request_id: abcd-1234
    json_400_panui_restapi_output_format_mismatch:
      summary: Output Format Mismatch
      value:
        _errors:
        - code: E003
          message: 'Output Format Mismatch: output-format=json Accept=xml'
          details: {}
        _request_id: abcd-1234
    json_400_panui_mgmt_invalid_command:
      summary: Invalid Command
      value:
        _errors:
        - code: E003
          message: Invalid Command
          details: {}
        _request_id: abcd-1234
    json_401_panui_auth_not_authenticated:
      summary: Not Authenticated
      value:
        _errors:
        - code: E016
          message: Not Authenticated
          details: {}
        _request_id: abcd-1234
    json_401_panui_auth_invalid_credential:
      summary: Invalid Credential
      value:
        _errors:
        - code: E016
          message: Invalid Credential
          details: {}
        _request_id: abcd-1234
    json_403_panui_auth_unauthorized:
      summary: Unauthorized
      value:
        _errors:
        - code: E007
          message: Unauthorized
          details: {}
        _request_id: abcd-1234
    json_400_panui_restapi_missing_query_parameter:
      summary: Missing Query Parameter
      value:
        _errors:
        - code: E003
          message: 'Missing Query Parameter: name'
          details: {}
        _request_id: abcd-1234
    json_405_panui_restapi_action_not_supported:
      summary: Action Not Supported
      value:
        _errors:
        - code: E012
          message: 'Action Not Supported: move'
          details: {}
        _request_id: abcd-1234
    json_400_panui_restapi_invalid_query_parameter:
      summary: Invalid Query Parameter
      value:
        _errors:
        - code: E003
          message: 'Invalid Query Parameter: location=invalid'
          details: {}
        _request_id: abcd-1234
    json_401_panui_auth_key_too_long:
      summary: Key Too Long
      value:
        _errors:
        - code: E016
          message: Key Too Long
          details: {}
        _request_id: abcd-1234
    json_400_panui_mgmt_invalid_object:
      summary: Invalid Object
      value:
        _errors:
        - code: E003
          message: Invalid Object
          details: {}
        _request_id: abcd-1234
    json_400_panui_mgmt_malformed_command:
      summary: Malformed Command
      value:
        _errors:
        - code: E003
          message: Malformed Command
          details: {}
        _request_id: abcd-1234
    json_504_panui_mgmt_session_timeout:
      summary: Session Timeout
      value:
        _errors:
        - code: '4'
          message: Session Timeout
          details: {}
        _request_id: abcd-1234
    json_401_panui_auth_need_password_change:
      summary: Need Password Change
      value:
        _errors:
        - code: E016
          message: The password needs to be changed.
          details: {}
        _request_id: abcd-1234
    json_400_panui_mgmt_bad_xpath:
      summary: Bad XPath
      value:
        _errors:
        - code: E013
          message: Bad XPath
          details: {}
        _request_id: abcd-1234
  responses:
    default_errors:
      description: General Errors
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/generic_error'
          examples:
            version_not_supported:
              $ref: '#/components/examples/json_501_panui_restapi_version_not_supported'
            method_not_allowed:
              $ref: '#/components/examples/json_501_panui_restapi_method_not_supported'
            action_not_supported:
              $ref: '#/components/examples/json_405_panui_restapi_action_not_supported'
            bad_xpath:
              $ref: '#/components/examples/json_400_panui_mgmt_bad_xpath'
            invalid_command:
              $ref: '#/components/examples/json_400_panui_mgmt_invalid_command'
            malformed_command:
              $ref: '#/components/examples/json_400_panui_mgmt_malformed_command'
            session_timeout:
              $ref: '#/components/examples/json_504_panui_mgmt_session_timeout'
    bad_request_errors_basic_with_body:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/generic_error'
          examples:
            input_format_mismatch:
              $ref: '#/components/examples/json_400_panui_restapi_input_format_mismatch'
            output_format_mismatch:
              $ref: '#/components/examples/json_400_panui_restapi_output_format_mismatch'
            missing_query_parameter:
              $ref: '#/components/examples/json_400_panui_restapi_missing_query_parameter'
            invalid_query_parameter:
              $ref: '#/components/examples/json_400_panui_restapi_invalid_query_parameter'
            missing_body:
              $ref: '#/components/examples/json_400_panui_restapi_missing_body'
            invalid_object:
              $ref: '#/components/examples/json_400_panui_mgmt_invalid_object'
    auth_errors:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/generic_error'
          examples:
            auth_not_authenticated:
              $ref: '#/components/examples/json_401_panui_auth_not_authenticated'
            invalid_credential:
              $ref: '#/components/examples/json_401_panui_auth_invalid_credential'
            key_too_long:
              $ref: '#/components/examples/json_401_panui_auth_key_too_long'
            key_expired:
              $ref: '#/components/examples/json_401_panui_auth_key_expired'
            need_password_change:
              $ref: '#/components/examples/json_401_panui_auth_need_password_change'
    conflict_errors:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/generic_error'
          examples:
            object_not_unique:
              $ref: '#/components/examples/json_409_panui_mgmt_object_not_unique'
            name_not_unique:
              $ref: '#/components/examples/json_409_panui_mgmt_name_not_unique'
            reference_not_zero:
              $ref: '#/components/examples/json_409_panui_mgmt_reference_not_zero'
    access_errors:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/generic_error'
          examples:
            auth_unauthorized:
              $ref: '#/components/examples/json_403_panui_auth_unauthorized'
  securitySchemes:
    scmOAuth:
      type: oauth2
      description: "Strata Cloud Manager APIs authenticate client requests using the \nOAuth 2.0 Client Credentials flow.  Please use the `client_id`, \n`client_secret` values associated with an IAM service account along \nwith a scope value of `tsg_id:XXXXXXXXXX`, where `XXXXXXXXXX` is the \nTenant Service Group (TSG) ID.  The resulting JWT access token should \nbe attached to all API calls as a `Bearer` token in the `Authorization` \nheader (ex. `Authorization: Bearer tokenstring`).\n"
      flows:
        clientCredentials:
          tokenUrl: https://auth.apps.paloaltonetworks.com/oauth2/access_token
          scopes: {}
    scmToken:
      type: http
      description: "Strata Cloud Manager APIs authenticate client requests using the \nOAuth 2.0 Client Credentials flow.  Please use the `client_id`, \n`client_secret` values associated with an IAM service account along \nwith a scope value of `tsg_id:XXXXXXXXXX`, where `XXXXXXXXXX` is the \nTenant Service Group (TSG) ID.  The resulting JWT access token should \nbe attached to all API calls as a `Bearer` token in the `Authorization` \nheader (ex. `Authorization: Bearer tokenstring`).\n"
      scheme: bearer
      bearerFormat: JWT
x-internal: false