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