From cca126432991c4d4c5ce0817ff4cf58f7e3a6388 Mon Sep 17 00:00:00 2001 From: sra Date: Wed, 9 Apr 2025 21:29:44 +0530 Subject: [PATCH 1/5] Creating a PR --- docusaurus.config.ts | 5 + .../paloaltonetworks-snippet-sharing.yaml | 2857 +++++++++++++++++ .../config/snippet-sharing/introduction.md | 29 + .../config/snippet-sharing/snippet-sharing.md | 18 + products/scm/docs/home.md | 1 + products/scm/sidebars.ts | 4 + src/pages/strata-cloud-manager/index.js | 5 + 7 files changed, 2919 insertions(+) create mode 100644 openapi-specs/scm/config/snippet-sharing/paloaltonetworks-snippet-sharing.yaml create mode 100644 products/scm/api/config/snippet-sharing/introduction.md create mode 100644 products/scm/api/config/snippet-sharing/snippet-sharing.md diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 948ddbe42..03f87c2c5 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -936,6 +936,11 @@ const config = { outputDir: "products/sase/api/tenancy", sidebarOptions: { groupPathsBy: "tag" }, }, + snippetsharing: { + specPath: "openapi-specs/scm/config/snippet-sharing", + outputDir: "products/scm/api/config/snippet-sharing", + sidebarOptions: { groupPathsBy: "tag" }, + }, scmtenancy: { specPath: "openapi-specs/scm/tenancy", outputDir: "products/scm/api/tenancy", diff --git a/openapi-specs/scm/config/snippet-sharing/paloaltonetworks-snippet-sharing.yaml b/openapi-specs/scm/config/snippet-sharing/paloaltonetworks-snippet-sharing.yaml new file mode 100644 index 000000000..a876ea69e --- /dev/null +++ b/openapi-specs/scm/config/snippet-sharing/paloaltonetworks-snippet-sharing.yaml @@ -0,0 +1,2857 @@ +components: + examples: + json_400_panui_mgmt_bad_xpath: + summary: Bad XPath + value: + _errors: + - code: E013 + details: {} + message: Bad XPath + _request_id: abcd-1234 + json_400_panui_mgmt_invalid_command: + summary: Invalid Command + value: + _errors: + - code: E003 + details: {} + message: Invalid Command + _request_id: abcd-1234 + json_400_panui_mgmt_invalid_object: + summary: Invalid Object + value: + _errors: + - code: E003 + details: {} + message: Invalid Object + _request_id: abcd-1234 + json_400_panui_mgmt_malformed_command: + summary: Malformed Command + value: + _errors: + - code: E003 + details: {} + message: Malformed Command + _request_id: abcd-1234 + json_400_panui_restapi_input_format_mismatch: + summary: Input Format Mismatch + value: + _errors: + - code: E003 + details: {} + message: 'Input Format Mismatch: input-format=json' + _request_id: abcd-1234 + json_400_panui_restapi_invalid_query_parameter: + summary: Invalid Query Parameter + value: + _errors: + - code: E003 + details: {} + message: 'Invalid Query Parameter: location=invalid' + _request_id: abcd-1234 + json_400_panui_restapi_missing_body: + summary: Missing Body + value: + _errors: + - code: E003 + details: {} + message: Missing Body + _request_id: abcd-1234 + json_400_panui_restapi_missing_query_parameter: + summary: Missing Query Parameter + value: + _errors: + - code: E003 + details: {} + message: 'Missing Query Parameter: name' + _request_id: abcd-1234 + json_400_panui_restapi_output_format_mismatch: + summary: Output Format Mismatch + value: + _errors: + - code: E003 + details: {} + message: 'Output Format Mismatch: output-format=json Accept=xml' + _request_id: abcd-1234 + json_401_panui_auth_invalid_credential: + summary: Invalid Credential + value: + _errors: + - code: E016 + details: {} + message: Invalid Credential + _request_id: abcd-1234 + json_401_panui_auth_key_expired: + summary: Key Expired + value: + _errors: + - code: E016 + details: {} + message: Key Expired + _request_id: abcd-1234 + json_401_panui_auth_key_too_long: + summary: Key Too Long + value: + _errors: + - code: E016 + details: {} + message: Key Too Long + _request_id: abcd-1234 + json_401_panui_auth_need_password_change: + summary: Need Password Change + value: + _errors: + - code: E016 + details: {} + message: The password needs to be changed. + _request_id: abcd-1234 + json_401_panui_auth_not_authenticated: + summary: Not Authenticated + value: + _errors: + - code: E016 + details: {} + message: Not Authenticated + _request_id: abcd-1234 + json_403_panui_auth_unauthorized: + summary: Unauthorized + value: + _errors: + - code: E007 + details: {} + message: Unauthorized + _request_id: abcd-1234 + json_404_panui_mgmt_object_not_present: + summary: Object Not Present + value: + _errors: + - code: E005 + details: {} + message: Object Not Present + _request_id: abcd-1234 + json_405_panui_restapi_action_not_supported: + summary: Action Not Supported + value: + _errors: + - code: E012 + details: {} + message: 'Action Not Supported: move' + _request_id: abcd-1234 + json_409_panui_mgmt_name_not_unique: + summary: Name Not Unique + value: + _errors: + - code: E006 + details: {} + message: Name Not Unique + _request_id: abcd-1234 + json_409_panui_mgmt_object_not_unique: + summary: Object Not Unique + value: + _errors: + - code: E016 + details: {} + message: Object Not Unique + _request_id: abcd-1234 + json_409_panui_mgmt_reference_not_zero: + summary: Reference Not Zero + value: + _errors: + - code: E009 + details: {} + message: Reference Not Zero + _request_id: abcd-1234 + json_501_panui_restapi_method_not_supported: + summary: Method Not Supported + value: + _errors: + - code: E012 + details: {} + message: Method Not Supported + _request_id: abcd-1234 + json_501_panui_restapi_version_not_supported: + summary: Version Not Supported + value: + _errors: + - code: E012 + details: {} + message: Version Not Supported + _request_id: abcd-1234 + json_504_panui_mgmt_session_timeout: + summary: Session Timeout + value: + _errors: + - code: '4' + details: {} + message: Session Timeout + _request_id: abcd-1234 + parameters: + device: + description: 'The device in which the resource is defined + + ' + in: query + name: device + required: false + schema: + type: string + folder: + description: 'The folder in which the resource is defined + + ' + in: query + name: folder + required: false + schema: + type: string + limit-optional: + description: The maximum number of resources to return + in: query + name: limit + required: false + schema: + type: number + name-optional: + description: The name of the resource + in: query + name: name + required: false + schema: + type: string + offset-optional: + description: The offset into the list of resources returned + in: query + name: offset + required: false + schema: + type: number + recipient-tsgs: + description: 'Comma-separated list of recipient TSG IDs + + ' + in: query + name: tsgs + required: true + schema: + type: string + snippet: + description: 'The snippet in which the resource is defined + + ' + in: query + name: snippet + required: false + schema: + type: string + snippet-id: + description: 'The ID of the snippet + + ' + in: query + name: snippet-id + required: true + schema: + type: string + trust-ids: + description: 'Comma-separated list of trust IDs + + ' + in: query + name: trustids + required: true + schema: + type: string + trusted-tenant-type: + description: 'Specifies the type of the tenant that is trusted, either ''subscriber'' + or ''publisher''. + + ' + in: query + name: type + required: true + schema: + enum: + - subscriber + - publisher + type: string + uuid: + description: The UUID of the resource + in: path + name: id + required: true + schema: + type: string + responses: + access_errors: + content: + application/json: + examples: + auth_unauthorized: + $ref: '#/components/examples/json_403_panui_auth_unauthorized' + schema: + $ref: '#/components/schemas/generic_error' + description: Forbidden + auth_errors: + content: + application/json: + 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_expired: + $ref: '#/components/examples/json_401_panui_auth_key_expired' + key_too_long: + $ref: '#/components/examples/json_401_panui_auth_key_too_long' + need_password_change: + $ref: '#/components/examples/json_401_panui_auth_need_password_change' + schema: + $ref: '#/components/schemas/generic_error' + description: Unauthorized + bad_request_errors_basic: + content: + application/json: + examples: + input_format_mismatch: + $ref: '#/components/examples/json_400_panui_restapi_input_format_mismatch' + invalid_query_parameter: + $ref: '#/components/examples/json_400_panui_restapi_invalid_query_parameter' + missing_query_parameter: + $ref: '#/components/examples/json_400_panui_restapi_missing_query_parameter' + output_format_mismatch: + $ref: '#/components/examples/json_400_panui_restapi_output_format_mismatch' + schema: + $ref: '#/components/schemas/generic_error' + description: Bad Request + bad_request_errors_basic_with_body: + content: + application/json: + examples: + input_format_mismatch: + $ref: '#/components/examples/json_400_panui_restapi_input_format_mismatch' + invalid_object: + $ref: '#/components/examples/json_400_panui_mgmt_invalid_object' + invalid_query_parameter: + $ref: '#/components/examples/json_400_panui_restapi_invalid_query_parameter' + missing_body: + $ref: '#/components/examples/json_400_panui_restapi_missing_body' + missing_query_parameter: + $ref: '#/components/examples/json_400_panui_restapi_missing_query_parameter' + output_format_mismatch: + $ref: '#/components/examples/json_400_panui_restapi_output_format_mismatch' + schema: + $ref: '#/components/schemas/generic_error' + description: Bad Request + conflict_errors: + content: + application/json: + examples: + name_not_unique: + $ref: '#/components/examples/json_409_panui_mgmt_name_not_unique' + object_not_unique: + $ref: '#/components/examples/json_409_panui_mgmt_object_not_unique' + reference_not_zero: + $ref: '#/components/examples/json_409_panui_mgmt_reference_not_zero' + schema: + $ref: '#/components/schemas/generic_error' + description: Conflict + default_errors: + content: + application/json: + examples: + 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' + method_not_allowed: + $ref: '#/components/examples/json_501_panui_restapi_method_not_supported' + session_timeout: + $ref: '#/components/examples/json_504_panui_mgmt_session_timeout' + version_not_supported: + $ref: '#/components/examples/json_501_panui_restapi_version_not_supported' + schema: + $ref: '#/components/schemas/generic_error' + description: General Errors + http_created: + description: Created + http_ok: + description: OK + not_found: + content: + application/json: + examples: + object_not_present: + $ref: '#/components/examples/json_404_panui_mgmt_object_not_present' + schema: + $ref: '#/components/schemas/generic_error' + description: Not Found + schemas: + add_subscriber_request_payload: + items: + properties: + snippet_id: + type: string + snippet_name: + type: string + tsg_id: + type: string + required: + - tsg_id + - snippet_id + - snippet_name + type: object + type: array + common_snippet_snapshot_payload: + properties: + id: + type: string + keep_local: + type: boolean + type: object + compare_snippet_snapshot_config_payload: + properties: + comparing_version: + type: integer + id: + type: string + version: + type: integer + required: + - id + - version + - comparing_version + type: object + compare_tlo_payload: + properties: + comparing_version: + type: integer + object_id: + type: string + snippet_id: + type: string + version: + type: integer + required: + - snippet_id + - object_id + - version + - comparing_version - + type: object + deleted_subscriber: + properties: + details: + type: string + info: + $ref: '#/components/schemas/snippet_share_info' + status: + type: string + type: object + devices: + properties: + anti_virus_version: + readOnly: true + type: string + app_release_date: + readOnly: true + type: string + app_version: + readOnly: true + type: string + av_release_date: + readOnly: true + type: string + available_licensess: + items: + properties: + authcode: + readOnly: true + type: string + expires: + format: date + readOnly: true + type: string + feature: + readOnly: true + type: string + issued: + format: date + readOnly: true + type: string + type: object + readOnly: true + type: array + connected_since: + format: date-time + readOnly: true + type: string + description: + description: The description of the device + type: string + dev_cert_detail: + readOnly: true + type: string + dev_cert_expiry_date: + readOnly: true + type: string + family: + description: The product family of the device + readOnly: true + type: string + folder: + description: The folder containing the device + type: string + gp_client_verion: + readOnly: true + type: string + gp_data_version: + readOnly: true + type: string + ha_peer_serial: + readOnly: true + type: string + ha_peer_state: + readOnly: true + type: string + ha_state: + readOnly: true + type: string + hostname: + description: The hostname of the device + readOnly: true + type: string + id: + description: The UUID of the device + readOnly: true + type: string + installed_licenses: + items: + properties: + authcode: + readOnly: true + type: string + expired: + readOnly: true + type: string + expires: + readOnly: true + type: string + feature: + readOnly: true + type: string + issued: + format: date + readOnly: true + type: string + type: object + readOnly: true + type: array + iot_release_date: + readOnly: true + type: string + iot_version: + readOnly: true + type: string + ipV6_address: + description: The IPv6 address of the device + readOnly: true + type: string + ip_address: + description: The IPv4 address of the device + readOnly: true + type: string + is_connected: + readOnly: true + type: boolean + labels: + description: Labels assigned to the device + items: + type: string + type: array + license_match: + readOnly: true + type: boolean + log_db_version: + readOnly: true + type: string + mac_address: + description: The MAC address of the device + readOnly: true + type: string + model: + description: The model of the device + readOnly: true + type: string + name: + description: The name of the device + type: string + snippets: + description: Snippets associated with the device + items: + type: string + type: array + software_version: + readOnly: true + type: string + threat_release_date: + readOnly: true + type: string + threat_version: + readOnly: true + type: string + uptime: + readOnly: true + type: string + url_db_type: + readOnly: true + type: string + url_db_ver: + readOnly: true + type: string + vm_state: + readOnly: true + type: string + wf_release_date: + readOnly: true + type: string + wf_ver: + readOnly: true + type: string + required: + - name + - id + - folder + type: object + dynamic_entry: + additionalProperties: true + readOnly: true + type: object + error_detail_cause_info: + properties: + code: + type: string + details: + type: object + help: + type: string + message: + type: string + title: Cause Info + type: object + error_detail_cause_infos: + items: + $ref: '#/components/schemas/error_detail_cause_info' + type: array + folders: + properties: + description: + description: The description of the folder + type: string + id: + description: The UUID of the folder + readOnly: true + type: string + labels: + description: Labels assigned to the folder + items: + type: string + type: array + name: + description: The name of the folder + type: string + parent: + description: The parent folder + type: string + snippets: + description: Snippets associated with the folder + items: + type: string + type: array + required: + - name + - id + - parent + type: object + generic_error: + properties: + _errors: + $ref: '#/components/schemas/error_detail_cause_infos' + _request_id: + type: string + type: object + labels: + properties: + description: + description: The description of the label + type: string + id: + description: The UUID of the label + readOnly: true + type: string + name: + description: The name of the label + type: string + required: + - name + - id + type: object + property_item: + properties: + id: + type: integer + name: + type: string + value: + type: string + type: object + save_snippet_snapshot_config_response: + properties: + result: + properties: + version: + type: string + readOnly: true + type: object + status: + readOnly: true + type: string + readOnly: true + type: object + save_snippet_snapshot_payload: + properties: + description: + type: string + id: + type: string + required: + - id + - description + type: object + snippet_audit_history: + properties: + action: + readOnly: true + type: string + created: + format: date-time + readOnly: true + type: string + deleted: + readOnly: true + type: integer + details: + readOnly: true + type: string + display: + readOnly: true + type: integer + donor_created: + readOnly: true + type: integer + donor_tenant_name: + readOnly: true + type: string + donor_tsg: + readOnly: true + type: string + id: + format: uint + readOnly: true + type: integer + recipient_tenant_name: + readOnly: true + type: string + recipient_tsg: + readOnly: true + type: string + snippet_uuid: + readOnly: true + type: string + user: + readOnly: true + type: string + version: + readOnly: true + type: string + type: object + snippet_audit_payload: + properties: + action: + type: string + details: + type: string + donor_created: + type: integer + donor_tenant_name: + type: string + donor_tsg: + type: string + recipient_tenant_name: + type: string + recipient_tsg: + type: string + snippet_uuid: + type: string + version: + type: string + type: object + snippet_share_info: + properties: + created: + format: date-time + readOnly: true + type: string + donor_created: + readOnly: true + type: integer + donor_snippet_file_id: + readOnly: true + type: integer + donor_snippet_version: + readOnly: true + type: integer + donor_tenant_id: + readOnly: true + type: string + donor_tenant_name: + readOnly: true + type: string + donor_tsg: + readOnly: true + type: string + error: + readOnly: true + type: string + id: + format: uint + readOnly: true + type: integer + last_updated: + format: date-time + readOnly: true + type: string + msg_uuid: + readOnly: true + type: string + properties: + items: + $ref: '#/components/schemas/snippet_share_property' + type: array + recipient_paused_update: + readOnly: true + type: boolean + recipient_snippet_file_id: + readOnly: true + type: integer + recipient_snippet_version: + readOnly: true + type: integer + recipient_tenant_id: + readOnly: true + type: string + recipient_tenant_name: + readOnly: true + type: string + recipient_tsg: + readOnly: true + type: string + recipient_validate_before_update: + readOnly: true + type: boolean + snippet_name: + readOnly: true + type: string + snippet_uuid: + readOnly: true + type: string + status: + readOnly: true + type: string + type: object + snippet_share_property: + properties: + created: + format: date-time + readOnly: true + type: string + created_by: + readOnly: true + type: string + donor_tenant: + readOnly: true + type: string + donor_tsg: + readOnly: true + type: string + error: + readOnly: true + type: string + id: + readOnly: true + type: integer + msg_uuid: + readOnly: true + type: string + property_name: + readOnly: true + type: string + property_value: + readOnly: true + type: string + recipient_tenant: + readOnly: true + type: string + recipient_tsg: + readOnly: true + type: string + snippet_name: + readOnly: true + type: string + snippet_uuid: + readOnly: true + type: string + status: + readOnly: true + type: string + updated: + format: date-time + readOnly: true + type: string + updated_by: + readOnly: true + type: string + type: object + snippet_snapshot_compare_entry: + properties: + admin: + format: email + readOnly: true + type: string + id: + readOnly: true + type: string + loc: + type: string + loctype: + type: string + objectname: + type: string + objecttype: + type: string + operations: + enum: + - edit + - create + type: string + timestamp: + format: date-time + type: string + readOnly: true + type: object + snippet_snapshot_compare_response: + items: + $ref: '#/components/schemas/snippet_snapshot_compare_entry' + readOnly: true + type: array + snippet_snapshot_diff_response: + properties: + after: + properties: + '@ts': + format: date-time + readOnly: true + type: string + entry: + items: + $ref: '#/components/schemas/dynamic_entry' + readOnly: true + type: array + readOnly: true + type: object + before: + properties: + '@ts': + format: date-time + type: string + entry: + items: + $ref: '#/components/schemas/dynamic_entry' + type: array + type: object + type: object + snippet_snapshot_load_snippet_payload: + properties: + id: + type: string + version: + type: string + required: + - id + - version + type: object + snippet_snapshot_load_snippet_response: + properties: + status: + type: string + readOnly: true + type: object + snippet_snapshot_publish_request: + properties: + id: + type: string + name: + type: string + tsgs: + items: + type: string + type: array + validation: + type: boolean + version: + type: integer + type: object + snippet_snapshot_publish_response: + properties: + file_id: + nullable: true + readOnly: true + type: integer + id: + readOnly: true + type: string + job_id: + readOnly: true + type: integer + tsgs: + items: + type: string + readOnly: true + type: array + version: + nullable: true + readOnly: true + type: integer + readOnly: true + type: object + snippet_snapshot_subscriber_compare_payload: + properties: + id: + type: string + tenant_id: + description: Publisher Tenant ID + type: string + required: + - id + - tenant_id + type: object + snippet_snapshot_subscriber_compare_response: + properties: + publisher: + properties: + entry: + items: + $ref: '#/components/schemas/dynamic_entry' + type: array + readOnly: true + type: object + subscriber: + properties: + entry: + items: + $ref: '#/components/schemas/dynamic_entry' + type: array + readOnly: true + type: object + type: object + snippets: + properties: + description: + description: The description of the snippet + type: string + id: + description: The UUID of the snippet + readOnly: true + type: string + labels: + description: Labels applied to the snippet + items: + type: string + type: array + name: + description: The name of the snippet + type: string + type: + description: The snippet type + enum: + - predefined + - custom + readOnly: true + type: string + required: + - name + - id + type: object + subscriber_property_payload: + properties: + property: + items: + $ref: '#/components/schemas/property_item' + type: array + snippet_id: + type: string + snippet_name: + type: string + tsg_id: + type: string + required: + - tsg_id + - snippet_id + - snippet_name + type: object + tenant_trust_info: + properties: + created: + format: date-time + readOnly: true + type: string + created_by: + readOnly: true + type: string + current_status: + readOnly: true + type: string + donor_cluster: + readOnly: true + type: string + donor_msg_uuid: + readOnly: true + type: string + donor_project: + readOnly: true + type: string + donor_region: + readOnly: true + type: string + donor_tenant_id: + type: string + donor_tenant_name: + type: string + donor_trust_info_id: + readOnly: true + type: integer + donor_tsg: + readOnly: true + type: string + error_details: + readOnly: true + type: string + last_updated: + format: date-time + readOnly: true + type: string + psk: + type: string + recipient_cluster: + readOnly: true + type: string + recipient_msg_uuid: + readOnly: true + type: string + recipient_project: + readOnly: true + type: string + recipient_region: + readOnly: true + type: string + recipient_tenant_id: + readOnly: true + type: string + recipient_tenant_name: + type: string + recipient_trust_info_id: + readOnly: true + type: integer + recipient_tsg: + readOnly: true + type: string + trust_id: + type: integer + updated_by: + readOnly: true + type: string + type: object + trust_info_with_shared_snippets: + properties: + created: + format: date-time + readOnly: true + type: string + donor_created: + readOnly: true + type: integer + donor_snippet_file_id: + readOnly: true + type: integer + donor_snippet_version: + readOnly: true + type: integer + donor_tsg: + readOnly: true + type: string + error: + readOnly: true + type: string + id: + readOnly: true + type: integer + last_updated: + format: date-time + readOnly: true + type: string + msg_uuid: + readOnly: true + type: string + recipient_paused_update: + readOnly: true + type: integer + recipient_snippet_file_id: + readOnly: true + type: integer + recipient_snippet_version: + readOnly: true + type: integer + recipient_tsg: + readOnly: true + type: string + recipient_validate_before_update: + readOnly: true + type: integer + shared_snippets: + items: + $ref: '#/components/schemas/snippet_share_info' + type: array + snippet_name: + readOnly: true + type: string + snippet_uuid: + readOnly: true + type: string + status: + readOnly: true + type: string + updated_by: + readOnly: true + type: string + type: object + trusted_tenant_overview: + properties: + publisher: + properties: + pending: + readOnly: true + type: integer + total: + readOnly: true + type: integer + type: object + subscriber: + properties: + pending: + readOnly: true + type: integer + total: + readOnly: true + type: integer + type: object + type: object + trusts: + properties: + donor_tenant_name: + type: string + psk: + type: string + recipient_tenant_name: + type: string + trust_id: + nullable: true + type: integer + tsg: + type: string + type: object + trusts_validation_payload: + properties: + donor_tenant_name: + type: string + psk: + type: string + recipient_tenant_name: + type: string + trust_id: + nullable: true + type: integer + tsg: + type: string + required: + - tsg + - donor_tenant_name + - recipient_tenant_name + - trust_id + - psk + type: object + variables: + oneOf: + - properties: + folder: + description: The folder in which the resource is defined + example: My Folder + maxLength: 64 + pattern: ^[a-zA-Z\d-_\. ]+$ + type: string + required: + - folder + title: folder + type: object + - properties: + snippet: + description: The snippet in which the resource is defined + example: My Snippet + maxLength: 64 + pattern: ^[a-zA-Z\d-_\. ]+$ + type: string + required: + - snippet + title: snippet + type: object + - properties: + device: + description: The device in which the resource is defined + example: My Device + maxLength: 64 + pattern: ^[a-zA-Z\d-_\. ]+$ + type: string + required: + - device + title: device + type: object + properties: + description: + description: The description of the variable + type: string + id: + description: UUID of the variable + example: 123e4567-e89b-12d3-a456-426655440000 + readOnly: true + type: string + name: + description: The name of the variable + maxLength: 63 + type: string + overridden: + description: Is the variable overridden? + readOnly: true + type: boolean + type: + description: The variable type + enum: + - percent + - count + - ip-netmask + - zone + - ip-range + - ip-wildcard + - device-priority + - device-id + - egress-max + - as-number + - fqdn + - port + - link-tag + - group-id + - rate + - router-id + - qos-profile + - timer + type: string + value: + additionalProperties: + oneOf: + - type: string + - type: integer + default: None + description: The value of the variable + type: string + required: + - name + - id + - type + - value + type: object + securitySchemes: + Bearer: + scheme: bearer + type: http +info: + contact: + email: support@paloaltonetworks.com + description: "Managing configurations across multiple tenants can be a challenging\ + \ and error-prone task. \nThe Snippet Sharing API simplifies this process by enabling\ + \ administrators to efficiently share and synchronize configuration snippets between\ + \ different tenants. \nThis API ensures consistency, reduces manual errors, and\ + \ provides a secure and reliable way to manage configurations.\n\nThese APIs use\ + \ the common Strata Cloud Manager authentication mechanism and base URL. See the\n\ + [Strata Cloud Manager Authentication Service](https://pan.dev/scm/api/auth/auth-api/)\ + \ guide for more information.\n\nThis Open API spec file was created on April\ + \ 09, 2025. To check for a more recent version of this file, see\n[Snippet Sharing\ + \ APIs on pan.dev](https://pan.dev/scm/api/config/snippet-sharing/).\n\n\xA9 2025\ + \ Palo Alto Networks, Inc. Palo Alto Networks is a registered trademark of Palo\n\ + Alto Networks. A list of our trademarks can be found at\n\n[https://www.paloaltonetworks.com/company/trademarks.html](https://www.paloaltonetworks.com/company/trademarks.html)\n\ + \nAll other marks mentioned herein may be trademarks of their respective companies.\n" + license: + name: MIT + url: https://opensource.org/license/mit + termsOfService: https://www.paloaltonetworks.com/content/dam/pan/en_US/assets/pdf/legal/palo-alto-networks-end-user-license-agreement-eula.pdf + title: PaloAlto Networks Snippet Sharing APIs + version: '1.0' +openapi: 3.0.0 +paths: + /devices: + get: + description: 'Retrieve a list of devices. + + ' + operationId: get-devices + parameters: + - $ref: '#/components/parameters/limit-optional' + - $ref: '#/components/parameters/offset-optional' + - $ref: '#/components/parameters/name-optional' + responses: + '200': + content: + application/json: + schema: + properties: + data: + allOf: + - items: + $ref: '#/components/schemas/devices' + type: array + limit: + default: 200 + type: number + offset: + default: 0 + type: number + total: + type: number + type: object + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: List devices + tags: + - Devices + /devices/{id}: + get: + description: 'Retrieve an existing device. + + ' + operationId: get-devices-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/devices' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get a device + tags: + - Devices + put: + description: 'Update an existing device. + + ' + operationId: put-devices-id + parameters: + - $ref: '#/components/parameters/uuid' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/devices' + description: The `device` resource definition. + responses: + '200': + $ref: '#/components/responses/http_ok' + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update a device + tags: + - Devices + /folders: + get: + description: 'Retrieve a list of folders. + + ' + operationId: get-folders + parameters: + - $ref: '#/components/parameters/limit-optional' + - $ref: '#/components/parameters/offset-optional' + - $ref: '#/components/parameters/name-optional' + responses: + '200': + content: + application/json: + schema: + properties: + data: + allOf: + - items: + $ref: '#/components/schemas/folders' + type: array + limit: + default: 200 + type: number + offset: + default: 0 + type: number + total: + type: number + type: object + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: List folders + tags: + - Folders + post: + description: 'Create a new folder. + + ' + operationId: post-folders + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/folders' + description: The `folder` resource definition + responses: + '201': + $ref: '#/components/responses/http_created' + '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' + security: + - Bearer: [] + summary: Create a folder + tags: + - Folders + /folders/{id}: + delete: + description: 'Delete an existing folder. + + ' + operationId: delete-folders-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/folders' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete a folder + tags: + - Folders + get: + description: 'Retrieve an existing folder. + + ' + operationId: get-folders-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/folders' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get a folder + tags: + - Folders + put: + description: 'Update an existing folder. + + ' + operationId: put-folders-id + parameters: + - $ref: '#/components/parameters/uuid' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/folders' + description: The `folder` resource definition. + responses: + '200': + $ref: '#/components/responses/http_ok' + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update a folder + tags: + - Folders + /labels: + get: + description: 'Retrieve a list of labels. + + ' + operationId: get-labels + parameters: + - $ref: '#/components/parameters/limit-optional' + - $ref: '#/components/parameters/offset-optional' + - $ref: '#/components/parameters/name-optional' + responses: + '200': + content: + application/json: + schema: + properties: + data: + allOf: + - items: + $ref: '#/components/schemas/labels' + type: array + limit: + default: 200 + type: number + offset: + default: 0 + type: number + total: + type: number + type: object + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Label list + tags: + - Labels + post: + description: 'Create a label. + + ' + operationId: post-labels + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/labels' + description: The `label` resource definition. + responses: + '201': + $ref: '#/components/responses/http_created' + '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' + security: + - Bearer: [] + summary: New label + tags: + - Labels + /labels/{id}: + delete: + description: 'Delete an existing label. + + ' + operationId: delete-labels-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/labels' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete label + tags: + - Labels + get: + description: 'Retrieve an existing label. + + ' + operationId: get-labels-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/labels' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get label + tags: + - Labels + put: + description: 'Update an existing label. + + ' + operationId: put-labels-id + parameters: + - $ref: '#/components/parameters/uuid' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/labels' + description: The `label` resource definition. + responses: + '200': + $ref: '#/components/responses/http_ok' + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update label + tags: + - Labels + /snippet-audit-logs: + post: + description: 'Create snippet audit logs configuration. + + ' + operationId: post-snippet-audit-logs + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/snippet_audit_payload' + description: The `Snippet Snapshots To Convert` resource definition + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/snippet_audit_history' + 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' + security: + - Bearer: [] + summary: Create snippet audit logs configuration + tags: + - Snippet Audit Logs + /snippet-audit-logs/{id}: + get: + description: 'Retrieve an existing snippet audit logs by UUID. + + ' + operationId: get-snippet-audit-logs-id + parameters: + - $ref: '#/components/parameters/uuid' + - $ref: '#/components/parameters/trusted-tenant-type' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/snippet_audit_history' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get a snippet audit logs + tags: + - Snippet Audit Logs + /snippet-snapshots: + post: + description: 'Save Snippet Snapshots. + + ' + operationId: post-snippet-snapshots + 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' + security: + - Bearer: [] + summary: Save Snippet Snapshots + tags: + - Snippet Snapshots + /snippet-snapshots:compare: + post: + description: 'Compare Snippet Snapshots. + + ' + operationId: post-snippet-snapshots:compare + 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' + security: + - Bearer: [] + summary: Compare Snippet Snapshots + tags: + - Snippet Snapshots + /snippet-snapshots:convert: + post: + description: 'Convert Snippet Snapshots. + + ' + operationId: post-snippet-snapshots:convert + 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' + security: + - Bearer: [] + summary: Convert Snippet Snapshots + tags: + - Snippet Snapshots + /snippet-snapshots:diff: + post: + description: 'Diff Snippet Snapshots. + + ' + operationId: post-snippet-snapshots:diff + 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' + security: + - Bearer: [] + summary: Diff Snippet Snapshots + tags: + - Snippet Snapshots + /snippet-snapshots:load: + post: + description: 'Load Snippet Snapshots. + + ' + operationId: post-snippet-snapshots:load + 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' + security: + - Bearer: [] + summary: Load Snippet Snapshots + tags: + - Snippet Snapshots + /snippet-snapshots:publish: + post: + description: 'Publish Snippet Snapshots. + + ' + operationId: post-snippet-snapshots:publish + 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' + security: + - Bearer: [] + summary: Publish Snippet Snapshots + tags: + - Snippet Snapshots + /snippet-snapshots:updates: + post: + description: 'Update Snippet Snapshots. + + ' + operationId: post-snippet-snapshots:updates + 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' + security: + - Bearer: [] + summary: Update Snippet Snapshots + tags: + - Snippet Snapshots + /snippets: + get: + description: 'Retrieve a list of snippets. + + ' + operationId: get-snippets + parameters: + - $ref: '#/components/parameters/limit-optional' + - $ref: '#/components/parameters/offset-optional' + - $ref: '#/components/parameters/name-optional' + responses: + '200': + content: + application/json: + schema: + properties: + data: + allOf: + - items: + $ref: '#/components/schemas/snippets' + type: array + limit: + default: 200 + type: number + offset: + default: 0 + type: number + total: + type: number + type: object + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Snippet list + tags: + - Snippets + post: + description: 'Create a snippet. + + ' + operationId: post-snippets + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/snippets' + description: The `snippet` resource definition. + responses: + '201': + $ref: '#/components/responses/http_created' + '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' + security: + - Bearer: [] + summary: New snippet + tags: + - Snippets + /snippets/{id}: + delete: + description: 'Delete an existing snippet. + + ' + operationId: delete-snippets-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/snippets' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete a snippet + tags: + - Snippets + get: + description: 'Retrieve an existing snippet. + + ' + operationId: get-snippets-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/snippets' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get a snippet + tags: + - Snippets + put: + description: 'Update a snippet. + + ' + operationId: put-snippets-id + parameters: + - $ref: '#/components/parameters/uuid' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/snippets' + description: The `snippet` resource definition. + responses: + '200': + $ref: '#/components/responses/http_ok' + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update snippet + tags: + - Snippets + /subscribed-tenants: + delete: + description: 'Delete an existing subscribed tenant. + + ' + operationId: delete-subscribed-tenants + parameters: + - $ref: '#/components/parameters/snippet-id' + - $ref: '#/components/parameters/recipient-tsgs' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/deleted_subscriber' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete a subscribed tenant + tags: + - Subscribed Tenants + post: + description: 'Create Subscribed Tenant. + + ' + operationId: post-subscribed-tenants + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/add_subscriber_request_payload' + description: The `Subscribed Tenant` resource definition + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/tenant_trust_info' + 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' + security: + - Bearer: [] + summary: Create Subscribed Tenant + tags: + - Subscribed Tenants + put: + description: 'Update an existing subscribed tenant. + + ' + operationId: put-subscribed-tenants + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/subscriber_property_payload' + description: The `subscribed tenant` resource definition. + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/subscriber_property_payload' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update a subscribed tenant + tags: + - Subscribed Tenants + /subscribed-tenants/{id}: + get: + description: 'Retrieve a list of subscribed tenants. + + ' + operationId: get-subscribed-tenants-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + items: + $ref: '#/components/schemas/snippet_share_info' + type: array + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get Subscribed Tenants + tags: + - Subscribed Tenants + /trust-validations: + post: + description: 'Validate trust. + + ' + operationId: post-trust-validations + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/trusts_validation_payload' + description: The `trust validation` resource definition + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/tenant_trust_info' + 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' + security: + - Bearer: [] + summary: Validates Trust + tags: + - Trust Validations + /trusted-tenant-overview: + get: + description: 'Overview of publishers and subscribers. + + ' + operationId: get-trusted-tenant-overview + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/trusted_tenant_overview' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Trusted Tenants Overview + tags: + - Trusted Tenants Overview + /trusted-tenants: + get: + description: 'Retrieve a list of trusted tenants with snippets. + + ' + operationId: get-trusted-tenants + parameters: + - $ref: '#/components/parameters/trusted-tenant-type' + responses: + '200': + content: + application/json: + schema: + items: + $ref: '#/components/schemas/trust_info_with_shared_snippets' + type: array + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Trusted Tenants With Snippets + tags: + - Trust Information + /trusts: + delete: + description: 'Delete an existing Trust. + + ' + operationId: delete-trusts + parameters: + - $ref: '#/components/parameters/trust-ids' + - $ref: '#/components/parameters/trusted-tenant-type' + responses: + '200': + content: + application/json: + schema: + items: + $ref: '#/components/schemas/tenant_trust_info' + type: array + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete a Trust + tags: + - Trusts + post: + description: 'Create a new trust. + + ' + operationId: post-trusts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/trusts' + description: The `trusts` resource definition + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/tenant_trust_info' + description: CREATED + '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' + security: + - Bearer: [] + summary: Create a trust + tags: + - Trusts + /variables: + get: + description: 'Retrieve a list of variables. + + ' + operationId: get-variables + parameters: + - $ref: '#/components/parameters/limit-optional' + - $ref: '#/components/parameters/offset-optional' + - $ref: '#/components/parameters/name-optional' + - $ref: '#/components/parameters/folder' + - $ref: '#/components/parameters/snippet' + - $ref: '#/components/parameters/device' + responses: + '200': + content: + application/json: + schema: + properties: + data: + allOf: + - items: + $ref: '#/components/schemas/variables' + type: array + limit: + default: 200 + type: number + offset: + default: 0 + type: number + total: + type: number + type: object + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: List variables + tags: + - Variables + post: + description: "Create a variable. \n" + operationId: post-variables + parameters: + - $ref: '#/components/parameters/folder' + - $ref: '#/components/parameters/snippet' + - $ref: '#/components/parameters/device' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/variables' + description: The `variable` resource definition. + responses: + '201': + $ref: '#/components/responses/http_created' + '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' + security: + - Bearer: [] + summary: Create variables + tags: + - Variables + /variables/{id}: + delete: + description: 'Delete a variable. + + ' + operationId: delete-variables-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/variables' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete variable + tags: + - Variables + get: + description: 'Retrieve an existing variable. + + ' + operationId: get-variables-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/variables' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get a variables + tags: + - Variables + put: + description: 'Update a variable. + + ' + operationId: put-variables-id + parameters: + - $ref: '#/components/parameters/uuid' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/variables' + description: The `variable` resource definition. + responses: + '200': + $ref: '#/components/responses/http_ok' + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update variable + tags: + - Variables +servers: +- url: https://api.sase.paloaltonetworks.com +tags: +- description: 'Configuration Labels + + ' + name: Labels API +- description: 'Variables + + ' + name: Variables API +- description: 'Configuration Snippets + + ' + name: Snippets API +- description: 'Configuration folders + + ' + name: Folders API +- description: 'NGFW Devices + + ' + name: Devices API +- description: 'Trusted Tenants Overview + + ' + name: Trusted Tenants Overview API +- description: 'Trust Information + + ' + name: Trust Information API +- description: 'Trusts + + ' + name: Trusts API +- description: 'Trust Validations + + ' + name: Trust Validations API +- description: 'Subscribed Tenants + + ' + name: Subscribed Tenants API +- description: 'Snippet Snapshots + + ' + name: Snippet Snapshots API +- description: 'Snippet Audit Logs + + ' + name: Snippet Audit Logs API diff --git a/products/scm/api/config/snippet-sharing/introduction.md b/products/scm/api/config/snippet-sharing/introduction.md new file mode 100644 index 000000000..3f519d677 --- /dev/null +++ b/products/scm/api/config/snippet-sharing/introduction.md @@ -0,0 +1,29 @@ +--- +id: snippet-sharing +title: Snippet Sharing APIs +sidebar_label: Introduction +keywords: + - Strata Cloud Manager + - Configuration + - Security Profiles + - Reference + - API +--- + +In today's interconnected and dynamic environments, managing and synchronizing configurations across multiple tenants can be a complex and error-prone task. The Snippet Sharing API is designed to simplify this process, enabling administrators to efficiently share and synchronize configuration snippets between different tenants. This API provides a robust and secure mechanism for configuration sharing, ensuring consistency and reducing manual overhead. + +## Key features ## + +**Configuration Sharing:** Administrators can select specific configuration snippets from a tenant and share them across multiple other tenants. This feature allows for targeted updates, ensuring that only the intended tenants receive the shared configuration. + +**Synchronization:** The API supports keeping specific configurations in sync across tenants. Administrators can perform explicit actions to share and sync configurations, ensuring that updates are consistently propagated to recipient tenants. + +**Versioning:** The Snippet Sharing API includes a versioning mechanism, allowing administrators to track and audit the sync state of configuration snippets. Only the latest version of a snippet can be shared, ensuring that recipients always receive the most up-to-date configuration. + +**Visibility and Auditing:** Administrators can view detailed information about shared snippets, including the tenants they are associated with, the version of the snippet, and the last sync timestamp. Audit logs are generated for all sharing and sync operations, providing transparency and traceability. + +**Trust and Verification:** The API supports establishing trust relationships between donor and recipient tenants. Recipient tenants must accept donor tenants as trusted sources before configuration sharing can occur. Trust relationships can be terminated at any time, converting shared snippets to local snippets if referenced in the recipient tenant. + +**Configuration Operations:** The API facilitates various configuration operations, including pushing, reverting, and loading configurations. Administrators can manage configurations effectively, ensuring that shared snippets are included or excluded as needed during these operations. + +The Snippet Sharing API is designed to streamline configuration management, enhance operational efficiency, and provide a secure and reliable way to share and synchronize configurations across multiple tenants. By leveraging this API, administrators can reduce manual errors, ensure consistency, and maintain control over their configuration environments. diff --git a/products/scm/api/config/snippet-sharing/snippet-sharing.md b/products/scm/api/config/snippet-sharing/snippet-sharing.md new file mode 100644 index 000000000..dc245106a --- /dev/null +++ b/products/scm/api/config/snippet-sharing/snippet-sharing.md @@ -0,0 +1,18 @@ +--- +id: snippet-sharing +title: Snippet Sharing APIs +sidebar_label: Snippet Sharing +keywords: + - Strata Cloud Manager + - Configuration + - Security Profiles + - Reference + - API +--- + +Welcome to the configuration Snippet Sharing APIs For Strata Cloud Manager and Prisma Access. + +These APIs use the [common authentication mechanism](/scm/docs/getstarted) for service access and authorization. + +You must use the [Configuration Operations API](/scm/api/config/cloudngfw/operations/operations-api-cloud-ngfw) to push +configurations made using these APIs to your deployments. diff --git a/products/scm/docs/home.md b/products/scm/docs/home.md index cae6f4e6c..e6d601342 100644 --- a/products/scm/docs/home.md +++ b/products/scm/docs/home.md @@ -36,6 +36,7 @@ Strata Cloud Manager offers the following APIs: - [Cloud NGFW](/scm/api/config/cloudngfw/operations/config-operations/) - [ZTNA Connector](/access/api/ztna/ztna-connector-apis/) - [Prisma SD-WAN](/sdwan/docs) + - [Snippet Sharing](/scm/api/config/snippet-sharing/snippet-sharing/) ### Monitoring Services - [Strata Insights](/access/docs/insights) diff --git a/products/scm/sidebars.ts b/products/scm/sidebars.ts index b243cd0b0..9fe3ab0f8 100644 --- a/products/scm/sidebars.ts +++ b/products/scm/sidebars.ts @@ -328,5 +328,9 @@ module.exports = { "scm/api/subscription/subscription-api", require("./api/subscription/sidebar"), ], + scmsnippetsharing: [ + "scm/api/config/snippet-sharing/snippet-sharing", + require("./api/config/snippet-sharing/sidebar"), + ], scmtenancy: ["scm/api/tenancy/tenancy-api", require("./api/tenancy/sidebar")], }; diff --git a/src/pages/strata-cloud-manager/index.js b/src/pages/strata-cloud-manager/index.js index 8415012af..475957f2f 100644 --- a/src/pages/strata-cloud-manager/index.js +++ b/src/pages/strata-cloud-manager/index.js @@ -211,6 +211,11 @@ export default function SCMLandingPage() { to: "cdl/api/log-forwarding", icon: "api-doc", }, + { + label: "Snippet Sharing", + to: "scm/api/config/snippet-sharing", + icon: "api-doc", + }, ], }, }, From a7c04bd172095674ded8f335b05cf26069306c71 Mon Sep 17 00:00:00 2001 From: sra Date: Tue, 6 May 2025 17:58:23 +0530 Subject: [PATCH 2/5] Creating a review site for approval --- .../paloaltonetworks-snippet-sharing.yaml | 281 +++++------------- .../config/snippet-sharing/introduction.md | 29 -- .../config/snippet-sharing/snippet-sharing.md | 20 +- products/scm/docs/release-notes/changelog.md | 1 + 4 files changed, 101 insertions(+), 230 deletions(-) delete mode 100644 products/scm/api/config/snippet-sharing/introduction.md diff --git a/openapi-specs/scm/config/snippet-sharing/paloaltonetworks-snippet-sharing.yaml b/openapi-specs/scm/config/snippet-sharing/paloaltonetworks-snippet-sharing.yaml index a876ea69e..4da523cb8 100644 --- a/openapi-specs/scm/config/snippet-sharing/paloaltonetworks-snippet-sharing.yaml +++ b/openapi-specs/scm/config/snippet-sharing/paloaltonetworks-snippet-sharing.yaml @@ -186,7 +186,7 @@ components: _request_id: abcd-1234 parameters: device: - description: 'The device in which the resource is defined + description: 'Specifies the device where the resource is located. ' in: query @@ -195,7 +195,7 @@ components: schema: type: string folder: - description: 'The folder in which the resource is defined + description: 'Specifies the folder where the resource is located. ' in: query @@ -204,28 +204,28 @@ components: schema: type: string limit-optional: - description: The maximum number of resources to return + description: The maximum number of resources to return. in: query name: limit required: false schema: type: number name-optional: - description: The name of the resource + description: The resource name. in: query name: name required: false schema: type: string offset-optional: - description: The offset into the list of resources returned + description: Specifies the starting point in the list of returned resources. in: query name: offset required: false schema: type: number recipient-tsgs: - description: 'Comma-separated list of recipient TSG IDs + description: 'A list of recipient TSG IDs separated by commas. ' in: query @@ -234,7 +234,7 @@ components: schema: type: string snippet: - description: 'The snippet in which the resource is defined + description: 'Specifies the snippet where the resource is defined. ' in: query @@ -243,20 +243,20 @@ components: schema: type: string snippet-id: - description: 'The ID of the snippet + description: 'The unique identifier of the snippet. ' in: query - name: snippet-id + name: snippet_id required: true schema: type: string trust-ids: - description: 'Comma-separated list of trust IDs + description: 'A list of trust IDs separated by commas. ' in: query - name: trustids + name: trust_ids required: true schema: type: string @@ -274,9 +274,9 @@ components: - publisher type: string uuid: - description: The UUID of the resource + description: The resource UUID. in: path - name: id + name: ID required: true schema: type: string @@ -404,13 +404,6 @@ components: - snippet_name type: object type: array - common_snippet_snapshot_payload: - properties: - id: - type: string - keep_local: - type: boolean - type: object compare_snippet_snapshot_config_payload: properties: comparing_version: @@ -424,22 +417,6 @@ components: - version - comparing_version type: object - compare_tlo_payload: - properties: - comparing_version: - type: integer - object_id: - type: string - snippet_id: - type: string - version: - type: integer - required: - - snippet_id - - object_id - - version - - comparing_version - - type: object deleted_subscriber: properties: details: @@ -776,27 +753,6 @@ components: readOnly: true type: string type: object - snippet_audit_payload: - properties: - action: - type: string - details: - type: string - donor_created: - type: integer - donor_tenant_name: - type: string - donor_tsg: - type: string - recipient_tenant_name: - type: string - recipient_tsg: - type: string - snippet_uuid: - type: string - version: - type: string - type: object snippet_share_info: properties: created: @@ -955,32 +911,6 @@ components: $ref: '#/components/schemas/snippet_snapshot_compare_entry' readOnly: true type: array - snippet_snapshot_diff_response: - properties: - after: - properties: - '@ts': - format: date-time - readOnly: true - type: string - entry: - items: - $ref: '#/components/schemas/dynamic_entry' - readOnly: true - type: array - readOnly: true - type: object - before: - properties: - '@ts': - format: date-time - type: string - entry: - items: - $ref: '#/components/schemas/dynamic_entry' - type: array - type: object - type: object snippet_snapshot_load_snippet_payload: properties: id: @@ -1245,6 +1175,66 @@ components: readOnly: true type: string type: object + trust_validation_info: + properties: + created: + format: date-time + readOnly: true + type: string + created_by: + readOnly: true + type: string + current_status: + readOnly: true + type: string + donor_cluster: + readOnly: true + type: string + donor_msg_uuid: + readOnly: true + type: string + donor_project: + readOnly: true + type: string + donor_region: + readOnly: true + type: string + donor_tenant_id: + type: string + donor_tenant_name: + type: string + donor_tsg: + readOnly: true + type: string + last_updated: + format: date-time + readOnly: true + type: string + psk: + type: string + recipient_cluster: + readOnly: true + type: string + recipient_msg_uuid: + readOnly: true + type: string + recipient_region: + readOnly: true + type: string + recipient_tenant_id: + readOnly: true + type: string + recipient_tenant_name: + type: string + recipient_tsg: + readOnly: true + type: string + trust_id: + type: integer + updated_by: + readOnly: true + type: string + type: object trusted_tenant_overview: properties: publisher: @@ -1402,8 +1392,8 @@ info: \ provides a secure and reliable way to manage configurations.\n\nThese APIs use\ \ the common Strata Cloud Manager authentication mechanism and base URL. See the\n\ [Strata Cloud Manager Authentication Service](https://pan.dev/scm/api/auth/auth-api/)\ - \ guide for more information.\n\nThis Open API spec file was created on April\ - \ 09, 2025. To check for a more recent version of this file, see\n[Snippet Sharing\ + \ guide for more information.\n\nThis Open API spec file was created on May 06,\ + \ 2025. To check for a more recent version of this file, see\n[Snippet Sharing\ \ APIs on pan.dev](https://pan.dev/scm/api/config/snippet-sharing/).\n\n\xA9 2025\ \ Palo Alto Networks, Inc. Palo Alto Networks is a registered trademark of Palo\n\ Alto Networks. A list of our trademarks can be found at\n\n[https://www.paloaltonetworks.com/company/trademarks.html](https://www.paloaltonetworks.com/company/trademarks.html)\n\ @@ -1863,40 +1853,6 @@ paths: summary: Update label tags: - Labels - /snippet-audit-logs: - post: - description: 'Create snippet audit logs configuration. - - ' - operationId: post-snippet-audit-logs - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/snippet_audit_payload' - description: The `Snippet Snapshots To Convert` resource definition - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/snippet_audit_history' - 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' - security: - - Bearer: [] - summary: Create snippet audit logs configuration - tags: - - Snippet Audit Logs /snippet-audit-logs/{id}: get: description: 'Retrieve an existing snippet audit logs by UUID. @@ -1930,9 +1886,7 @@ paths: - Snippet Audit Logs /snippet-snapshots: post: - description: 'Save Snippet Snapshots. - - ' + description: "Save Snippet Snapshots. \n" operationId: post-snippet-snapshots requestBody: content: @@ -1996,77 +1950,10 @@ paths: summary: Compare Snippet Snapshots tags: - Snippet Snapshots - /snippet-snapshots:convert: - post: - description: 'Convert Snippet Snapshots. - - ' - operationId: post-snippet-snapshots:convert - 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' - security: - - Bearer: [] - summary: Convert Snippet Snapshots - tags: - - Snippet Snapshots - /snippet-snapshots:diff: - post: - description: 'Diff Snippet Snapshots. - - ' - operationId: post-snippet-snapshots:diff - 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' - security: - - Bearer: [] - summary: Diff Snippet Snapshots - tags: - - Snippet Snapshots /snippet-snapshots:load: post: - description: 'Load Snippet Snapshots. + description: 'Load Snippet Snapshots. Discards current candidate and loads specific + version of the snippet snapshot as a candidate. ' operationId: post-snippet-snapshots:load @@ -2470,9 +2357,7 @@ paths: - Subscribed Tenants /trust-validations: post: - description: 'Validate trust. - - ' + description: "Validate trust. \n" operationId: post-trust-validations requestBody: content: @@ -2485,7 +2370,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/tenant_trust_info' + $ref: '#/components/schemas/trust_validation_info' description: OK '400': $ref: '#/components/responses/bad_request_errors_basic_with_body' @@ -2504,9 +2389,7 @@ paths: - Trust Validations /trusted-tenant-overview: get: - description: 'Overview of publishers and subscribers. - - ' + description: "Overview of publishers and subscribers. \n" operationId: get-trusted-tenant-overview responses: '200': @@ -2805,7 +2688,7 @@ paths: tags: - Variables servers: -- url: https://api.sase.paloaltonetworks.com +- url: https://api.strata.paloaltonetworks.com tags: - description: 'Configuration Labels diff --git a/products/scm/api/config/snippet-sharing/introduction.md b/products/scm/api/config/snippet-sharing/introduction.md deleted file mode 100644 index 3f519d677..000000000 --- a/products/scm/api/config/snippet-sharing/introduction.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: snippet-sharing -title: Snippet Sharing APIs -sidebar_label: Introduction -keywords: - - Strata Cloud Manager - - Configuration - - Security Profiles - - Reference - - API ---- - -In today's interconnected and dynamic environments, managing and synchronizing configurations across multiple tenants can be a complex and error-prone task. The Snippet Sharing API is designed to simplify this process, enabling administrators to efficiently share and synchronize configuration snippets between different tenants. This API provides a robust and secure mechanism for configuration sharing, ensuring consistency and reducing manual overhead. - -## Key features ## - -**Configuration Sharing:** Administrators can select specific configuration snippets from a tenant and share them across multiple other tenants. This feature allows for targeted updates, ensuring that only the intended tenants receive the shared configuration. - -**Synchronization:** The API supports keeping specific configurations in sync across tenants. Administrators can perform explicit actions to share and sync configurations, ensuring that updates are consistently propagated to recipient tenants. - -**Versioning:** The Snippet Sharing API includes a versioning mechanism, allowing administrators to track and audit the sync state of configuration snippets. Only the latest version of a snippet can be shared, ensuring that recipients always receive the most up-to-date configuration. - -**Visibility and Auditing:** Administrators can view detailed information about shared snippets, including the tenants they are associated with, the version of the snippet, and the last sync timestamp. Audit logs are generated for all sharing and sync operations, providing transparency and traceability. - -**Trust and Verification:** The API supports establishing trust relationships between donor and recipient tenants. Recipient tenants must accept donor tenants as trusted sources before configuration sharing can occur. Trust relationships can be terminated at any time, converting shared snippets to local snippets if referenced in the recipient tenant. - -**Configuration Operations:** The API facilitates various configuration operations, including pushing, reverting, and loading configurations. Administrators can manage configurations effectively, ensuring that shared snippets are included or excluded as needed during these operations. - -The Snippet Sharing API is designed to streamline configuration management, enhance operational efficiency, and provide a secure and reliable way to share and synchronize configurations across multiple tenants. By leveraging this API, administrators can reduce manual errors, ensure consistency, and maintain control over their configuration environments. diff --git a/products/scm/api/config/snippet-sharing/snippet-sharing.md b/products/scm/api/config/snippet-sharing/snippet-sharing.md index dc245106a..7fa8bfe13 100644 --- a/products/scm/api/config/snippet-sharing/snippet-sharing.md +++ b/products/scm/api/config/snippet-sharing/snippet-sharing.md @@ -11,8 +11,24 @@ keywords: --- Welcome to the configuration Snippet Sharing APIs For Strata Cloud Manager and Prisma Access. - These APIs use the [common authentication mechanism](/scm/docs/getstarted) for service access and authorization. - You must use the [Configuration Operations API](/scm/api/config/cloudngfw/operations/operations-api-cloud-ngfw) to push configurations made using these APIs to your deployments. + +In today's interconnected and dynamic environments, managing and synchronizing configurations across multiple tenants can be a complex and error-prone task. The Snippet Sharing API is designed to simplify this process, enabling administrators to efficiently share and synchronize configuration snippets between different tenants. This API provides a robust and secure mechanism for configuration sharing, ensuring consistency and reducing manual overhead. + +## Key features ## + +**Configuration Sharing:** Administrators can select specific configuration snippets from a tenant and share them across multiple other tenants. This feature allows for targeted updates, ensuring that only the intended tenants receive the shared configuration. + +**Synchronization:** The API supports keeping specific configurations in sync across tenants. Administrators can perform explicit actions to share and sync configurations, ensuring that updates are consistently propagated to recipient tenants. + +**Versioning:** The Snippet Sharing API includes a versioning mechanism, allowing administrators to track and audit the sync state of configuration snippets. Only the latest version of a snippet can be shared, ensuring that recipients always receive the most up-to-date configuration. + +**Visibility and Auditing:** Administrators can view detailed information about shared snippets, including the tenants they are associated with, the version of the snippet, and the last sync timestamp. Audit logs are generated for all sharing and sync operations, providing transparency and traceability. + +**Trust and Verification:** The API supports establishing trust relationships between donor and recipient tenants. Recipient tenants must accept donor tenants as trusted sources before configuration sharing can occur. Trust relationships can be terminated at any time, converting shared snippets to local snippets if referenced in the recipient tenant. + +**Configuration Operations:** The API facilitates various configuration operations, including pushing, reverting, and loading configurations. Administrators can manage configurations effectively, ensuring that shared snippets are included or excluded as needed during these operations. + +The Snippet Sharing API is designed to streamline configuration management, enhance operational efficiency, and provide a secure and reliable way to share and synchronize configurations across multiple tenants. By leveraging this API, administrators can reduce manual errors, ensure consistency, and maintain control over their configuration environments. \ No newline at end of file diff --git a/products/scm/docs/release-notes/changelog.md b/products/scm/docs/release-notes/changelog.md index 2905e97c5..65556d316 100644 --- a/products/scm/docs/release-notes/changelog.md +++ b/products/scm/docs/release-notes/changelog.md @@ -12,6 +12,7 @@ keywords: | Date | Description | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| May 6, 2025 | Added [Snippet Sharing APIs](/scm/api/snippet-sharing/). | Feb 6, 2025 | Added [Prisma Access Configuration Orchestration APIs](/sase/api/introduction/). | | Jan 9th, 2025 | Added [SaaS Security Posture Management APIs](/sase/api/sspm/). | Nov 15, 2024 | Added Strata Cloud Manager configuration APIs, along with a [Strata Cloud Manager landing page](/strata-cloud-manager/). See the [release notes](/scm/docs/release-notes/november2024) for more information. | From 82d4760a9b6f97c9c54b756b4dbf3fe6e7b1b511 Mon Sep 17 00:00:00 2001 From: sra Date: Wed, 28 May 2025 11:55:47 +0530 Subject: [PATCH 3/5] Added snippet sharing as part of SASE, Cloud NGFW, NGFW of SCM --- docusaurus.config.ts | 5 - .../config/cloudngfw/setup/config-setup.yaml | 1489 --------- .../paloaltonetworks-snippet-sharing.yaml | 4 +- .../scm/config/ngfw/setup/config-setup.yaml | 1489 --------- .../paloaltonetworks-snippet-sharing.yaml | 2740 +++++++++++++++++ .../scm/config/sase/setup/config-setup.yaml | 1489 --------- .../paloaltonetworks-snippet-sharing.yaml | 2740 +++++++++++++++++ .../setup}/snippet-sharing.md | 0 .../api/config/ngfw/setup/snippet-sharing.md | 34 + .../api/config/sase/setup/snippet-sharing.md | 34 + products/scm/docs/release-notes/changelog.md | 2 +- products/scm/sidebars.ts | 16 +- 12 files changed, 5563 insertions(+), 4479 deletions(-) delete mode 100644 openapi-specs/scm/config/cloudngfw/setup/config-setup.yaml rename openapi-specs/scm/config/{snippet-sharing => cloudngfw/setup}/paloaltonetworks-snippet-sharing.yaml (99%) delete mode 100644 openapi-specs/scm/config/ngfw/setup/config-setup.yaml create mode 100644 openapi-specs/scm/config/ngfw/setup/paloaltonetworks-snippet-sharing.yaml delete mode 100644 openapi-specs/scm/config/sase/setup/config-setup.yaml create mode 100644 openapi-specs/scm/config/sase/setup/paloaltonetworks-snippet-sharing.yaml rename products/scm/api/config/{snippet-sharing => cloudngfw/setup}/snippet-sharing.md (100%) create mode 100644 products/scm/api/config/ngfw/setup/snippet-sharing.md create mode 100644 products/scm/api/config/sase/setup/snippet-sharing.md diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 03f87c2c5..948ddbe42 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -936,11 +936,6 @@ const config = { outputDir: "products/sase/api/tenancy", sidebarOptions: { groupPathsBy: "tag" }, }, - snippetsharing: { - specPath: "openapi-specs/scm/config/snippet-sharing", - outputDir: "products/scm/api/config/snippet-sharing", - sidebarOptions: { groupPathsBy: "tag" }, - }, scmtenancy: { specPath: "openapi-specs/scm/tenancy", outputDir: "products/scm/api/tenancy", diff --git a/openapi-specs/scm/config/cloudngfw/setup/config-setup.yaml b/openapi-specs/scm/config/cloudngfw/setup/config-setup.yaml deleted file mode 100644 index 706c0b675..000000000 --- a/openapi-specs/scm/config/cloudngfw/setup/config-setup.yaml +++ /dev/null @@ -1,1489 +0,0 @@ -openapi: 3.0.0 -info: - version: 2.0.0 - title: Configuration Setup - 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 -tags: - - name: Devices - description: NGFW devices - - name: Folders - description: Configuration folders - - name: Labels - description: Configuration labels - - name: Snippets - description: Configuration snippets - - name: Variables - description: Configuration variables -paths: - /labels: - get: - summary: List labels - description: | - Retrieve a list of labels. - tags: - - Labels - operationId: ListLabels - parameters: - - $ref: '#/components/parameters/limit-optional' - - $ref: '#/components/parameters/offset-optional' - - $ref: '#/components/parameters/name-optional' - responses: - '200': - content: - application/json: - schema: - type: object - properties: - data: - allOf: - - type: array - items: - $ref: '#/components/schemas/labels' - limit: - type: number - default: 200 - offset: - type: number - default: 0 - total: - type: number - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - post: - summary: Create a label - description: | - Create a new label. - tags: - - Labels - operationId: CreateLabel - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/labels' - description: The `label` resource definition. - responses: - '201': - $ref: '#/components/responses/http_created' - '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' - /labels/{id}: - get: - summary: Get a label - description: | - Retrieve an existing label. - tags: - - Labels - operationId: GetLabelByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/labels' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - put: - summary: Update a label - description: | - Update an existing label. - tags: - - Labels - operationId: UpdateLabelByID - parameters: - - $ref: '#/components/parameters/uuid' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/labels' - description: The `label` resource definition. - responses: - '200': - $ref: '#/components/responses/http_ok' - '400': - $ref: '#/components/responses/bad_request_errors_basic_with_body' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - delete: - summary: Delete a label - description: | - Delete an existing label. - tags: - - Labels - operationId: DeleteLabelByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/labels' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - /variables: - get: - summary: List variables - description: | - Retrieve a list of variables. - tags: - - Variables - operationId: ListVariables - parameters: - - $ref: '#/components/parameters/limit-optional' - - $ref: '#/components/parameters/offset-optional' - - $ref: '#/components/parameters/name-optional' - - $ref: '#/components/parameters/folder' - - $ref: '#/components/parameters/snippet' - - $ref: '#/components/parameters/device' - responses: - '200': - content: - application/json: - schema: - type: object - properties: - data: - allOf: - - type: array - items: - $ref: '#/components/schemas/variables' - limit: - type: number - default: 200 - offset: - type: number - default: 0 - total: - type: number - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - post: - summary: Create a variable - description: | - Create a new variable. - tags: - - Variables - operationId: CreateVariable - parameters: - - $ref: '#/components/parameters/folder' - - $ref: '#/components/parameters/snippet' - - $ref: '#/components/parameters/device' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/variables' - description: The `variable` resource definition. - responses: - '201': - $ref: '#/components/responses/http_created' - '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' - /variables/{id}: - get: - summary: Get a variables - description: | - Retrieve an existing variable. - tags: - - Variables - operationId: GetVariableByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/variables' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - put: - summary: Update a variable - description: | - Update an existing variable. - tags: - - Variables - operationId: UpdateVariableByID - parameters: - - $ref: '#/components/parameters/uuid' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/variables' - description: The `variable` resource definition. - responses: - '200': - $ref: '#/components/responses/http_ok' - '400': - $ref: '#/components/responses/bad_request_errors_basic_with_body' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - delete: - summary: Delete a variable - description: | - Delete an existing variable. - tags: - - Variables - operationId: DeleteVariableByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/variables' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - /snippets: - get: - summary: List snippets - description: | - Retrieve a list of snippets. - tags: - - Snippets - operationId: ListSnippets - parameters: - - $ref: '#/components/parameters/limit-optional' - - $ref: '#/components/parameters/offset-optional' - - $ref: '#/components/parameters/name-optional' - responses: - '200': - content: - application/json: - schema: - type: object - properties: - data: - allOf: - - type: array - items: - $ref: '#/components/schemas/snippets' - limit: - type: number - default: 200 - offset: - type: number - default: 0 - total: - type: number - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - post: - summary: Create a snippet - description: | - Create a new snippet. - tags: - - Snippets - operationId: CreateSnippet - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/snippets' - description: The `snippet` resource definition. - responses: - '201': - $ref: '#/components/responses/http_created' - '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' - /snippets/{id}: - get: - summary: Get a snippet - description: | - Retrieve an existing snippet. - tags: - - Snippets - parameters: - - $ref: '#/components/parameters/uuid' - operationId: GetSnippetByID - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/snippets' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - put: - summary: Update a snippet - description: | - Update an existing snippet. - tags: - - Snippets - operationId: UpdateSnippetByID - parameters: - - $ref: '#/components/parameters/uuid' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/snippets' - description: The `snippet` resource definition. - responses: - '200': - $ref: '#/components/responses/http_ok' - '400': - $ref: '#/components/responses/bad_request_errors_basic_with_body' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - delete: - summary: Delete a snippet - description: | - Delete an existing snippet. - tags: - - Snippets - operationId: DeleteSnippetByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/snippets' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - /folders: - get: - summary: List folders - description: | - Retrieve a list of folders. - tags: - - Folders - operationId: ListFolders - parameters: - - $ref: '#/components/parameters/limit-optional' - - $ref: '#/components/parameters/offset-optional' - - $ref: '#/components/parameters/name-optional' - responses: - '200': - content: - application/json: - schema: - type: object - properties: - data: - allOf: - - type: array - items: - $ref: '#/components/schemas/folders' - limit: - type: number - default: 200 - offset: - type: number - default: 0 - total: - type: number - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - post: - summary: Create a folder - description: | - Create a new folder. - tags: - - Folders - operationId: CreateFolder - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/folders' - description: The `folder` resource definition - responses: - '201': - $ref: '#/components/responses/http_created' - '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' - /folders/{id}: - get: - summary: Get a folder - description: | - Retrieve an existing folder. - tags: - - Folders - operationId: GetFolderByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/folders' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - put: - summary: Update a folder - description: | - Update an existing folder. - tags: - - Folders - operationId: UpdateFolderByID - parameters: - - $ref: '#/components/parameters/uuid' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/folders' - description: The `folder` resource definition. - responses: - '200': - $ref: '#/components/responses/http_ok' - '400': - $ref: '#/components/responses/bad_request_errors_basic_with_body' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - delete: - summary: Delete a folder - description: | - Delete an existing folder. - tags: - - Folders - operationId: DeleteFolderByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/folders' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - /devices: - get: - summary: List devices - description: | - Retrieve a list of devices. - tags: - - Devices - operationId: ListDevices - parameters: - - $ref: '#/components/parameters/limit-optional' - - $ref: '#/components/parameters/offset-optional' - - $ref: '#/components/parameters/name-optional' - responses: - '200': - content: - application/json: - schema: - type: object - properties: - data: - allOf: - - type: array - items: - $ref: '#/components/schemas/devices' - limit: - type: number - default: 200 - offset: - type: number - default: 0 - total: - type: number - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - /devices/{id}: - get: - summary: Get a device - description: | - Retrieve an existing device. - tags: - - Devices - operationId: GetDeviceByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/devices' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - put: - summary: Update a device - description: | - Update an existing device. - tags: - - Devices - operationId: UpdateDeviceByID - parameters: - - $ref: '#/components/parameters/uuid' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/devices' - description: The `device` resource definition. - responses: - '200': - $ref: '#/components/responses/http_ok' - '400': - $ref: '#/components/responses/bad_request_errors_basic_with_body' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' -components: - securitySchemes: - scmOAuth: - type: oauth2 - description: | - Strata Cloud Manager APIs authenticate client requests using the - OAuth 2.0 Client Credentials flow. Please use the `client_id`, - `client_secret` values associated with an IAM service account along - with a scope value of `tsg_id:XXXXXXXXXX`, where `XXXXXXXXXX` is the - Tenant Service Group (TSG) ID. The resulting JWT access token should - be attached to all API calls as a `Bearer` token in the `Authorization` - header (ex. `Authorization: Bearer tokenstring`). - 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 - OAuth 2.0 Client Credentials flow. Please use the `client_id`, - `client_secret` values associated with an IAM service account along - with a scope value of `tsg_id:XXXXXXXXXX`, where `XXXXXXXXXX` is the - Tenant Service Group (TSG) ID. The resulting JWT access token should - be attached to all API calls as a `Bearer` token in the `Authorization` - header (ex. `Authorization: Bearer tokenstring`). - scheme: bearer - bearerFormat: JWT - parameters: - uuid: - name: id - in: path - required: true - schema: - type: string - description: The UUID of the resource - name-optional: - name: name - in: query - required: false - schema: - type: string - description: The name of the resource - limit-optional: - name: limit - in: query - required: false - schema: - type: number - description: The maximum number of resources to return - offset-optional: - name: offset - in: query - required: false - schema: - type: number - description: The offset into the list of resources returned - folder: - name: folder - in: query - required: false - schema: - type: string - description: | - The folder in which the resource is defined - snippet: - name: snippet - in: query - required: false - schema: - type: string - description: | - The snippet in which the resource is defined - device: - name: device - in: query - required: false - schema: - type: string - description: | - The device in which the resource is defined - responses: - http_ok: - description: OK - http_created: - description: Created - 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' - access_errors: - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/generic_error' - examples: - auth_unauthorized: - $ref: '#/components/examples/json_403_panui_auth_unauthorized' - bad_request_errors_basic: - 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' - 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' - not_found: - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/generic_error' - examples: - object_not_present: - $ref: '#/components/examples/json_404_panui_mgmt_object_not_present' - 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' - 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' - examples: - 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_401_panui_auth_key_too_long: - summary: Key Too Long - value: - _errors: - - code: "E016" - message: Key Too Long - details: {} - _request_id: "abcd-1234" - json_401_panui_auth_key_expired: - summary: Key Expired - value: - _errors: - - code: "E016" - message: Key Expired - 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_403_panui_auth_unauthorized: - summary: Unauthorized - value: - _errors: - - code: "E007" - message: Unauthorized - 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_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_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_restapi_missing_query_parameter: - summary: Missing Query Parameter - value: - _errors: - - code: "E003" - message: 'Missing Query Parameter: name' - 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_400_panui_restapi_missing_body: - summary: Missing Body - value: - _errors: - - code: "E003" - message: Missing Body - 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_mgmt_bad_xpath: - summary: Bad XPath - value: - _errors: - - code: "E013" - message: Bad XPath - details: {} - _request_id: "abcd-1234" - json_404_panui_mgmt_object_not_present: - summary: Object Not Present - value: - _errors: - - code: "E005" - message: Object Not Present - 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_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_reference_not_zero: - summary: Reference Not Zero - value: - _errors: - - code: "E009" - message: Reference Not Zero - 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_invalid_command: - summary: Invalid Command - value: - _errors: - - code: "E003" - message: Invalid Command - 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" - schemas: - generic_error: - type: object - properties: - _errors: - $ref: '#/components/schemas/error_detail_cause_infos' - _request_id: - type: string - error_detail_cause_infos: - type: array - items: - $ref: '#/components/schemas/error_detail_cause_info' - error_detail_cause_info: - title: Cause Info - type: object - properties: - 'code': - type: string - message: - type: string - details: - type: object - help: - type: string - variables: - type: object - required: - - 'name' - - 'id' - - 'type' - - 'value' - properties: - id: - type: string - description: UUID of the variable - readOnly: true - example: 123e4567-e89b-12d3-a456-426655440000 - name: - type: string - description: The name of the variable - maxLength: 63 - type: - type: string - enum: - - percent - - count - - ip-netmask - - zone - - ip-range - - ip-wildcard - - device-priority - - device-id - - egress-max - - as-number - - fqdn - - port - - link-tag - - group-id - - rate - - router-id - - qos-profile - - timer - description: The variable type - value: - type: string - additionalProperties: - oneOf: - - type: string - - type: integer - description: The value of the variable - default: None - overridden: - type: boolean - readOnly: true - description: Is the variable overridden? - description: - type: string - description: The description of the variable - oneOf: - - type: object - title: folder - properties: - folder: - type: string - pattern: ^[a-zA-Z\d-_\. ]+$ - maxLength: 64 - description: The folder in which the resource is defined - example: My Folder - required: - - folder - - type: object - title: snippet - properties: - snippet: - type: string - pattern: ^[a-zA-Z\d-_\. ]+$ - maxLength: 64 - description: The snippet in which the resource is defined - example: My Snippet - required: - - snippet - - type: object - title: device - properties: - device: - type: string - pattern: ^[a-zA-Z\d-_\. ]+$ - maxLength: 64 - description: The device in which the resource is defined - example: My Device - required: - - device - folders: - type: object - required: - - "name" - - "id" - - "parent" - properties: - "name": - type: string - description: The name of the folder - "id": - type: string - readOnly: true - description: The UUID of the folder - "parent": - type: string - description: The parent folder - "description": - type: string - description: The description of the folder - "labels": - type: array - items: - type: string - description: Labels assigned to the folder - "snippets": - type: array - items: - type: string - description: Snippets associated with the folder - snippets: - type: object - required: - - "name" - - "id" - properties: - "name": - type: string - description: The name of the snippet - "description": - type: string - description: The description of the snippet - "id": - type: string - description: The UUID of the snippet - readOnly: true - "type": - type: string - readOnly: true - enum: - - predefined - - custom - description: The snippet type - "labels": - type: array - items: - type: string - description: Labels applied to the snippet - labels: - type: object - required: - - "name" - - "id" - properties: - "name": - type: string - description: The name of the label - "id": - type: string - readOnly: true - description: The UUID of the label - "description": - type: string - description: The description of the label - devices: - type: object - required: - - name - - id - - folder - properties: - "id": - type: string - readOnly: true - description: The UUID of the device - "name": - type: string - description: The name of the device - "folder": - type: string - description: The folder containing the device - "description": - type: string - description: The description of the device - "hostname": - type: string - readOnly: true - description: The hostname of the device - "ip_address": - type: string - readOnly: true - description: The IPv4 address of the device - "ipV6_address": - type: string - readOnly: true - description: The IPv6 address of the device - "mac_address": - type: string - readOnly: true - description: The MAC address of the device - "family": - type: string - readOnly: true - description: The product family of the device - "model": - type: string - readOnly: true - description: The model of the device - "labels": - type: array - items: - type: string - description: Labels assigned to the device - "snippets": - type: array - items: - type: string - description: Snippets associated with the device - "app_version": - type: string - readOnly: true - "threat_version": - type: string - readOnly: true - "anti_virus_version": - type: string - readOnly: true - "wf_ver": - type: string - readOnly: true - "iot_version": - type: string - readOnly: true - "url_db_type": - type: string - readOnly: true - "url_db_ver": - type: string - readOnly: true - "software_version": - type: string - readOnly: true - "vm_state": - type: string - readOnly: true - "gp_client_verion": - type: string - readOnly: true - "gp_data_version": - type: string - readOnly: true - "log_db_version": - type: string - readOnly: true - "uptime": - type: string - readOnly: true - "dev_cert_detail": - type: string - readOnly: true - "dev_cert_expiry_date": - type: string - readOnly: true - "ha_state": - type: string - readOnly: true - "ha_peer_serial": - type: string - readOnly: true - "ha_peer_state": - type: string - readOnly: true - "is_connected": - type: boolean - readOnly: true - "connected_since": - type: string - format: date-time - readOnly: true - "app_release_date": - type: string - readOnly: true - "threat_release_date": - type: string - readOnly: true - "av_release_date": - type: string - readOnly: true - "wf_release_date": - type: string - readOnly: true - "iot_release_date": - type: string - readOnly: true - "license_match": - type: boolean - readOnly: true - "available_licensess": - type: array - items: - type: object - properties: - "issued": - type: string - format: date - readOnly: true - "expires": - type: string - format: date - readOnly: true - "feature": - type: string - readOnly: true - "authcode": - type: string - readOnly: true - readOnly: true - "installed_licenses": - type: array - items: - type: object - properties: - "issued": - type: string - format: date - readOnly: true - "expired": - type: string - readOnly: true - "expires": - type: string - readOnly: true - "feature": - type: string - readOnly: true - "authcode": - type: string - readOnly: true - readOnly: true -security: - - scmToken: [] -x-internal: false \ No newline at end of file diff --git a/openapi-specs/scm/config/snippet-sharing/paloaltonetworks-snippet-sharing.yaml b/openapi-specs/scm/config/cloudngfw/setup/paloaltonetworks-snippet-sharing.yaml similarity index 99% rename from openapi-specs/scm/config/snippet-sharing/paloaltonetworks-snippet-sharing.yaml rename to openapi-specs/scm/config/cloudngfw/setup/paloaltonetworks-snippet-sharing.yaml index 4da523cb8..561a1cadc 100644 --- a/openapi-specs/scm/config/snippet-sharing/paloaltonetworks-snippet-sharing.yaml +++ b/openapi-specs/scm/config/cloudngfw/setup/paloaltonetworks-snippet-sharing.yaml @@ -1392,7 +1392,7 @@ info: \ provides a secure and reliable way to manage configurations.\n\nThese APIs use\ \ the common Strata Cloud Manager authentication mechanism and base URL. See the\n\ [Strata Cloud Manager Authentication Service](https://pan.dev/scm/api/auth/auth-api/)\ - \ guide for more information.\n\nThis Open API spec file was created on May 06,\ + \ guide for more information.\n\nThis Open API spec file was created on May 28,\ \ 2025. To check for a more recent version of this file, see\n[Snippet Sharing\ \ APIs on pan.dev](https://pan.dev/scm/api/config/snippet-sharing/).\n\n\xA9 2025\ \ Palo Alto Networks, Inc. Palo Alto Networks is a registered trademark of Palo\n\ @@ -2688,7 +2688,7 @@ paths: tags: - Variables servers: -- url: https://api.strata.paloaltonetworks.com +- url: https://api.strata.paloaltonetworks.com/config/setup/v1 tags: - description: 'Configuration Labels diff --git a/openapi-specs/scm/config/ngfw/setup/config-setup.yaml b/openapi-specs/scm/config/ngfw/setup/config-setup.yaml deleted file mode 100644 index 706c0b675..000000000 --- a/openapi-specs/scm/config/ngfw/setup/config-setup.yaml +++ /dev/null @@ -1,1489 +0,0 @@ -openapi: 3.0.0 -info: - version: 2.0.0 - title: Configuration Setup - 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 -tags: - - name: Devices - description: NGFW devices - - name: Folders - description: Configuration folders - - name: Labels - description: Configuration labels - - name: Snippets - description: Configuration snippets - - name: Variables - description: Configuration variables -paths: - /labels: - get: - summary: List labels - description: | - Retrieve a list of labels. - tags: - - Labels - operationId: ListLabels - parameters: - - $ref: '#/components/parameters/limit-optional' - - $ref: '#/components/parameters/offset-optional' - - $ref: '#/components/parameters/name-optional' - responses: - '200': - content: - application/json: - schema: - type: object - properties: - data: - allOf: - - type: array - items: - $ref: '#/components/schemas/labels' - limit: - type: number - default: 200 - offset: - type: number - default: 0 - total: - type: number - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - post: - summary: Create a label - description: | - Create a new label. - tags: - - Labels - operationId: CreateLabel - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/labels' - description: The `label` resource definition. - responses: - '201': - $ref: '#/components/responses/http_created' - '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' - /labels/{id}: - get: - summary: Get a label - description: | - Retrieve an existing label. - tags: - - Labels - operationId: GetLabelByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/labels' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - put: - summary: Update a label - description: | - Update an existing label. - tags: - - Labels - operationId: UpdateLabelByID - parameters: - - $ref: '#/components/parameters/uuid' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/labels' - description: The `label` resource definition. - responses: - '200': - $ref: '#/components/responses/http_ok' - '400': - $ref: '#/components/responses/bad_request_errors_basic_with_body' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - delete: - summary: Delete a label - description: | - Delete an existing label. - tags: - - Labels - operationId: DeleteLabelByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/labels' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - /variables: - get: - summary: List variables - description: | - Retrieve a list of variables. - tags: - - Variables - operationId: ListVariables - parameters: - - $ref: '#/components/parameters/limit-optional' - - $ref: '#/components/parameters/offset-optional' - - $ref: '#/components/parameters/name-optional' - - $ref: '#/components/parameters/folder' - - $ref: '#/components/parameters/snippet' - - $ref: '#/components/parameters/device' - responses: - '200': - content: - application/json: - schema: - type: object - properties: - data: - allOf: - - type: array - items: - $ref: '#/components/schemas/variables' - limit: - type: number - default: 200 - offset: - type: number - default: 0 - total: - type: number - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - post: - summary: Create a variable - description: | - Create a new variable. - tags: - - Variables - operationId: CreateVariable - parameters: - - $ref: '#/components/parameters/folder' - - $ref: '#/components/parameters/snippet' - - $ref: '#/components/parameters/device' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/variables' - description: The `variable` resource definition. - responses: - '201': - $ref: '#/components/responses/http_created' - '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' - /variables/{id}: - get: - summary: Get a variables - description: | - Retrieve an existing variable. - tags: - - Variables - operationId: GetVariableByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/variables' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - put: - summary: Update a variable - description: | - Update an existing variable. - tags: - - Variables - operationId: UpdateVariableByID - parameters: - - $ref: '#/components/parameters/uuid' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/variables' - description: The `variable` resource definition. - responses: - '200': - $ref: '#/components/responses/http_ok' - '400': - $ref: '#/components/responses/bad_request_errors_basic_with_body' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - delete: - summary: Delete a variable - description: | - Delete an existing variable. - tags: - - Variables - operationId: DeleteVariableByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/variables' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - /snippets: - get: - summary: List snippets - description: | - Retrieve a list of snippets. - tags: - - Snippets - operationId: ListSnippets - parameters: - - $ref: '#/components/parameters/limit-optional' - - $ref: '#/components/parameters/offset-optional' - - $ref: '#/components/parameters/name-optional' - responses: - '200': - content: - application/json: - schema: - type: object - properties: - data: - allOf: - - type: array - items: - $ref: '#/components/schemas/snippets' - limit: - type: number - default: 200 - offset: - type: number - default: 0 - total: - type: number - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - post: - summary: Create a snippet - description: | - Create a new snippet. - tags: - - Snippets - operationId: CreateSnippet - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/snippets' - description: The `snippet` resource definition. - responses: - '201': - $ref: '#/components/responses/http_created' - '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' - /snippets/{id}: - get: - summary: Get a snippet - description: | - Retrieve an existing snippet. - tags: - - Snippets - parameters: - - $ref: '#/components/parameters/uuid' - operationId: GetSnippetByID - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/snippets' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - put: - summary: Update a snippet - description: | - Update an existing snippet. - tags: - - Snippets - operationId: UpdateSnippetByID - parameters: - - $ref: '#/components/parameters/uuid' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/snippets' - description: The `snippet` resource definition. - responses: - '200': - $ref: '#/components/responses/http_ok' - '400': - $ref: '#/components/responses/bad_request_errors_basic_with_body' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - delete: - summary: Delete a snippet - description: | - Delete an existing snippet. - tags: - - Snippets - operationId: DeleteSnippetByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/snippets' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - /folders: - get: - summary: List folders - description: | - Retrieve a list of folders. - tags: - - Folders - operationId: ListFolders - parameters: - - $ref: '#/components/parameters/limit-optional' - - $ref: '#/components/parameters/offset-optional' - - $ref: '#/components/parameters/name-optional' - responses: - '200': - content: - application/json: - schema: - type: object - properties: - data: - allOf: - - type: array - items: - $ref: '#/components/schemas/folders' - limit: - type: number - default: 200 - offset: - type: number - default: 0 - total: - type: number - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - post: - summary: Create a folder - description: | - Create a new folder. - tags: - - Folders - operationId: CreateFolder - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/folders' - description: The `folder` resource definition - responses: - '201': - $ref: '#/components/responses/http_created' - '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' - /folders/{id}: - get: - summary: Get a folder - description: | - Retrieve an existing folder. - tags: - - Folders - operationId: GetFolderByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/folders' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - put: - summary: Update a folder - description: | - Update an existing folder. - tags: - - Folders - operationId: UpdateFolderByID - parameters: - - $ref: '#/components/parameters/uuid' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/folders' - description: The `folder` resource definition. - responses: - '200': - $ref: '#/components/responses/http_ok' - '400': - $ref: '#/components/responses/bad_request_errors_basic_with_body' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - delete: - summary: Delete a folder - description: | - Delete an existing folder. - tags: - - Folders - operationId: DeleteFolderByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/folders' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - /devices: - get: - summary: List devices - description: | - Retrieve a list of devices. - tags: - - Devices - operationId: ListDevices - parameters: - - $ref: '#/components/parameters/limit-optional' - - $ref: '#/components/parameters/offset-optional' - - $ref: '#/components/parameters/name-optional' - responses: - '200': - content: - application/json: - schema: - type: object - properties: - data: - allOf: - - type: array - items: - $ref: '#/components/schemas/devices' - limit: - type: number - default: 200 - offset: - type: number - default: 0 - total: - type: number - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - /devices/{id}: - get: - summary: Get a device - description: | - Retrieve an existing device. - tags: - - Devices - operationId: GetDeviceByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/devices' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - put: - summary: Update a device - description: | - Update an existing device. - tags: - - Devices - operationId: UpdateDeviceByID - parameters: - - $ref: '#/components/parameters/uuid' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/devices' - description: The `device` resource definition. - responses: - '200': - $ref: '#/components/responses/http_ok' - '400': - $ref: '#/components/responses/bad_request_errors_basic_with_body' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' -components: - securitySchemes: - scmOAuth: - type: oauth2 - description: | - Strata Cloud Manager APIs authenticate client requests using the - OAuth 2.0 Client Credentials flow. Please use the `client_id`, - `client_secret` values associated with an IAM service account along - with a scope value of `tsg_id:XXXXXXXXXX`, where `XXXXXXXXXX` is the - Tenant Service Group (TSG) ID. The resulting JWT access token should - be attached to all API calls as a `Bearer` token in the `Authorization` - header (ex. `Authorization: Bearer tokenstring`). - 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 - OAuth 2.0 Client Credentials flow. Please use the `client_id`, - `client_secret` values associated with an IAM service account along - with a scope value of `tsg_id:XXXXXXXXXX`, where `XXXXXXXXXX` is the - Tenant Service Group (TSG) ID. The resulting JWT access token should - be attached to all API calls as a `Bearer` token in the `Authorization` - header (ex. `Authorization: Bearer tokenstring`). - scheme: bearer - bearerFormat: JWT - parameters: - uuid: - name: id - in: path - required: true - schema: - type: string - description: The UUID of the resource - name-optional: - name: name - in: query - required: false - schema: - type: string - description: The name of the resource - limit-optional: - name: limit - in: query - required: false - schema: - type: number - description: The maximum number of resources to return - offset-optional: - name: offset - in: query - required: false - schema: - type: number - description: The offset into the list of resources returned - folder: - name: folder - in: query - required: false - schema: - type: string - description: | - The folder in which the resource is defined - snippet: - name: snippet - in: query - required: false - schema: - type: string - description: | - The snippet in which the resource is defined - device: - name: device - in: query - required: false - schema: - type: string - description: | - The device in which the resource is defined - responses: - http_ok: - description: OK - http_created: - description: Created - 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' - access_errors: - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/generic_error' - examples: - auth_unauthorized: - $ref: '#/components/examples/json_403_panui_auth_unauthorized' - bad_request_errors_basic: - 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' - 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' - not_found: - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/generic_error' - examples: - object_not_present: - $ref: '#/components/examples/json_404_panui_mgmt_object_not_present' - 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' - 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' - examples: - 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_401_panui_auth_key_too_long: - summary: Key Too Long - value: - _errors: - - code: "E016" - message: Key Too Long - details: {} - _request_id: "abcd-1234" - json_401_panui_auth_key_expired: - summary: Key Expired - value: - _errors: - - code: "E016" - message: Key Expired - 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_403_panui_auth_unauthorized: - summary: Unauthorized - value: - _errors: - - code: "E007" - message: Unauthorized - 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_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_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_restapi_missing_query_parameter: - summary: Missing Query Parameter - value: - _errors: - - code: "E003" - message: 'Missing Query Parameter: name' - 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_400_panui_restapi_missing_body: - summary: Missing Body - value: - _errors: - - code: "E003" - message: Missing Body - 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_mgmt_bad_xpath: - summary: Bad XPath - value: - _errors: - - code: "E013" - message: Bad XPath - details: {} - _request_id: "abcd-1234" - json_404_panui_mgmt_object_not_present: - summary: Object Not Present - value: - _errors: - - code: "E005" - message: Object Not Present - 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_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_reference_not_zero: - summary: Reference Not Zero - value: - _errors: - - code: "E009" - message: Reference Not Zero - 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_invalid_command: - summary: Invalid Command - value: - _errors: - - code: "E003" - message: Invalid Command - 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" - schemas: - generic_error: - type: object - properties: - _errors: - $ref: '#/components/schemas/error_detail_cause_infos' - _request_id: - type: string - error_detail_cause_infos: - type: array - items: - $ref: '#/components/schemas/error_detail_cause_info' - error_detail_cause_info: - title: Cause Info - type: object - properties: - 'code': - type: string - message: - type: string - details: - type: object - help: - type: string - variables: - type: object - required: - - 'name' - - 'id' - - 'type' - - 'value' - properties: - id: - type: string - description: UUID of the variable - readOnly: true - example: 123e4567-e89b-12d3-a456-426655440000 - name: - type: string - description: The name of the variable - maxLength: 63 - type: - type: string - enum: - - percent - - count - - ip-netmask - - zone - - ip-range - - ip-wildcard - - device-priority - - device-id - - egress-max - - as-number - - fqdn - - port - - link-tag - - group-id - - rate - - router-id - - qos-profile - - timer - description: The variable type - value: - type: string - additionalProperties: - oneOf: - - type: string - - type: integer - description: The value of the variable - default: None - overridden: - type: boolean - readOnly: true - description: Is the variable overridden? - description: - type: string - description: The description of the variable - oneOf: - - type: object - title: folder - properties: - folder: - type: string - pattern: ^[a-zA-Z\d-_\. ]+$ - maxLength: 64 - description: The folder in which the resource is defined - example: My Folder - required: - - folder - - type: object - title: snippet - properties: - snippet: - type: string - pattern: ^[a-zA-Z\d-_\. ]+$ - maxLength: 64 - description: The snippet in which the resource is defined - example: My Snippet - required: - - snippet - - type: object - title: device - properties: - device: - type: string - pattern: ^[a-zA-Z\d-_\. ]+$ - maxLength: 64 - description: The device in which the resource is defined - example: My Device - required: - - device - folders: - type: object - required: - - "name" - - "id" - - "parent" - properties: - "name": - type: string - description: The name of the folder - "id": - type: string - readOnly: true - description: The UUID of the folder - "parent": - type: string - description: The parent folder - "description": - type: string - description: The description of the folder - "labels": - type: array - items: - type: string - description: Labels assigned to the folder - "snippets": - type: array - items: - type: string - description: Snippets associated with the folder - snippets: - type: object - required: - - "name" - - "id" - properties: - "name": - type: string - description: The name of the snippet - "description": - type: string - description: The description of the snippet - "id": - type: string - description: The UUID of the snippet - readOnly: true - "type": - type: string - readOnly: true - enum: - - predefined - - custom - description: The snippet type - "labels": - type: array - items: - type: string - description: Labels applied to the snippet - labels: - type: object - required: - - "name" - - "id" - properties: - "name": - type: string - description: The name of the label - "id": - type: string - readOnly: true - description: The UUID of the label - "description": - type: string - description: The description of the label - devices: - type: object - required: - - name - - id - - folder - properties: - "id": - type: string - readOnly: true - description: The UUID of the device - "name": - type: string - description: The name of the device - "folder": - type: string - description: The folder containing the device - "description": - type: string - description: The description of the device - "hostname": - type: string - readOnly: true - description: The hostname of the device - "ip_address": - type: string - readOnly: true - description: The IPv4 address of the device - "ipV6_address": - type: string - readOnly: true - description: The IPv6 address of the device - "mac_address": - type: string - readOnly: true - description: The MAC address of the device - "family": - type: string - readOnly: true - description: The product family of the device - "model": - type: string - readOnly: true - description: The model of the device - "labels": - type: array - items: - type: string - description: Labels assigned to the device - "snippets": - type: array - items: - type: string - description: Snippets associated with the device - "app_version": - type: string - readOnly: true - "threat_version": - type: string - readOnly: true - "anti_virus_version": - type: string - readOnly: true - "wf_ver": - type: string - readOnly: true - "iot_version": - type: string - readOnly: true - "url_db_type": - type: string - readOnly: true - "url_db_ver": - type: string - readOnly: true - "software_version": - type: string - readOnly: true - "vm_state": - type: string - readOnly: true - "gp_client_verion": - type: string - readOnly: true - "gp_data_version": - type: string - readOnly: true - "log_db_version": - type: string - readOnly: true - "uptime": - type: string - readOnly: true - "dev_cert_detail": - type: string - readOnly: true - "dev_cert_expiry_date": - type: string - readOnly: true - "ha_state": - type: string - readOnly: true - "ha_peer_serial": - type: string - readOnly: true - "ha_peer_state": - type: string - readOnly: true - "is_connected": - type: boolean - readOnly: true - "connected_since": - type: string - format: date-time - readOnly: true - "app_release_date": - type: string - readOnly: true - "threat_release_date": - type: string - readOnly: true - "av_release_date": - type: string - readOnly: true - "wf_release_date": - type: string - readOnly: true - "iot_release_date": - type: string - readOnly: true - "license_match": - type: boolean - readOnly: true - "available_licensess": - type: array - items: - type: object - properties: - "issued": - type: string - format: date - readOnly: true - "expires": - type: string - format: date - readOnly: true - "feature": - type: string - readOnly: true - "authcode": - type: string - readOnly: true - readOnly: true - "installed_licenses": - type: array - items: - type: object - properties: - "issued": - type: string - format: date - readOnly: true - "expired": - type: string - readOnly: true - "expires": - type: string - readOnly: true - "feature": - type: string - readOnly: true - "authcode": - type: string - readOnly: true - readOnly: true -security: - - scmToken: [] -x-internal: false \ No newline at end of file diff --git a/openapi-specs/scm/config/ngfw/setup/paloaltonetworks-snippet-sharing.yaml b/openapi-specs/scm/config/ngfw/setup/paloaltonetworks-snippet-sharing.yaml new file mode 100644 index 000000000..561a1cadc --- /dev/null +++ b/openapi-specs/scm/config/ngfw/setup/paloaltonetworks-snippet-sharing.yaml @@ -0,0 +1,2740 @@ +components: + examples: + json_400_panui_mgmt_bad_xpath: + summary: Bad XPath + value: + _errors: + - code: E013 + details: {} + message: Bad XPath + _request_id: abcd-1234 + json_400_panui_mgmt_invalid_command: + summary: Invalid Command + value: + _errors: + - code: E003 + details: {} + message: Invalid Command + _request_id: abcd-1234 + json_400_panui_mgmt_invalid_object: + summary: Invalid Object + value: + _errors: + - code: E003 + details: {} + message: Invalid Object + _request_id: abcd-1234 + json_400_panui_mgmt_malformed_command: + summary: Malformed Command + value: + _errors: + - code: E003 + details: {} + message: Malformed Command + _request_id: abcd-1234 + json_400_panui_restapi_input_format_mismatch: + summary: Input Format Mismatch + value: + _errors: + - code: E003 + details: {} + message: 'Input Format Mismatch: input-format=json' + _request_id: abcd-1234 + json_400_panui_restapi_invalid_query_parameter: + summary: Invalid Query Parameter + value: + _errors: + - code: E003 + details: {} + message: 'Invalid Query Parameter: location=invalid' + _request_id: abcd-1234 + json_400_panui_restapi_missing_body: + summary: Missing Body + value: + _errors: + - code: E003 + details: {} + message: Missing Body + _request_id: abcd-1234 + json_400_panui_restapi_missing_query_parameter: + summary: Missing Query Parameter + value: + _errors: + - code: E003 + details: {} + message: 'Missing Query Parameter: name' + _request_id: abcd-1234 + json_400_panui_restapi_output_format_mismatch: + summary: Output Format Mismatch + value: + _errors: + - code: E003 + details: {} + message: 'Output Format Mismatch: output-format=json Accept=xml' + _request_id: abcd-1234 + json_401_panui_auth_invalid_credential: + summary: Invalid Credential + value: + _errors: + - code: E016 + details: {} + message: Invalid Credential + _request_id: abcd-1234 + json_401_panui_auth_key_expired: + summary: Key Expired + value: + _errors: + - code: E016 + details: {} + message: Key Expired + _request_id: abcd-1234 + json_401_panui_auth_key_too_long: + summary: Key Too Long + value: + _errors: + - code: E016 + details: {} + message: Key Too Long + _request_id: abcd-1234 + json_401_panui_auth_need_password_change: + summary: Need Password Change + value: + _errors: + - code: E016 + details: {} + message: The password needs to be changed. + _request_id: abcd-1234 + json_401_panui_auth_not_authenticated: + summary: Not Authenticated + value: + _errors: + - code: E016 + details: {} + message: Not Authenticated + _request_id: abcd-1234 + json_403_panui_auth_unauthorized: + summary: Unauthorized + value: + _errors: + - code: E007 + details: {} + message: Unauthorized + _request_id: abcd-1234 + json_404_panui_mgmt_object_not_present: + summary: Object Not Present + value: + _errors: + - code: E005 + details: {} + message: Object Not Present + _request_id: abcd-1234 + json_405_panui_restapi_action_not_supported: + summary: Action Not Supported + value: + _errors: + - code: E012 + details: {} + message: 'Action Not Supported: move' + _request_id: abcd-1234 + json_409_panui_mgmt_name_not_unique: + summary: Name Not Unique + value: + _errors: + - code: E006 + details: {} + message: Name Not Unique + _request_id: abcd-1234 + json_409_panui_mgmt_object_not_unique: + summary: Object Not Unique + value: + _errors: + - code: E016 + details: {} + message: Object Not Unique + _request_id: abcd-1234 + json_409_panui_mgmt_reference_not_zero: + summary: Reference Not Zero + value: + _errors: + - code: E009 + details: {} + message: Reference Not Zero + _request_id: abcd-1234 + json_501_panui_restapi_method_not_supported: + summary: Method Not Supported + value: + _errors: + - code: E012 + details: {} + message: Method Not Supported + _request_id: abcd-1234 + json_501_panui_restapi_version_not_supported: + summary: Version Not Supported + value: + _errors: + - code: E012 + details: {} + message: Version Not Supported + _request_id: abcd-1234 + json_504_panui_mgmt_session_timeout: + summary: Session Timeout + value: + _errors: + - code: '4' + details: {} + message: Session Timeout + _request_id: abcd-1234 + parameters: + device: + description: 'Specifies the device where the resource is located. + + ' + in: query + name: device + required: false + schema: + type: string + folder: + description: 'Specifies the folder where the resource is located. + + ' + in: query + name: folder + required: false + schema: + type: string + limit-optional: + description: The maximum number of resources to return. + in: query + name: limit + required: false + schema: + type: number + name-optional: + description: The resource name. + in: query + name: name + required: false + schema: + type: string + offset-optional: + description: Specifies the starting point in the list of returned resources. + in: query + name: offset + required: false + schema: + type: number + recipient-tsgs: + description: 'A list of recipient TSG IDs separated by commas. + + ' + in: query + name: tsgs + required: true + schema: + type: string + snippet: + description: 'Specifies the snippet where the resource is defined. + + ' + in: query + name: snippet + required: false + schema: + type: string + snippet-id: + description: 'The unique identifier of the snippet. + + ' + in: query + name: snippet_id + required: true + schema: + type: string + trust-ids: + description: 'A list of trust IDs separated by commas. + + ' + in: query + name: trust_ids + required: true + schema: + type: string + trusted-tenant-type: + description: 'Specifies the type of the tenant that is trusted, either ''subscriber'' + or ''publisher''. + + ' + in: query + name: type + required: true + schema: + enum: + - subscriber + - publisher + type: string + uuid: + description: The resource UUID. + in: path + name: ID + required: true + schema: + type: string + responses: + access_errors: + content: + application/json: + examples: + auth_unauthorized: + $ref: '#/components/examples/json_403_panui_auth_unauthorized' + schema: + $ref: '#/components/schemas/generic_error' + description: Forbidden + auth_errors: + content: + application/json: + 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_expired: + $ref: '#/components/examples/json_401_panui_auth_key_expired' + key_too_long: + $ref: '#/components/examples/json_401_panui_auth_key_too_long' + need_password_change: + $ref: '#/components/examples/json_401_panui_auth_need_password_change' + schema: + $ref: '#/components/schemas/generic_error' + description: Unauthorized + bad_request_errors_basic: + content: + application/json: + examples: + input_format_mismatch: + $ref: '#/components/examples/json_400_panui_restapi_input_format_mismatch' + invalid_query_parameter: + $ref: '#/components/examples/json_400_panui_restapi_invalid_query_parameter' + missing_query_parameter: + $ref: '#/components/examples/json_400_panui_restapi_missing_query_parameter' + output_format_mismatch: + $ref: '#/components/examples/json_400_panui_restapi_output_format_mismatch' + schema: + $ref: '#/components/schemas/generic_error' + description: Bad Request + bad_request_errors_basic_with_body: + content: + application/json: + examples: + input_format_mismatch: + $ref: '#/components/examples/json_400_panui_restapi_input_format_mismatch' + invalid_object: + $ref: '#/components/examples/json_400_panui_mgmt_invalid_object' + invalid_query_parameter: + $ref: '#/components/examples/json_400_panui_restapi_invalid_query_parameter' + missing_body: + $ref: '#/components/examples/json_400_panui_restapi_missing_body' + missing_query_parameter: + $ref: '#/components/examples/json_400_panui_restapi_missing_query_parameter' + output_format_mismatch: + $ref: '#/components/examples/json_400_panui_restapi_output_format_mismatch' + schema: + $ref: '#/components/schemas/generic_error' + description: Bad Request + conflict_errors: + content: + application/json: + examples: + name_not_unique: + $ref: '#/components/examples/json_409_panui_mgmt_name_not_unique' + object_not_unique: + $ref: '#/components/examples/json_409_panui_mgmt_object_not_unique' + reference_not_zero: + $ref: '#/components/examples/json_409_panui_mgmt_reference_not_zero' + schema: + $ref: '#/components/schemas/generic_error' + description: Conflict + default_errors: + content: + application/json: + examples: + 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' + method_not_allowed: + $ref: '#/components/examples/json_501_panui_restapi_method_not_supported' + session_timeout: + $ref: '#/components/examples/json_504_panui_mgmt_session_timeout' + version_not_supported: + $ref: '#/components/examples/json_501_panui_restapi_version_not_supported' + schema: + $ref: '#/components/schemas/generic_error' + description: General Errors + http_created: + description: Created + http_ok: + description: OK + not_found: + content: + application/json: + examples: + object_not_present: + $ref: '#/components/examples/json_404_panui_mgmt_object_not_present' + schema: + $ref: '#/components/schemas/generic_error' + description: Not Found + schemas: + add_subscriber_request_payload: + items: + properties: + snippet_id: + type: string + snippet_name: + type: string + tsg_id: + type: string + required: + - tsg_id + - snippet_id + - snippet_name + type: object + type: array + compare_snippet_snapshot_config_payload: + properties: + comparing_version: + type: integer + id: + type: string + version: + type: integer + required: + - id + - version + - comparing_version + type: object + deleted_subscriber: + properties: + details: + type: string + info: + $ref: '#/components/schemas/snippet_share_info' + status: + type: string + type: object + devices: + properties: + anti_virus_version: + readOnly: true + type: string + app_release_date: + readOnly: true + type: string + app_version: + readOnly: true + type: string + av_release_date: + readOnly: true + type: string + available_licensess: + items: + properties: + authcode: + readOnly: true + type: string + expires: + format: date + readOnly: true + type: string + feature: + readOnly: true + type: string + issued: + format: date + readOnly: true + type: string + type: object + readOnly: true + type: array + connected_since: + format: date-time + readOnly: true + type: string + description: + description: The description of the device + type: string + dev_cert_detail: + readOnly: true + type: string + dev_cert_expiry_date: + readOnly: true + type: string + family: + description: The product family of the device + readOnly: true + type: string + folder: + description: The folder containing the device + type: string + gp_client_verion: + readOnly: true + type: string + gp_data_version: + readOnly: true + type: string + ha_peer_serial: + readOnly: true + type: string + ha_peer_state: + readOnly: true + type: string + ha_state: + readOnly: true + type: string + hostname: + description: The hostname of the device + readOnly: true + type: string + id: + description: The UUID of the device + readOnly: true + type: string + installed_licenses: + items: + properties: + authcode: + readOnly: true + type: string + expired: + readOnly: true + type: string + expires: + readOnly: true + type: string + feature: + readOnly: true + type: string + issued: + format: date + readOnly: true + type: string + type: object + readOnly: true + type: array + iot_release_date: + readOnly: true + type: string + iot_version: + readOnly: true + type: string + ipV6_address: + description: The IPv6 address of the device + readOnly: true + type: string + ip_address: + description: The IPv4 address of the device + readOnly: true + type: string + is_connected: + readOnly: true + type: boolean + labels: + description: Labels assigned to the device + items: + type: string + type: array + license_match: + readOnly: true + type: boolean + log_db_version: + readOnly: true + type: string + mac_address: + description: The MAC address of the device + readOnly: true + type: string + model: + description: The model of the device + readOnly: true + type: string + name: + description: The name of the device + type: string + snippets: + description: Snippets associated with the device + items: + type: string + type: array + software_version: + readOnly: true + type: string + threat_release_date: + readOnly: true + type: string + threat_version: + readOnly: true + type: string + uptime: + readOnly: true + type: string + url_db_type: + readOnly: true + type: string + url_db_ver: + readOnly: true + type: string + vm_state: + readOnly: true + type: string + wf_release_date: + readOnly: true + type: string + wf_ver: + readOnly: true + type: string + required: + - name + - id + - folder + type: object + dynamic_entry: + additionalProperties: true + readOnly: true + type: object + error_detail_cause_info: + properties: + code: + type: string + details: + type: object + help: + type: string + message: + type: string + title: Cause Info + type: object + error_detail_cause_infos: + items: + $ref: '#/components/schemas/error_detail_cause_info' + type: array + folders: + properties: + description: + description: The description of the folder + type: string + id: + description: The UUID of the folder + readOnly: true + type: string + labels: + description: Labels assigned to the folder + items: + type: string + type: array + name: + description: The name of the folder + type: string + parent: + description: The parent folder + type: string + snippets: + description: Snippets associated with the folder + items: + type: string + type: array + required: + - name + - id + - parent + type: object + generic_error: + properties: + _errors: + $ref: '#/components/schemas/error_detail_cause_infos' + _request_id: + type: string + type: object + labels: + properties: + description: + description: The description of the label + type: string + id: + description: The UUID of the label + readOnly: true + type: string + name: + description: The name of the label + type: string + required: + - name + - id + type: object + property_item: + properties: + id: + type: integer + name: + type: string + value: + type: string + type: object + save_snippet_snapshot_config_response: + properties: + result: + properties: + version: + type: string + readOnly: true + type: object + status: + readOnly: true + type: string + readOnly: true + type: object + save_snippet_snapshot_payload: + properties: + description: + type: string + id: + type: string + required: + - id + - description + type: object + snippet_audit_history: + properties: + action: + readOnly: true + type: string + created: + format: date-time + readOnly: true + type: string + deleted: + readOnly: true + type: integer + details: + readOnly: true + type: string + display: + readOnly: true + type: integer + donor_created: + readOnly: true + type: integer + donor_tenant_name: + readOnly: true + type: string + donor_tsg: + readOnly: true + type: string + id: + format: uint + readOnly: true + type: integer + recipient_tenant_name: + readOnly: true + type: string + recipient_tsg: + readOnly: true + type: string + snippet_uuid: + readOnly: true + type: string + user: + readOnly: true + type: string + version: + readOnly: true + type: string + type: object + snippet_share_info: + properties: + created: + format: date-time + readOnly: true + type: string + donor_created: + readOnly: true + type: integer + donor_snippet_file_id: + readOnly: true + type: integer + donor_snippet_version: + readOnly: true + type: integer + donor_tenant_id: + readOnly: true + type: string + donor_tenant_name: + readOnly: true + type: string + donor_tsg: + readOnly: true + type: string + error: + readOnly: true + type: string + id: + format: uint + readOnly: true + type: integer + last_updated: + format: date-time + readOnly: true + type: string + msg_uuid: + readOnly: true + type: string + properties: + items: + $ref: '#/components/schemas/snippet_share_property' + type: array + recipient_paused_update: + readOnly: true + type: boolean + recipient_snippet_file_id: + readOnly: true + type: integer + recipient_snippet_version: + readOnly: true + type: integer + recipient_tenant_id: + readOnly: true + type: string + recipient_tenant_name: + readOnly: true + type: string + recipient_tsg: + readOnly: true + type: string + recipient_validate_before_update: + readOnly: true + type: boolean + snippet_name: + readOnly: true + type: string + snippet_uuid: + readOnly: true + type: string + status: + readOnly: true + type: string + type: object + snippet_share_property: + properties: + created: + format: date-time + readOnly: true + type: string + created_by: + readOnly: true + type: string + donor_tenant: + readOnly: true + type: string + donor_tsg: + readOnly: true + type: string + error: + readOnly: true + type: string + id: + readOnly: true + type: integer + msg_uuid: + readOnly: true + type: string + property_name: + readOnly: true + type: string + property_value: + readOnly: true + type: string + recipient_tenant: + readOnly: true + type: string + recipient_tsg: + readOnly: true + type: string + snippet_name: + readOnly: true + type: string + snippet_uuid: + readOnly: true + type: string + status: + readOnly: true + type: string + updated: + format: date-time + readOnly: true + type: string + updated_by: + readOnly: true + type: string + type: object + snippet_snapshot_compare_entry: + properties: + admin: + format: email + readOnly: true + type: string + id: + readOnly: true + type: string + loc: + type: string + loctype: + type: string + objectname: + type: string + objecttype: + type: string + operations: + enum: + - edit + - create + type: string + timestamp: + format: date-time + type: string + readOnly: true + type: object + snippet_snapshot_compare_response: + items: + $ref: '#/components/schemas/snippet_snapshot_compare_entry' + readOnly: true + type: array + snippet_snapshot_load_snippet_payload: + properties: + id: + type: string + version: + type: string + required: + - id + - version + type: object + snippet_snapshot_load_snippet_response: + properties: + status: + type: string + readOnly: true + type: object + snippet_snapshot_publish_request: + properties: + id: + type: string + name: + type: string + tsgs: + items: + type: string + type: array + validation: + type: boolean + version: + type: integer + type: object + snippet_snapshot_publish_response: + properties: + file_id: + nullable: true + readOnly: true + type: integer + id: + readOnly: true + type: string + job_id: + readOnly: true + type: integer + tsgs: + items: + type: string + readOnly: true + type: array + version: + nullable: true + readOnly: true + type: integer + readOnly: true + type: object + snippet_snapshot_subscriber_compare_payload: + properties: + id: + type: string + tenant_id: + description: Publisher Tenant ID + type: string + required: + - id + - tenant_id + type: object + snippet_snapshot_subscriber_compare_response: + properties: + publisher: + properties: + entry: + items: + $ref: '#/components/schemas/dynamic_entry' + type: array + readOnly: true + type: object + subscriber: + properties: + entry: + items: + $ref: '#/components/schemas/dynamic_entry' + type: array + readOnly: true + type: object + type: object + snippets: + properties: + description: + description: The description of the snippet + type: string + id: + description: The UUID of the snippet + readOnly: true + type: string + labels: + description: Labels applied to the snippet + items: + type: string + type: array + name: + description: The name of the snippet + type: string + type: + description: The snippet type + enum: + - predefined + - custom + readOnly: true + type: string + required: + - name + - id + type: object + subscriber_property_payload: + properties: + property: + items: + $ref: '#/components/schemas/property_item' + type: array + snippet_id: + type: string + snippet_name: + type: string + tsg_id: + type: string + required: + - tsg_id + - snippet_id + - snippet_name + type: object + tenant_trust_info: + properties: + created: + format: date-time + readOnly: true + type: string + created_by: + readOnly: true + type: string + current_status: + readOnly: true + type: string + donor_cluster: + readOnly: true + type: string + donor_msg_uuid: + readOnly: true + type: string + donor_project: + readOnly: true + type: string + donor_region: + readOnly: true + type: string + donor_tenant_id: + type: string + donor_tenant_name: + type: string + donor_trust_info_id: + readOnly: true + type: integer + donor_tsg: + readOnly: true + type: string + error_details: + readOnly: true + type: string + last_updated: + format: date-time + readOnly: true + type: string + psk: + type: string + recipient_cluster: + readOnly: true + type: string + recipient_msg_uuid: + readOnly: true + type: string + recipient_project: + readOnly: true + type: string + recipient_region: + readOnly: true + type: string + recipient_tenant_id: + readOnly: true + type: string + recipient_tenant_name: + type: string + recipient_trust_info_id: + readOnly: true + type: integer + recipient_tsg: + readOnly: true + type: string + trust_id: + type: integer + updated_by: + readOnly: true + type: string + type: object + trust_info_with_shared_snippets: + properties: + created: + format: date-time + readOnly: true + type: string + donor_created: + readOnly: true + type: integer + donor_snippet_file_id: + readOnly: true + type: integer + donor_snippet_version: + readOnly: true + type: integer + donor_tsg: + readOnly: true + type: string + error: + readOnly: true + type: string + id: + readOnly: true + type: integer + last_updated: + format: date-time + readOnly: true + type: string + msg_uuid: + readOnly: true + type: string + recipient_paused_update: + readOnly: true + type: integer + recipient_snippet_file_id: + readOnly: true + type: integer + recipient_snippet_version: + readOnly: true + type: integer + recipient_tsg: + readOnly: true + type: string + recipient_validate_before_update: + readOnly: true + type: integer + shared_snippets: + items: + $ref: '#/components/schemas/snippet_share_info' + type: array + snippet_name: + readOnly: true + type: string + snippet_uuid: + readOnly: true + type: string + status: + readOnly: true + type: string + updated_by: + readOnly: true + type: string + type: object + trust_validation_info: + properties: + created: + format: date-time + readOnly: true + type: string + created_by: + readOnly: true + type: string + current_status: + readOnly: true + type: string + donor_cluster: + readOnly: true + type: string + donor_msg_uuid: + readOnly: true + type: string + donor_project: + readOnly: true + type: string + donor_region: + readOnly: true + type: string + donor_tenant_id: + type: string + donor_tenant_name: + type: string + donor_tsg: + readOnly: true + type: string + last_updated: + format: date-time + readOnly: true + type: string + psk: + type: string + recipient_cluster: + readOnly: true + type: string + recipient_msg_uuid: + readOnly: true + type: string + recipient_region: + readOnly: true + type: string + recipient_tenant_id: + readOnly: true + type: string + recipient_tenant_name: + type: string + recipient_tsg: + readOnly: true + type: string + trust_id: + type: integer + updated_by: + readOnly: true + type: string + type: object + trusted_tenant_overview: + properties: + publisher: + properties: + pending: + readOnly: true + type: integer + total: + readOnly: true + type: integer + type: object + subscriber: + properties: + pending: + readOnly: true + type: integer + total: + readOnly: true + type: integer + type: object + type: object + trusts: + properties: + donor_tenant_name: + type: string + psk: + type: string + recipient_tenant_name: + type: string + trust_id: + nullable: true + type: integer + tsg: + type: string + type: object + trusts_validation_payload: + properties: + donor_tenant_name: + type: string + psk: + type: string + recipient_tenant_name: + type: string + trust_id: + nullable: true + type: integer + tsg: + type: string + required: + - tsg + - donor_tenant_name + - recipient_tenant_name + - trust_id + - psk + type: object + variables: + oneOf: + - properties: + folder: + description: The folder in which the resource is defined + example: My Folder + maxLength: 64 + pattern: ^[a-zA-Z\d-_\. ]+$ + type: string + required: + - folder + title: folder + type: object + - properties: + snippet: + description: The snippet in which the resource is defined + example: My Snippet + maxLength: 64 + pattern: ^[a-zA-Z\d-_\. ]+$ + type: string + required: + - snippet + title: snippet + type: object + - properties: + device: + description: The device in which the resource is defined + example: My Device + maxLength: 64 + pattern: ^[a-zA-Z\d-_\. ]+$ + type: string + required: + - device + title: device + type: object + properties: + description: + description: The description of the variable + type: string + id: + description: UUID of the variable + example: 123e4567-e89b-12d3-a456-426655440000 + readOnly: true + type: string + name: + description: The name of the variable + maxLength: 63 + type: string + overridden: + description: Is the variable overridden? + readOnly: true + type: boolean + type: + description: The variable type + enum: + - percent + - count + - ip-netmask + - zone + - ip-range + - ip-wildcard + - device-priority + - device-id + - egress-max + - as-number + - fqdn + - port + - link-tag + - group-id + - rate + - router-id + - qos-profile + - timer + type: string + value: + additionalProperties: + oneOf: + - type: string + - type: integer + default: None + description: The value of the variable + type: string + required: + - name + - id + - type + - value + type: object + securitySchemes: + Bearer: + scheme: bearer + type: http +info: + contact: + email: support@paloaltonetworks.com + description: "Managing configurations across multiple tenants can be a challenging\ + \ and error-prone task. \nThe Snippet Sharing API simplifies this process by enabling\ + \ administrators to efficiently share and synchronize configuration snippets between\ + \ different tenants. \nThis API ensures consistency, reduces manual errors, and\ + \ provides a secure and reliable way to manage configurations.\n\nThese APIs use\ + \ the common Strata Cloud Manager authentication mechanism and base URL. See the\n\ + [Strata Cloud Manager Authentication Service](https://pan.dev/scm/api/auth/auth-api/)\ + \ guide for more information.\n\nThis Open API spec file was created on May 28,\ + \ 2025. To check for a more recent version of this file, see\n[Snippet Sharing\ + \ APIs on pan.dev](https://pan.dev/scm/api/config/snippet-sharing/).\n\n\xA9 2025\ + \ Palo Alto Networks, Inc. Palo Alto Networks is a registered trademark of Palo\n\ + Alto Networks. A list of our trademarks can be found at\n\n[https://www.paloaltonetworks.com/company/trademarks.html](https://www.paloaltonetworks.com/company/trademarks.html)\n\ + \nAll other marks mentioned herein may be trademarks of their respective companies.\n" + license: + name: MIT + url: https://opensource.org/license/mit + termsOfService: https://www.paloaltonetworks.com/content/dam/pan/en_US/assets/pdf/legal/palo-alto-networks-end-user-license-agreement-eula.pdf + title: PaloAlto Networks Snippet Sharing APIs + version: '1.0' +openapi: 3.0.0 +paths: + /devices: + get: + description: 'Retrieve a list of devices. + + ' + operationId: get-devices + parameters: + - $ref: '#/components/parameters/limit-optional' + - $ref: '#/components/parameters/offset-optional' + - $ref: '#/components/parameters/name-optional' + responses: + '200': + content: + application/json: + schema: + properties: + data: + allOf: + - items: + $ref: '#/components/schemas/devices' + type: array + limit: + default: 200 + type: number + offset: + default: 0 + type: number + total: + type: number + type: object + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: List devices + tags: + - Devices + /devices/{id}: + get: + description: 'Retrieve an existing device. + + ' + operationId: get-devices-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/devices' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get a device + tags: + - Devices + put: + description: 'Update an existing device. + + ' + operationId: put-devices-id + parameters: + - $ref: '#/components/parameters/uuid' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/devices' + description: The `device` resource definition. + responses: + '200': + $ref: '#/components/responses/http_ok' + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update a device + tags: + - Devices + /folders: + get: + description: 'Retrieve a list of folders. + + ' + operationId: get-folders + parameters: + - $ref: '#/components/parameters/limit-optional' + - $ref: '#/components/parameters/offset-optional' + - $ref: '#/components/parameters/name-optional' + responses: + '200': + content: + application/json: + schema: + properties: + data: + allOf: + - items: + $ref: '#/components/schemas/folders' + type: array + limit: + default: 200 + type: number + offset: + default: 0 + type: number + total: + type: number + type: object + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: List folders + tags: + - Folders + post: + description: 'Create a new folder. + + ' + operationId: post-folders + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/folders' + description: The `folder` resource definition + responses: + '201': + $ref: '#/components/responses/http_created' + '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' + security: + - Bearer: [] + summary: Create a folder + tags: + - Folders + /folders/{id}: + delete: + description: 'Delete an existing folder. + + ' + operationId: delete-folders-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/folders' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete a folder + tags: + - Folders + get: + description: 'Retrieve an existing folder. + + ' + operationId: get-folders-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/folders' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get a folder + tags: + - Folders + put: + description: 'Update an existing folder. + + ' + operationId: put-folders-id + parameters: + - $ref: '#/components/parameters/uuid' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/folders' + description: The `folder` resource definition. + responses: + '200': + $ref: '#/components/responses/http_ok' + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update a folder + tags: + - Folders + /labels: + get: + description: 'Retrieve a list of labels. + + ' + operationId: get-labels + parameters: + - $ref: '#/components/parameters/limit-optional' + - $ref: '#/components/parameters/offset-optional' + - $ref: '#/components/parameters/name-optional' + responses: + '200': + content: + application/json: + schema: + properties: + data: + allOf: + - items: + $ref: '#/components/schemas/labels' + type: array + limit: + default: 200 + type: number + offset: + default: 0 + type: number + total: + type: number + type: object + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Label list + tags: + - Labels + post: + description: 'Create a label. + + ' + operationId: post-labels + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/labels' + description: The `label` resource definition. + responses: + '201': + $ref: '#/components/responses/http_created' + '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' + security: + - Bearer: [] + summary: New label + tags: + - Labels + /labels/{id}: + delete: + description: 'Delete an existing label. + + ' + operationId: delete-labels-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/labels' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete label + tags: + - Labels + get: + description: 'Retrieve an existing label. + + ' + operationId: get-labels-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/labels' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get label + tags: + - Labels + put: + description: 'Update an existing label. + + ' + operationId: put-labels-id + parameters: + - $ref: '#/components/parameters/uuid' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/labels' + description: The `label` resource definition. + responses: + '200': + $ref: '#/components/responses/http_ok' + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update label + tags: + - Labels + /snippet-audit-logs/{id}: + get: + description: 'Retrieve an existing snippet audit logs by UUID. + + ' + operationId: get-snippet-audit-logs-id + parameters: + - $ref: '#/components/parameters/uuid' + - $ref: '#/components/parameters/trusted-tenant-type' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/snippet_audit_history' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get a snippet audit logs + tags: + - Snippet Audit Logs + /snippet-snapshots: + post: + description: "Save Snippet Snapshots. \n" + operationId: post-snippet-snapshots + 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' + security: + - Bearer: [] + summary: Save Snippet Snapshots + tags: + - Snippet Snapshots + /snippet-snapshots:compare: + post: + description: 'Compare Snippet Snapshots. + + ' + operationId: post-snippet-snapshots:compare + 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' + security: + - Bearer: [] + summary: Compare Snippet Snapshots + tags: + - Snippet Snapshots + /snippet-snapshots:load: + post: + description: 'Load Snippet Snapshots. Discards current candidate and loads specific + version of the snippet snapshot as a candidate. + + ' + operationId: post-snippet-snapshots:load + 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' + security: + - Bearer: [] + summary: Load Snippet Snapshots + tags: + - Snippet Snapshots + /snippet-snapshots:publish: + post: + description: 'Publish Snippet Snapshots. + + ' + operationId: post-snippet-snapshots:publish + 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' + security: + - Bearer: [] + summary: Publish Snippet Snapshots + tags: + - Snippet Snapshots + /snippet-snapshots:updates: + post: + description: 'Update Snippet Snapshots. + + ' + operationId: post-snippet-snapshots:updates + 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' + security: + - Bearer: [] + summary: Update Snippet Snapshots + tags: + - Snippet Snapshots + /snippets: + get: + description: 'Retrieve a list of snippets. + + ' + operationId: get-snippets + parameters: + - $ref: '#/components/parameters/limit-optional' + - $ref: '#/components/parameters/offset-optional' + - $ref: '#/components/parameters/name-optional' + responses: + '200': + content: + application/json: + schema: + properties: + data: + allOf: + - items: + $ref: '#/components/schemas/snippets' + type: array + limit: + default: 200 + type: number + offset: + default: 0 + type: number + total: + type: number + type: object + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Snippet list + tags: + - Snippets + post: + description: 'Create a snippet. + + ' + operationId: post-snippets + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/snippets' + description: The `snippet` resource definition. + responses: + '201': + $ref: '#/components/responses/http_created' + '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' + security: + - Bearer: [] + summary: New snippet + tags: + - Snippets + /snippets/{id}: + delete: + description: 'Delete an existing snippet. + + ' + operationId: delete-snippets-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/snippets' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete a snippet + tags: + - Snippets + get: + description: 'Retrieve an existing snippet. + + ' + operationId: get-snippets-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/snippets' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get a snippet + tags: + - Snippets + put: + description: 'Update a snippet. + + ' + operationId: put-snippets-id + parameters: + - $ref: '#/components/parameters/uuid' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/snippets' + description: The `snippet` resource definition. + responses: + '200': + $ref: '#/components/responses/http_ok' + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update snippet + tags: + - Snippets + /subscribed-tenants: + delete: + description: 'Delete an existing subscribed tenant. + + ' + operationId: delete-subscribed-tenants + parameters: + - $ref: '#/components/parameters/snippet-id' + - $ref: '#/components/parameters/recipient-tsgs' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/deleted_subscriber' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete a subscribed tenant + tags: + - Subscribed Tenants + post: + description: 'Create Subscribed Tenant. + + ' + operationId: post-subscribed-tenants + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/add_subscriber_request_payload' + description: The `Subscribed Tenant` resource definition + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/tenant_trust_info' + 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' + security: + - Bearer: [] + summary: Create Subscribed Tenant + tags: + - Subscribed Tenants + put: + description: 'Update an existing subscribed tenant. + + ' + operationId: put-subscribed-tenants + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/subscriber_property_payload' + description: The `subscribed tenant` resource definition. + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/subscriber_property_payload' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update a subscribed tenant + tags: + - Subscribed Tenants + /subscribed-tenants/{id}: + get: + description: 'Retrieve a list of subscribed tenants. + + ' + operationId: get-subscribed-tenants-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + items: + $ref: '#/components/schemas/snippet_share_info' + type: array + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get Subscribed Tenants + tags: + - Subscribed Tenants + /trust-validations: + post: + description: "Validate trust. \n" + operationId: post-trust-validations + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/trusts_validation_payload' + description: The `trust validation` resource definition + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/trust_validation_info' + 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' + security: + - Bearer: [] + summary: Validates Trust + tags: + - Trust Validations + /trusted-tenant-overview: + get: + description: "Overview of publishers and subscribers. \n" + operationId: get-trusted-tenant-overview + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/trusted_tenant_overview' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Trusted Tenants Overview + tags: + - Trusted Tenants Overview + /trusted-tenants: + get: + description: 'Retrieve a list of trusted tenants with snippets. + + ' + operationId: get-trusted-tenants + parameters: + - $ref: '#/components/parameters/trusted-tenant-type' + responses: + '200': + content: + application/json: + schema: + items: + $ref: '#/components/schemas/trust_info_with_shared_snippets' + type: array + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Trusted Tenants With Snippets + tags: + - Trust Information + /trusts: + delete: + description: 'Delete an existing Trust. + + ' + operationId: delete-trusts + parameters: + - $ref: '#/components/parameters/trust-ids' + - $ref: '#/components/parameters/trusted-tenant-type' + responses: + '200': + content: + application/json: + schema: + items: + $ref: '#/components/schemas/tenant_trust_info' + type: array + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete a Trust + tags: + - Trusts + post: + description: 'Create a new trust. + + ' + operationId: post-trusts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/trusts' + description: The `trusts` resource definition + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/tenant_trust_info' + description: CREATED + '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' + security: + - Bearer: [] + summary: Create a trust + tags: + - Trusts + /variables: + get: + description: 'Retrieve a list of variables. + + ' + operationId: get-variables + parameters: + - $ref: '#/components/parameters/limit-optional' + - $ref: '#/components/parameters/offset-optional' + - $ref: '#/components/parameters/name-optional' + - $ref: '#/components/parameters/folder' + - $ref: '#/components/parameters/snippet' + - $ref: '#/components/parameters/device' + responses: + '200': + content: + application/json: + schema: + properties: + data: + allOf: + - items: + $ref: '#/components/schemas/variables' + type: array + limit: + default: 200 + type: number + offset: + default: 0 + type: number + total: + type: number + type: object + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: List variables + tags: + - Variables + post: + description: "Create a variable. \n" + operationId: post-variables + parameters: + - $ref: '#/components/parameters/folder' + - $ref: '#/components/parameters/snippet' + - $ref: '#/components/parameters/device' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/variables' + description: The `variable` resource definition. + responses: + '201': + $ref: '#/components/responses/http_created' + '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' + security: + - Bearer: [] + summary: Create variables + tags: + - Variables + /variables/{id}: + delete: + description: 'Delete a variable. + + ' + operationId: delete-variables-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/variables' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete variable + tags: + - Variables + get: + description: 'Retrieve an existing variable. + + ' + operationId: get-variables-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/variables' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get a variables + tags: + - Variables + put: + description: 'Update a variable. + + ' + operationId: put-variables-id + parameters: + - $ref: '#/components/parameters/uuid' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/variables' + description: The `variable` resource definition. + responses: + '200': + $ref: '#/components/responses/http_ok' + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update variable + tags: + - Variables +servers: +- url: https://api.strata.paloaltonetworks.com/config/setup/v1 +tags: +- description: 'Configuration Labels + + ' + name: Labels API +- description: 'Variables + + ' + name: Variables API +- description: 'Configuration Snippets + + ' + name: Snippets API +- description: 'Configuration folders + + ' + name: Folders API +- description: 'NGFW Devices + + ' + name: Devices API +- description: 'Trusted Tenants Overview + + ' + name: Trusted Tenants Overview API +- description: 'Trust Information + + ' + name: Trust Information API +- description: 'Trusts + + ' + name: Trusts API +- description: 'Trust Validations + + ' + name: Trust Validations API +- description: 'Subscribed Tenants + + ' + name: Subscribed Tenants API +- description: 'Snippet Snapshots + + ' + name: Snippet Snapshots API +- description: 'Snippet Audit Logs + + ' + name: Snippet Audit Logs API diff --git a/openapi-specs/scm/config/sase/setup/config-setup.yaml b/openapi-specs/scm/config/sase/setup/config-setup.yaml deleted file mode 100644 index 706c0b675..000000000 --- a/openapi-specs/scm/config/sase/setup/config-setup.yaml +++ /dev/null @@ -1,1489 +0,0 @@ -openapi: 3.0.0 -info: - version: 2.0.0 - title: Configuration Setup - 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 -tags: - - name: Devices - description: NGFW devices - - name: Folders - description: Configuration folders - - name: Labels - description: Configuration labels - - name: Snippets - description: Configuration snippets - - name: Variables - description: Configuration variables -paths: - /labels: - get: - summary: List labels - description: | - Retrieve a list of labels. - tags: - - Labels - operationId: ListLabels - parameters: - - $ref: '#/components/parameters/limit-optional' - - $ref: '#/components/parameters/offset-optional' - - $ref: '#/components/parameters/name-optional' - responses: - '200': - content: - application/json: - schema: - type: object - properties: - data: - allOf: - - type: array - items: - $ref: '#/components/schemas/labels' - limit: - type: number - default: 200 - offset: - type: number - default: 0 - total: - type: number - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - post: - summary: Create a label - description: | - Create a new label. - tags: - - Labels - operationId: CreateLabel - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/labels' - description: The `label` resource definition. - responses: - '201': - $ref: '#/components/responses/http_created' - '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' - /labels/{id}: - get: - summary: Get a label - description: | - Retrieve an existing label. - tags: - - Labels - operationId: GetLabelByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/labels' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - put: - summary: Update a label - description: | - Update an existing label. - tags: - - Labels - operationId: UpdateLabelByID - parameters: - - $ref: '#/components/parameters/uuid' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/labels' - description: The `label` resource definition. - responses: - '200': - $ref: '#/components/responses/http_ok' - '400': - $ref: '#/components/responses/bad_request_errors_basic_with_body' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - delete: - summary: Delete a label - description: | - Delete an existing label. - tags: - - Labels - operationId: DeleteLabelByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/labels' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - /variables: - get: - summary: List variables - description: | - Retrieve a list of variables. - tags: - - Variables - operationId: ListVariables - parameters: - - $ref: '#/components/parameters/limit-optional' - - $ref: '#/components/parameters/offset-optional' - - $ref: '#/components/parameters/name-optional' - - $ref: '#/components/parameters/folder' - - $ref: '#/components/parameters/snippet' - - $ref: '#/components/parameters/device' - responses: - '200': - content: - application/json: - schema: - type: object - properties: - data: - allOf: - - type: array - items: - $ref: '#/components/schemas/variables' - limit: - type: number - default: 200 - offset: - type: number - default: 0 - total: - type: number - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - post: - summary: Create a variable - description: | - Create a new variable. - tags: - - Variables - operationId: CreateVariable - parameters: - - $ref: '#/components/parameters/folder' - - $ref: '#/components/parameters/snippet' - - $ref: '#/components/parameters/device' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/variables' - description: The `variable` resource definition. - responses: - '201': - $ref: '#/components/responses/http_created' - '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' - /variables/{id}: - get: - summary: Get a variables - description: | - Retrieve an existing variable. - tags: - - Variables - operationId: GetVariableByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/variables' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - put: - summary: Update a variable - description: | - Update an existing variable. - tags: - - Variables - operationId: UpdateVariableByID - parameters: - - $ref: '#/components/parameters/uuid' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/variables' - description: The `variable` resource definition. - responses: - '200': - $ref: '#/components/responses/http_ok' - '400': - $ref: '#/components/responses/bad_request_errors_basic_with_body' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - delete: - summary: Delete a variable - description: | - Delete an existing variable. - tags: - - Variables - operationId: DeleteVariableByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/variables' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - /snippets: - get: - summary: List snippets - description: | - Retrieve a list of snippets. - tags: - - Snippets - operationId: ListSnippets - parameters: - - $ref: '#/components/parameters/limit-optional' - - $ref: '#/components/parameters/offset-optional' - - $ref: '#/components/parameters/name-optional' - responses: - '200': - content: - application/json: - schema: - type: object - properties: - data: - allOf: - - type: array - items: - $ref: '#/components/schemas/snippets' - limit: - type: number - default: 200 - offset: - type: number - default: 0 - total: - type: number - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - post: - summary: Create a snippet - description: | - Create a new snippet. - tags: - - Snippets - operationId: CreateSnippet - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/snippets' - description: The `snippet` resource definition. - responses: - '201': - $ref: '#/components/responses/http_created' - '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' - /snippets/{id}: - get: - summary: Get a snippet - description: | - Retrieve an existing snippet. - tags: - - Snippets - parameters: - - $ref: '#/components/parameters/uuid' - operationId: GetSnippetByID - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/snippets' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - put: - summary: Update a snippet - description: | - Update an existing snippet. - tags: - - Snippets - operationId: UpdateSnippetByID - parameters: - - $ref: '#/components/parameters/uuid' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/snippets' - description: The `snippet` resource definition. - responses: - '200': - $ref: '#/components/responses/http_ok' - '400': - $ref: '#/components/responses/bad_request_errors_basic_with_body' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - delete: - summary: Delete a snippet - description: | - Delete an existing snippet. - tags: - - Snippets - operationId: DeleteSnippetByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/snippets' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - /folders: - get: - summary: List folders - description: | - Retrieve a list of folders. - tags: - - Folders - operationId: ListFolders - parameters: - - $ref: '#/components/parameters/limit-optional' - - $ref: '#/components/parameters/offset-optional' - - $ref: '#/components/parameters/name-optional' - responses: - '200': - content: - application/json: - schema: - type: object - properties: - data: - allOf: - - type: array - items: - $ref: '#/components/schemas/folders' - limit: - type: number - default: 200 - offset: - type: number - default: 0 - total: - type: number - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - post: - summary: Create a folder - description: | - Create a new folder. - tags: - - Folders - operationId: CreateFolder - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/folders' - description: The `folder` resource definition - responses: - '201': - $ref: '#/components/responses/http_created' - '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' - /folders/{id}: - get: - summary: Get a folder - description: | - Retrieve an existing folder. - tags: - - Folders - operationId: GetFolderByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/folders' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - put: - summary: Update a folder - description: | - Update an existing folder. - tags: - - Folders - operationId: UpdateFolderByID - parameters: - - $ref: '#/components/parameters/uuid' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/folders' - description: The `folder` resource definition. - responses: - '200': - $ref: '#/components/responses/http_ok' - '400': - $ref: '#/components/responses/bad_request_errors_basic_with_body' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - delete: - summary: Delete a folder - description: | - Delete an existing folder. - tags: - - Folders - operationId: DeleteFolderByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/folders' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' - /devices: - get: - summary: List devices - description: | - Retrieve a list of devices. - tags: - - Devices - operationId: ListDevices - parameters: - - $ref: '#/components/parameters/limit-optional' - - $ref: '#/components/parameters/offset-optional' - - $ref: '#/components/parameters/name-optional' - responses: - '200': - content: - application/json: - schema: - type: object - properties: - data: - allOf: - - type: array - items: - $ref: '#/components/schemas/devices' - limit: - type: number - default: 200 - offset: - type: number - default: 0 - total: - type: number - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - /devices/{id}: - get: - summary: Get a device - description: | - Retrieve an existing device. - tags: - - Devices - operationId: GetDeviceByID - parameters: - - $ref: '#/components/parameters/uuid' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/devices' - description: OK - '400': - $ref: '#/components/responses/bad_request_errors_basic' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - default: - $ref: '#/components/responses/default_errors' - put: - summary: Update a device - description: | - Update an existing device. - tags: - - Devices - operationId: UpdateDeviceByID - parameters: - - $ref: '#/components/parameters/uuid' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/devices' - description: The `device` resource definition. - responses: - '200': - $ref: '#/components/responses/http_ok' - '400': - $ref: '#/components/responses/bad_request_errors_basic_with_body' - '401': - $ref: '#/components/responses/auth_errors' - '403': - $ref: '#/components/responses/access_errors' - '404': - $ref: '#/components/responses/not_found' - '409': - $ref: '#/components/responses/conflict_errors' - default: - $ref: '#/components/responses/default_errors' -components: - securitySchemes: - scmOAuth: - type: oauth2 - description: | - Strata Cloud Manager APIs authenticate client requests using the - OAuth 2.0 Client Credentials flow. Please use the `client_id`, - `client_secret` values associated with an IAM service account along - with a scope value of `tsg_id:XXXXXXXXXX`, where `XXXXXXXXXX` is the - Tenant Service Group (TSG) ID. The resulting JWT access token should - be attached to all API calls as a `Bearer` token in the `Authorization` - header (ex. `Authorization: Bearer tokenstring`). - 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 - OAuth 2.0 Client Credentials flow. Please use the `client_id`, - `client_secret` values associated with an IAM service account along - with a scope value of `tsg_id:XXXXXXXXXX`, where `XXXXXXXXXX` is the - Tenant Service Group (TSG) ID. The resulting JWT access token should - be attached to all API calls as a `Bearer` token in the `Authorization` - header (ex. `Authorization: Bearer tokenstring`). - scheme: bearer - bearerFormat: JWT - parameters: - uuid: - name: id - in: path - required: true - schema: - type: string - description: The UUID of the resource - name-optional: - name: name - in: query - required: false - schema: - type: string - description: The name of the resource - limit-optional: - name: limit - in: query - required: false - schema: - type: number - description: The maximum number of resources to return - offset-optional: - name: offset - in: query - required: false - schema: - type: number - description: The offset into the list of resources returned - folder: - name: folder - in: query - required: false - schema: - type: string - description: | - The folder in which the resource is defined - snippet: - name: snippet - in: query - required: false - schema: - type: string - description: | - The snippet in which the resource is defined - device: - name: device - in: query - required: false - schema: - type: string - description: | - The device in which the resource is defined - responses: - http_ok: - description: OK - http_created: - description: Created - 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' - access_errors: - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/generic_error' - examples: - auth_unauthorized: - $ref: '#/components/examples/json_403_panui_auth_unauthorized' - bad_request_errors_basic: - 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' - 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' - not_found: - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/generic_error' - examples: - object_not_present: - $ref: '#/components/examples/json_404_panui_mgmt_object_not_present' - 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' - 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' - examples: - 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_401_panui_auth_key_too_long: - summary: Key Too Long - value: - _errors: - - code: "E016" - message: Key Too Long - details: {} - _request_id: "abcd-1234" - json_401_panui_auth_key_expired: - summary: Key Expired - value: - _errors: - - code: "E016" - message: Key Expired - 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_403_panui_auth_unauthorized: - summary: Unauthorized - value: - _errors: - - code: "E007" - message: Unauthorized - 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_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_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_restapi_missing_query_parameter: - summary: Missing Query Parameter - value: - _errors: - - code: "E003" - message: 'Missing Query Parameter: name' - 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_400_panui_restapi_missing_body: - summary: Missing Body - value: - _errors: - - code: "E003" - message: Missing Body - 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_mgmt_bad_xpath: - summary: Bad XPath - value: - _errors: - - code: "E013" - message: Bad XPath - details: {} - _request_id: "abcd-1234" - json_404_panui_mgmt_object_not_present: - summary: Object Not Present - value: - _errors: - - code: "E005" - message: Object Not Present - 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_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_reference_not_zero: - summary: Reference Not Zero - value: - _errors: - - code: "E009" - message: Reference Not Zero - 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_invalid_command: - summary: Invalid Command - value: - _errors: - - code: "E003" - message: Invalid Command - 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" - schemas: - generic_error: - type: object - properties: - _errors: - $ref: '#/components/schemas/error_detail_cause_infos' - _request_id: - type: string - error_detail_cause_infos: - type: array - items: - $ref: '#/components/schemas/error_detail_cause_info' - error_detail_cause_info: - title: Cause Info - type: object - properties: - 'code': - type: string - message: - type: string - details: - type: object - help: - type: string - variables: - type: object - required: - - 'name' - - 'id' - - 'type' - - 'value' - properties: - id: - type: string - description: UUID of the variable - readOnly: true - example: 123e4567-e89b-12d3-a456-426655440000 - name: - type: string - description: The name of the variable - maxLength: 63 - type: - type: string - enum: - - percent - - count - - ip-netmask - - zone - - ip-range - - ip-wildcard - - device-priority - - device-id - - egress-max - - as-number - - fqdn - - port - - link-tag - - group-id - - rate - - router-id - - qos-profile - - timer - description: The variable type - value: - type: string - additionalProperties: - oneOf: - - type: string - - type: integer - description: The value of the variable - default: None - overridden: - type: boolean - readOnly: true - description: Is the variable overridden? - description: - type: string - description: The description of the variable - oneOf: - - type: object - title: folder - properties: - folder: - type: string - pattern: ^[a-zA-Z\d-_\. ]+$ - maxLength: 64 - description: The folder in which the resource is defined - example: My Folder - required: - - folder - - type: object - title: snippet - properties: - snippet: - type: string - pattern: ^[a-zA-Z\d-_\. ]+$ - maxLength: 64 - description: The snippet in which the resource is defined - example: My Snippet - required: - - snippet - - type: object - title: device - properties: - device: - type: string - pattern: ^[a-zA-Z\d-_\. ]+$ - maxLength: 64 - description: The device in which the resource is defined - example: My Device - required: - - device - folders: - type: object - required: - - "name" - - "id" - - "parent" - properties: - "name": - type: string - description: The name of the folder - "id": - type: string - readOnly: true - description: The UUID of the folder - "parent": - type: string - description: The parent folder - "description": - type: string - description: The description of the folder - "labels": - type: array - items: - type: string - description: Labels assigned to the folder - "snippets": - type: array - items: - type: string - description: Snippets associated with the folder - snippets: - type: object - required: - - "name" - - "id" - properties: - "name": - type: string - description: The name of the snippet - "description": - type: string - description: The description of the snippet - "id": - type: string - description: The UUID of the snippet - readOnly: true - "type": - type: string - readOnly: true - enum: - - predefined - - custom - description: The snippet type - "labels": - type: array - items: - type: string - description: Labels applied to the snippet - labels: - type: object - required: - - "name" - - "id" - properties: - "name": - type: string - description: The name of the label - "id": - type: string - readOnly: true - description: The UUID of the label - "description": - type: string - description: The description of the label - devices: - type: object - required: - - name - - id - - folder - properties: - "id": - type: string - readOnly: true - description: The UUID of the device - "name": - type: string - description: The name of the device - "folder": - type: string - description: The folder containing the device - "description": - type: string - description: The description of the device - "hostname": - type: string - readOnly: true - description: The hostname of the device - "ip_address": - type: string - readOnly: true - description: The IPv4 address of the device - "ipV6_address": - type: string - readOnly: true - description: The IPv6 address of the device - "mac_address": - type: string - readOnly: true - description: The MAC address of the device - "family": - type: string - readOnly: true - description: The product family of the device - "model": - type: string - readOnly: true - description: The model of the device - "labels": - type: array - items: - type: string - description: Labels assigned to the device - "snippets": - type: array - items: - type: string - description: Snippets associated with the device - "app_version": - type: string - readOnly: true - "threat_version": - type: string - readOnly: true - "anti_virus_version": - type: string - readOnly: true - "wf_ver": - type: string - readOnly: true - "iot_version": - type: string - readOnly: true - "url_db_type": - type: string - readOnly: true - "url_db_ver": - type: string - readOnly: true - "software_version": - type: string - readOnly: true - "vm_state": - type: string - readOnly: true - "gp_client_verion": - type: string - readOnly: true - "gp_data_version": - type: string - readOnly: true - "log_db_version": - type: string - readOnly: true - "uptime": - type: string - readOnly: true - "dev_cert_detail": - type: string - readOnly: true - "dev_cert_expiry_date": - type: string - readOnly: true - "ha_state": - type: string - readOnly: true - "ha_peer_serial": - type: string - readOnly: true - "ha_peer_state": - type: string - readOnly: true - "is_connected": - type: boolean - readOnly: true - "connected_since": - type: string - format: date-time - readOnly: true - "app_release_date": - type: string - readOnly: true - "threat_release_date": - type: string - readOnly: true - "av_release_date": - type: string - readOnly: true - "wf_release_date": - type: string - readOnly: true - "iot_release_date": - type: string - readOnly: true - "license_match": - type: boolean - readOnly: true - "available_licensess": - type: array - items: - type: object - properties: - "issued": - type: string - format: date - readOnly: true - "expires": - type: string - format: date - readOnly: true - "feature": - type: string - readOnly: true - "authcode": - type: string - readOnly: true - readOnly: true - "installed_licenses": - type: array - items: - type: object - properties: - "issued": - type: string - format: date - readOnly: true - "expired": - type: string - readOnly: true - "expires": - type: string - readOnly: true - "feature": - type: string - readOnly: true - "authcode": - type: string - readOnly: true - readOnly: true -security: - - scmToken: [] -x-internal: false \ No newline at end of file diff --git a/openapi-specs/scm/config/sase/setup/paloaltonetworks-snippet-sharing.yaml b/openapi-specs/scm/config/sase/setup/paloaltonetworks-snippet-sharing.yaml new file mode 100644 index 000000000..561a1cadc --- /dev/null +++ b/openapi-specs/scm/config/sase/setup/paloaltonetworks-snippet-sharing.yaml @@ -0,0 +1,2740 @@ +components: + examples: + json_400_panui_mgmt_bad_xpath: + summary: Bad XPath + value: + _errors: + - code: E013 + details: {} + message: Bad XPath + _request_id: abcd-1234 + json_400_panui_mgmt_invalid_command: + summary: Invalid Command + value: + _errors: + - code: E003 + details: {} + message: Invalid Command + _request_id: abcd-1234 + json_400_panui_mgmt_invalid_object: + summary: Invalid Object + value: + _errors: + - code: E003 + details: {} + message: Invalid Object + _request_id: abcd-1234 + json_400_panui_mgmt_malformed_command: + summary: Malformed Command + value: + _errors: + - code: E003 + details: {} + message: Malformed Command + _request_id: abcd-1234 + json_400_panui_restapi_input_format_mismatch: + summary: Input Format Mismatch + value: + _errors: + - code: E003 + details: {} + message: 'Input Format Mismatch: input-format=json' + _request_id: abcd-1234 + json_400_panui_restapi_invalid_query_parameter: + summary: Invalid Query Parameter + value: + _errors: + - code: E003 + details: {} + message: 'Invalid Query Parameter: location=invalid' + _request_id: abcd-1234 + json_400_panui_restapi_missing_body: + summary: Missing Body + value: + _errors: + - code: E003 + details: {} + message: Missing Body + _request_id: abcd-1234 + json_400_panui_restapi_missing_query_parameter: + summary: Missing Query Parameter + value: + _errors: + - code: E003 + details: {} + message: 'Missing Query Parameter: name' + _request_id: abcd-1234 + json_400_panui_restapi_output_format_mismatch: + summary: Output Format Mismatch + value: + _errors: + - code: E003 + details: {} + message: 'Output Format Mismatch: output-format=json Accept=xml' + _request_id: abcd-1234 + json_401_panui_auth_invalid_credential: + summary: Invalid Credential + value: + _errors: + - code: E016 + details: {} + message: Invalid Credential + _request_id: abcd-1234 + json_401_panui_auth_key_expired: + summary: Key Expired + value: + _errors: + - code: E016 + details: {} + message: Key Expired + _request_id: abcd-1234 + json_401_panui_auth_key_too_long: + summary: Key Too Long + value: + _errors: + - code: E016 + details: {} + message: Key Too Long + _request_id: abcd-1234 + json_401_panui_auth_need_password_change: + summary: Need Password Change + value: + _errors: + - code: E016 + details: {} + message: The password needs to be changed. + _request_id: abcd-1234 + json_401_panui_auth_not_authenticated: + summary: Not Authenticated + value: + _errors: + - code: E016 + details: {} + message: Not Authenticated + _request_id: abcd-1234 + json_403_panui_auth_unauthorized: + summary: Unauthorized + value: + _errors: + - code: E007 + details: {} + message: Unauthorized + _request_id: abcd-1234 + json_404_panui_mgmt_object_not_present: + summary: Object Not Present + value: + _errors: + - code: E005 + details: {} + message: Object Not Present + _request_id: abcd-1234 + json_405_panui_restapi_action_not_supported: + summary: Action Not Supported + value: + _errors: + - code: E012 + details: {} + message: 'Action Not Supported: move' + _request_id: abcd-1234 + json_409_panui_mgmt_name_not_unique: + summary: Name Not Unique + value: + _errors: + - code: E006 + details: {} + message: Name Not Unique + _request_id: abcd-1234 + json_409_panui_mgmt_object_not_unique: + summary: Object Not Unique + value: + _errors: + - code: E016 + details: {} + message: Object Not Unique + _request_id: abcd-1234 + json_409_panui_mgmt_reference_not_zero: + summary: Reference Not Zero + value: + _errors: + - code: E009 + details: {} + message: Reference Not Zero + _request_id: abcd-1234 + json_501_panui_restapi_method_not_supported: + summary: Method Not Supported + value: + _errors: + - code: E012 + details: {} + message: Method Not Supported + _request_id: abcd-1234 + json_501_panui_restapi_version_not_supported: + summary: Version Not Supported + value: + _errors: + - code: E012 + details: {} + message: Version Not Supported + _request_id: abcd-1234 + json_504_panui_mgmt_session_timeout: + summary: Session Timeout + value: + _errors: + - code: '4' + details: {} + message: Session Timeout + _request_id: abcd-1234 + parameters: + device: + description: 'Specifies the device where the resource is located. + + ' + in: query + name: device + required: false + schema: + type: string + folder: + description: 'Specifies the folder where the resource is located. + + ' + in: query + name: folder + required: false + schema: + type: string + limit-optional: + description: The maximum number of resources to return. + in: query + name: limit + required: false + schema: + type: number + name-optional: + description: The resource name. + in: query + name: name + required: false + schema: + type: string + offset-optional: + description: Specifies the starting point in the list of returned resources. + in: query + name: offset + required: false + schema: + type: number + recipient-tsgs: + description: 'A list of recipient TSG IDs separated by commas. + + ' + in: query + name: tsgs + required: true + schema: + type: string + snippet: + description: 'Specifies the snippet where the resource is defined. + + ' + in: query + name: snippet + required: false + schema: + type: string + snippet-id: + description: 'The unique identifier of the snippet. + + ' + in: query + name: snippet_id + required: true + schema: + type: string + trust-ids: + description: 'A list of trust IDs separated by commas. + + ' + in: query + name: trust_ids + required: true + schema: + type: string + trusted-tenant-type: + description: 'Specifies the type of the tenant that is trusted, either ''subscriber'' + or ''publisher''. + + ' + in: query + name: type + required: true + schema: + enum: + - subscriber + - publisher + type: string + uuid: + description: The resource UUID. + in: path + name: ID + required: true + schema: + type: string + responses: + access_errors: + content: + application/json: + examples: + auth_unauthorized: + $ref: '#/components/examples/json_403_panui_auth_unauthorized' + schema: + $ref: '#/components/schemas/generic_error' + description: Forbidden + auth_errors: + content: + application/json: + 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_expired: + $ref: '#/components/examples/json_401_panui_auth_key_expired' + key_too_long: + $ref: '#/components/examples/json_401_panui_auth_key_too_long' + need_password_change: + $ref: '#/components/examples/json_401_panui_auth_need_password_change' + schema: + $ref: '#/components/schemas/generic_error' + description: Unauthorized + bad_request_errors_basic: + content: + application/json: + examples: + input_format_mismatch: + $ref: '#/components/examples/json_400_panui_restapi_input_format_mismatch' + invalid_query_parameter: + $ref: '#/components/examples/json_400_panui_restapi_invalid_query_parameter' + missing_query_parameter: + $ref: '#/components/examples/json_400_panui_restapi_missing_query_parameter' + output_format_mismatch: + $ref: '#/components/examples/json_400_panui_restapi_output_format_mismatch' + schema: + $ref: '#/components/schemas/generic_error' + description: Bad Request + bad_request_errors_basic_with_body: + content: + application/json: + examples: + input_format_mismatch: + $ref: '#/components/examples/json_400_panui_restapi_input_format_mismatch' + invalid_object: + $ref: '#/components/examples/json_400_panui_mgmt_invalid_object' + invalid_query_parameter: + $ref: '#/components/examples/json_400_panui_restapi_invalid_query_parameter' + missing_body: + $ref: '#/components/examples/json_400_panui_restapi_missing_body' + missing_query_parameter: + $ref: '#/components/examples/json_400_panui_restapi_missing_query_parameter' + output_format_mismatch: + $ref: '#/components/examples/json_400_panui_restapi_output_format_mismatch' + schema: + $ref: '#/components/schemas/generic_error' + description: Bad Request + conflict_errors: + content: + application/json: + examples: + name_not_unique: + $ref: '#/components/examples/json_409_panui_mgmt_name_not_unique' + object_not_unique: + $ref: '#/components/examples/json_409_panui_mgmt_object_not_unique' + reference_not_zero: + $ref: '#/components/examples/json_409_panui_mgmt_reference_not_zero' + schema: + $ref: '#/components/schemas/generic_error' + description: Conflict + default_errors: + content: + application/json: + examples: + 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' + method_not_allowed: + $ref: '#/components/examples/json_501_panui_restapi_method_not_supported' + session_timeout: + $ref: '#/components/examples/json_504_panui_mgmt_session_timeout' + version_not_supported: + $ref: '#/components/examples/json_501_panui_restapi_version_not_supported' + schema: + $ref: '#/components/schemas/generic_error' + description: General Errors + http_created: + description: Created + http_ok: + description: OK + not_found: + content: + application/json: + examples: + object_not_present: + $ref: '#/components/examples/json_404_panui_mgmt_object_not_present' + schema: + $ref: '#/components/schemas/generic_error' + description: Not Found + schemas: + add_subscriber_request_payload: + items: + properties: + snippet_id: + type: string + snippet_name: + type: string + tsg_id: + type: string + required: + - tsg_id + - snippet_id + - snippet_name + type: object + type: array + compare_snippet_snapshot_config_payload: + properties: + comparing_version: + type: integer + id: + type: string + version: + type: integer + required: + - id + - version + - comparing_version + type: object + deleted_subscriber: + properties: + details: + type: string + info: + $ref: '#/components/schemas/snippet_share_info' + status: + type: string + type: object + devices: + properties: + anti_virus_version: + readOnly: true + type: string + app_release_date: + readOnly: true + type: string + app_version: + readOnly: true + type: string + av_release_date: + readOnly: true + type: string + available_licensess: + items: + properties: + authcode: + readOnly: true + type: string + expires: + format: date + readOnly: true + type: string + feature: + readOnly: true + type: string + issued: + format: date + readOnly: true + type: string + type: object + readOnly: true + type: array + connected_since: + format: date-time + readOnly: true + type: string + description: + description: The description of the device + type: string + dev_cert_detail: + readOnly: true + type: string + dev_cert_expiry_date: + readOnly: true + type: string + family: + description: The product family of the device + readOnly: true + type: string + folder: + description: The folder containing the device + type: string + gp_client_verion: + readOnly: true + type: string + gp_data_version: + readOnly: true + type: string + ha_peer_serial: + readOnly: true + type: string + ha_peer_state: + readOnly: true + type: string + ha_state: + readOnly: true + type: string + hostname: + description: The hostname of the device + readOnly: true + type: string + id: + description: The UUID of the device + readOnly: true + type: string + installed_licenses: + items: + properties: + authcode: + readOnly: true + type: string + expired: + readOnly: true + type: string + expires: + readOnly: true + type: string + feature: + readOnly: true + type: string + issued: + format: date + readOnly: true + type: string + type: object + readOnly: true + type: array + iot_release_date: + readOnly: true + type: string + iot_version: + readOnly: true + type: string + ipV6_address: + description: The IPv6 address of the device + readOnly: true + type: string + ip_address: + description: The IPv4 address of the device + readOnly: true + type: string + is_connected: + readOnly: true + type: boolean + labels: + description: Labels assigned to the device + items: + type: string + type: array + license_match: + readOnly: true + type: boolean + log_db_version: + readOnly: true + type: string + mac_address: + description: The MAC address of the device + readOnly: true + type: string + model: + description: The model of the device + readOnly: true + type: string + name: + description: The name of the device + type: string + snippets: + description: Snippets associated with the device + items: + type: string + type: array + software_version: + readOnly: true + type: string + threat_release_date: + readOnly: true + type: string + threat_version: + readOnly: true + type: string + uptime: + readOnly: true + type: string + url_db_type: + readOnly: true + type: string + url_db_ver: + readOnly: true + type: string + vm_state: + readOnly: true + type: string + wf_release_date: + readOnly: true + type: string + wf_ver: + readOnly: true + type: string + required: + - name + - id + - folder + type: object + dynamic_entry: + additionalProperties: true + readOnly: true + type: object + error_detail_cause_info: + properties: + code: + type: string + details: + type: object + help: + type: string + message: + type: string + title: Cause Info + type: object + error_detail_cause_infos: + items: + $ref: '#/components/schemas/error_detail_cause_info' + type: array + folders: + properties: + description: + description: The description of the folder + type: string + id: + description: The UUID of the folder + readOnly: true + type: string + labels: + description: Labels assigned to the folder + items: + type: string + type: array + name: + description: The name of the folder + type: string + parent: + description: The parent folder + type: string + snippets: + description: Snippets associated with the folder + items: + type: string + type: array + required: + - name + - id + - parent + type: object + generic_error: + properties: + _errors: + $ref: '#/components/schemas/error_detail_cause_infos' + _request_id: + type: string + type: object + labels: + properties: + description: + description: The description of the label + type: string + id: + description: The UUID of the label + readOnly: true + type: string + name: + description: The name of the label + type: string + required: + - name + - id + type: object + property_item: + properties: + id: + type: integer + name: + type: string + value: + type: string + type: object + save_snippet_snapshot_config_response: + properties: + result: + properties: + version: + type: string + readOnly: true + type: object + status: + readOnly: true + type: string + readOnly: true + type: object + save_snippet_snapshot_payload: + properties: + description: + type: string + id: + type: string + required: + - id + - description + type: object + snippet_audit_history: + properties: + action: + readOnly: true + type: string + created: + format: date-time + readOnly: true + type: string + deleted: + readOnly: true + type: integer + details: + readOnly: true + type: string + display: + readOnly: true + type: integer + donor_created: + readOnly: true + type: integer + donor_tenant_name: + readOnly: true + type: string + donor_tsg: + readOnly: true + type: string + id: + format: uint + readOnly: true + type: integer + recipient_tenant_name: + readOnly: true + type: string + recipient_tsg: + readOnly: true + type: string + snippet_uuid: + readOnly: true + type: string + user: + readOnly: true + type: string + version: + readOnly: true + type: string + type: object + snippet_share_info: + properties: + created: + format: date-time + readOnly: true + type: string + donor_created: + readOnly: true + type: integer + donor_snippet_file_id: + readOnly: true + type: integer + donor_snippet_version: + readOnly: true + type: integer + donor_tenant_id: + readOnly: true + type: string + donor_tenant_name: + readOnly: true + type: string + donor_tsg: + readOnly: true + type: string + error: + readOnly: true + type: string + id: + format: uint + readOnly: true + type: integer + last_updated: + format: date-time + readOnly: true + type: string + msg_uuid: + readOnly: true + type: string + properties: + items: + $ref: '#/components/schemas/snippet_share_property' + type: array + recipient_paused_update: + readOnly: true + type: boolean + recipient_snippet_file_id: + readOnly: true + type: integer + recipient_snippet_version: + readOnly: true + type: integer + recipient_tenant_id: + readOnly: true + type: string + recipient_tenant_name: + readOnly: true + type: string + recipient_tsg: + readOnly: true + type: string + recipient_validate_before_update: + readOnly: true + type: boolean + snippet_name: + readOnly: true + type: string + snippet_uuid: + readOnly: true + type: string + status: + readOnly: true + type: string + type: object + snippet_share_property: + properties: + created: + format: date-time + readOnly: true + type: string + created_by: + readOnly: true + type: string + donor_tenant: + readOnly: true + type: string + donor_tsg: + readOnly: true + type: string + error: + readOnly: true + type: string + id: + readOnly: true + type: integer + msg_uuid: + readOnly: true + type: string + property_name: + readOnly: true + type: string + property_value: + readOnly: true + type: string + recipient_tenant: + readOnly: true + type: string + recipient_tsg: + readOnly: true + type: string + snippet_name: + readOnly: true + type: string + snippet_uuid: + readOnly: true + type: string + status: + readOnly: true + type: string + updated: + format: date-time + readOnly: true + type: string + updated_by: + readOnly: true + type: string + type: object + snippet_snapshot_compare_entry: + properties: + admin: + format: email + readOnly: true + type: string + id: + readOnly: true + type: string + loc: + type: string + loctype: + type: string + objectname: + type: string + objecttype: + type: string + operations: + enum: + - edit + - create + type: string + timestamp: + format: date-time + type: string + readOnly: true + type: object + snippet_snapshot_compare_response: + items: + $ref: '#/components/schemas/snippet_snapshot_compare_entry' + readOnly: true + type: array + snippet_snapshot_load_snippet_payload: + properties: + id: + type: string + version: + type: string + required: + - id + - version + type: object + snippet_snapshot_load_snippet_response: + properties: + status: + type: string + readOnly: true + type: object + snippet_snapshot_publish_request: + properties: + id: + type: string + name: + type: string + tsgs: + items: + type: string + type: array + validation: + type: boolean + version: + type: integer + type: object + snippet_snapshot_publish_response: + properties: + file_id: + nullable: true + readOnly: true + type: integer + id: + readOnly: true + type: string + job_id: + readOnly: true + type: integer + tsgs: + items: + type: string + readOnly: true + type: array + version: + nullable: true + readOnly: true + type: integer + readOnly: true + type: object + snippet_snapshot_subscriber_compare_payload: + properties: + id: + type: string + tenant_id: + description: Publisher Tenant ID + type: string + required: + - id + - tenant_id + type: object + snippet_snapshot_subscriber_compare_response: + properties: + publisher: + properties: + entry: + items: + $ref: '#/components/schemas/dynamic_entry' + type: array + readOnly: true + type: object + subscriber: + properties: + entry: + items: + $ref: '#/components/schemas/dynamic_entry' + type: array + readOnly: true + type: object + type: object + snippets: + properties: + description: + description: The description of the snippet + type: string + id: + description: The UUID of the snippet + readOnly: true + type: string + labels: + description: Labels applied to the snippet + items: + type: string + type: array + name: + description: The name of the snippet + type: string + type: + description: The snippet type + enum: + - predefined + - custom + readOnly: true + type: string + required: + - name + - id + type: object + subscriber_property_payload: + properties: + property: + items: + $ref: '#/components/schemas/property_item' + type: array + snippet_id: + type: string + snippet_name: + type: string + tsg_id: + type: string + required: + - tsg_id + - snippet_id + - snippet_name + type: object + tenant_trust_info: + properties: + created: + format: date-time + readOnly: true + type: string + created_by: + readOnly: true + type: string + current_status: + readOnly: true + type: string + donor_cluster: + readOnly: true + type: string + donor_msg_uuid: + readOnly: true + type: string + donor_project: + readOnly: true + type: string + donor_region: + readOnly: true + type: string + donor_tenant_id: + type: string + donor_tenant_name: + type: string + donor_trust_info_id: + readOnly: true + type: integer + donor_tsg: + readOnly: true + type: string + error_details: + readOnly: true + type: string + last_updated: + format: date-time + readOnly: true + type: string + psk: + type: string + recipient_cluster: + readOnly: true + type: string + recipient_msg_uuid: + readOnly: true + type: string + recipient_project: + readOnly: true + type: string + recipient_region: + readOnly: true + type: string + recipient_tenant_id: + readOnly: true + type: string + recipient_tenant_name: + type: string + recipient_trust_info_id: + readOnly: true + type: integer + recipient_tsg: + readOnly: true + type: string + trust_id: + type: integer + updated_by: + readOnly: true + type: string + type: object + trust_info_with_shared_snippets: + properties: + created: + format: date-time + readOnly: true + type: string + donor_created: + readOnly: true + type: integer + donor_snippet_file_id: + readOnly: true + type: integer + donor_snippet_version: + readOnly: true + type: integer + donor_tsg: + readOnly: true + type: string + error: + readOnly: true + type: string + id: + readOnly: true + type: integer + last_updated: + format: date-time + readOnly: true + type: string + msg_uuid: + readOnly: true + type: string + recipient_paused_update: + readOnly: true + type: integer + recipient_snippet_file_id: + readOnly: true + type: integer + recipient_snippet_version: + readOnly: true + type: integer + recipient_tsg: + readOnly: true + type: string + recipient_validate_before_update: + readOnly: true + type: integer + shared_snippets: + items: + $ref: '#/components/schemas/snippet_share_info' + type: array + snippet_name: + readOnly: true + type: string + snippet_uuid: + readOnly: true + type: string + status: + readOnly: true + type: string + updated_by: + readOnly: true + type: string + type: object + trust_validation_info: + properties: + created: + format: date-time + readOnly: true + type: string + created_by: + readOnly: true + type: string + current_status: + readOnly: true + type: string + donor_cluster: + readOnly: true + type: string + donor_msg_uuid: + readOnly: true + type: string + donor_project: + readOnly: true + type: string + donor_region: + readOnly: true + type: string + donor_tenant_id: + type: string + donor_tenant_name: + type: string + donor_tsg: + readOnly: true + type: string + last_updated: + format: date-time + readOnly: true + type: string + psk: + type: string + recipient_cluster: + readOnly: true + type: string + recipient_msg_uuid: + readOnly: true + type: string + recipient_region: + readOnly: true + type: string + recipient_tenant_id: + readOnly: true + type: string + recipient_tenant_name: + type: string + recipient_tsg: + readOnly: true + type: string + trust_id: + type: integer + updated_by: + readOnly: true + type: string + type: object + trusted_tenant_overview: + properties: + publisher: + properties: + pending: + readOnly: true + type: integer + total: + readOnly: true + type: integer + type: object + subscriber: + properties: + pending: + readOnly: true + type: integer + total: + readOnly: true + type: integer + type: object + type: object + trusts: + properties: + donor_tenant_name: + type: string + psk: + type: string + recipient_tenant_name: + type: string + trust_id: + nullable: true + type: integer + tsg: + type: string + type: object + trusts_validation_payload: + properties: + donor_tenant_name: + type: string + psk: + type: string + recipient_tenant_name: + type: string + trust_id: + nullable: true + type: integer + tsg: + type: string + required: + - tsg + - donor_tenant_name + - recipient_tenant_name + - trust_id + - psk + type: object + variables: + oneOf: + - properties: + folder: + description: The folder in which the resource is defined + example: My Folder + maxLength: 64 + pattern: ^[a-zA-Z\d-_\. ]+$ + type: string + required: + - folder + title: folder + type: object + - properties: + snippet: + description: The snippet in which the resource is defined + example: My Snippet + maxLength: 64 + pattern: ^[a-zA-Z\d-_\. ]+$ + type: string + required: + - snippet + title: snippet + type: object + - properties: + device: + description: The device in which the resource is defined + example: My Device + maxLength: 64 + pattern: ^[a-zA-Z\d-_\. ]+$ + type: string + required: + - device + title: device + type: object + properties: + description: + description: The description of the variable + type: string + id: + description: UUID of the variable + example: 123e4567-e89b-12d3-a456-426655440000 + readOnly: true + type: string + name: + description: The name of the variable + maxLength: 63 + type: string + overridden: + description: Is the variable overridden? + readOnly: true + type: boolean + type: + description: The variable type + enum: + - percent + - count + - ip-netmask + - zone + - ip-range + - ip-wildcard + - device-priority + - device-id + - egress-max + - as-number + - fqdn + - port + - link-tag + - group-id + - rate + - router-id + - qos-profile + - timer + type: string + value: + additionalProperties: + oneOf: + - type: string + - type: integer + default: None + description: The value of the variable + type: string + required: + - name + - id + - type + - value + type: object + securitySchemes: + Bearer: + scheme: bearer + type: http +info: + contact: + email: support@paloaltonetworks.com + description: "Managing configurations across multiple tenants can be a challenging\ + \ and error-prone task. \nThe Snippet Sharing API simplifies this process by enabling\ + \ administrators to efficiently share and synchronize configuration snippets between\ + \ different tenants. \nThis API ensures consistency, reduces manual errors, and\ + \ provides a secure and reliable way to manage configurations.\n\nThese APIs use\ + \ the common Strata Cloud Manager authentication mechanism and base URL. See the\n\ + [Strata Cloud Manager Authentication Service](https://pan.dev/scm/api/auth/auth-api/)\ + \ guide for more information.\n\nThis Open API spec file was created on May 28,\ + \ 2025. To check for a more recent version of this file, see\n[Snippet Sharing\ + \ APIs on pan.dev](https://pan.dev/scm/api/config/snippet-sharing/).\n\n\xA9 2025\ + \ Palo Alto Networks, Inc. Palo Alto Networks is a registered trademark of Palo\n\ + Alto Networks. A list of our trademarks can be found at\n\n[https://www.paloaltonetworks.com/company/trademarks.html](https://www.paloaltonetworks.com/company/trademarks.html)\n\ + \nAll other marks mentioned herein may be trademarks of their respective companies.\n" + license: + name: MIT + url: https://opensource.org/license/mit + termsOfService: https://www.paloaltonetworks.com/content/dam/pan/en_US/assets/pdf/legal/palo-alto-networks-end-user-license-agreement-eula.pdf + title: PaloAlto Networks Snippet Sharing APIs + version: '1.0' +openapi: 3.0.0 +paths: + /devices: + get: + description: 'Retrieve a list of devices. + + ' + operationId: get-devices + parameters: + - $ref: '#/components/parameters/limit-optional' + - $ref: '#/components/parameters/offset-optional' + - $ref: '#/components/parameters/name-optional' + responses: + '200': + content: + application/json: + schema: + properties: + data: + allOf: + - items: + $ref: '#/components/schemas/devices' + type: array + limit: + default: 200 + type: number + offset: + default: 0 + type: number + total: + type: number + type: object + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: List devices + tags: + - Devices + /devices/{id}: + get: + description: 'Retrieve an existing device. + + ' + operationId: get-devices-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/devices' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get a device + tags: + - Devices + put: + description: 'Update an existing device. + + ' + operationId: put-devices-id + parameters: + - $ref: '#/components/parameters/uuid' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/devices' + description: The `device` resource definition. + responses: + '200': + $ref: '#/components/responses/http_ok' + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update a device + tags: + - Devices + /folders: + get: + description: 'Retrieve a list of folders. + + ' + operationId: get-folders + parameters: + - $ref: '#/components/parameters/limit-optional' + - $ref: '#/components/parameters/offset-optional' + - $ref: '#/components/parameters/name-optional' + responses: + '200': + content: + application/json: + schema: + properties: + data: + allOf: + - items: + $ref: '#/components/schemas/folders' + type: array + limit: + default: 200 + type: number + offset: + default: 0 + type: number + total: + type: number + type: object + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: List folders + tags: + - Folders + post: + description: 'Create a new folder. + + ' + operationId: post-folders + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/folders' + description: The `folder` resource definition + responses: + '201': + $ref: '#/components/responses/http_created' + '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' + security: + - Bearer: [] + summary: Create a folder + tags: + - Folders + /folders/{id}: + delete: + description: 'Delete an existing folder. + + ' + operationId: delete-folders-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/folders' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete a folder + tags: + - Folders + get: + description: 'Retrieve an existing folder. + + ' + operationId: get-folders-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/folders' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get a folder + tags: + - Folders + put: + description: 'Update an existing folder. + + ' + operationId: put-folders-id + parameters: + - $ref: '#/components/parameters/uuid' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/folders' + description: The `folder` resource definition. + responses: + '200': + $ref: '#/components/responses/http_ok' + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update a folder + tags: + - Folders + /labels: + get: + description: 'Retrieve a list of labels. + + ' + operationId: get-labels + parameters: + - $ref: '#/components/parameters/limit-optional' + - $ref: '#/components/parameters/offset-optional' + - $ref: '#/components/parameters/name-optional' + responses: + '200': + content: + application/json: + schema: + properties: + data: + allOf: + - items: + $ref: '#/components/schemas/labels' + type: array + limit: + default: 200 + type: number + offset: + default: 0 + type: number + total: + type: number + type: object + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Label list + tags: + - Labels + post: + description: 'Create a label. + + ' + operationId: post-labels + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/labels' + description: The `label` resource definition. + responses: + '201': + $ref: '#/components/responses/http_created' + '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' + security: + - Bearer: [] + summary: New label + tags: + - Labels + /labels/{id}: + delete: + description: 'Delete an existing label. + + ' + operationId: delete-labels-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/labels' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete label + tags: + - Labels + get: + description: 'Retrieve an existing label. + + ' + operationId: get-labels-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/labels' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get label + tags: + - Labels + put: + description: 'Update an existing label. + + ' + operationId: put-labels-id + parameters: + - $ref: '#/components/parameters/uuid' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/labels' + description: The `label` resource definition. + responses: + '200': + $ref: '#/components/responses/http_ok' + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update label + tags: + - Labels + /snippet-audit-logs/{id}: + get: + description: 'Retrieve an existing snippet audit logs by UUID. + + ' + operationId: get-snippet-audit-logs-id + parameters: + - $ref: '#/components/parameters/uuid' + - $ref: '#/components/parameters/trusted-tenant-type' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/snippet_audit_history' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get a snippet audit logs + tags: + - Snippet Audit Logs + /snippet-snapshots: + post: + description: "Save Snippet Snapshots. \n" + operationId: post-snippet-snapshots + 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' + security: + - Bearer: [] + summary: Save Snippet Snapshots + tags: + - Snippet Snapshots + /snippet-snapshots:compare: + post: + description: 'Compare Snippet Snapshots. + + ' + operationId: post-snippet-snapshots:compare + 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' + security: + - Bearer: [] + summary: Compare Snippet Snapshots + tags: + - Snippet Snapshots + /snippet-snapshots:load: + post: + description: 'Load Snippet Snapshots. Discards current candidate and loads specific + version of the snippet snapshot as a candidate. + + ' + operationId: post-snippet-snapshots:load + 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' + security: + - Bearer: [] + summary: Load Snippet Snapshots + tags: + - Snippet Snapshots + /snippet-snapshots:publish: + post: + description: 'Publish Snippet Snapshots. + + ' + operationId: post-snippet-snapshots:publish + 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' + security: + - Bearer: [] + summary: Publish Snippet Snapshots + tags: + - Snippet Snapshots + /snippet-snapshots:updates: + post: + description: 'Update Snippet Snapshots. + + ' + operationId: post-snippet-snapshots:updates + 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' + security: + - Bearer: [] + summary: Update Snippet Snapshots + tags: + - Snippet Snapshots + /snippets: + get: + description: 'Retrieve a list of snippets. + + ' + operationId: get-snippets + parameters: + - $ref: '#/components/parameters/limit-optional' + - $ref: '#/components/parameters/offset-optional' + - $ref: '#/components/parameters/name-optional' + responses: + '200': + content: + application/json: + schema: + properties: + data: + allOf: + - items: + $ref: '#/components/schemas/snippets' + type: array + limit: + default: 200 + type: number + offset: + default: 0 + type: number + total: + type: number + type: object + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Snippet list + tags: + - Snippets + post: + description: 'Create a snippet. + + ' + operationId: post-snippets + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/snippets' + description: The `snippet` resource definition. + responses: + '201': + $ref: '#/components/responses/http_created' + '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' + security: + - Bearer: [] + summary: New snippet + tags: + - Snippets + /snippets/{id}: + delete: + description: 'Delete an existing snippet. + + ' + operationId: delete-snippets-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/snippets' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete a snippet + tags: + - Snippets + get: + description: 'Retrieve an existing snippet. + + ' + operationId: get-snippets-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/snippets' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get a snippet + tags: + - Snippets + put: + description: 'Update a snippet. + + ' + operationId: put-snippets-id + parameters: + - $ref: '#/components/parameters/uuid' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/snippets' + description: The `snippet` resource definition. + responses: + '200': + $ref: '#/components/responses/http_ok' + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update snippet + tags: + - Snippets + /subscribed-tenants: + delete: + description: 'Delete an existing subscribed tenant. + + ' + operationId: delete-subscribed-tenants + parameters: + - $ref: '#/components/parameters/snippet-id' + - $ref: '#/components/parameters/recipient-tsgs' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/deleted_subscriber' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete a subscribed tenant + tags: + - Subscribed Tenants + post: + description: 'Create Subscribed Tenant. + + ' + operationId: post-subscribed-tenants + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/add_subscriber_request_payload' + description: The `Subscribed Tenant` resource definition + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/tenant_trust_info' + 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' + security: + - Bearer: [] + summary: Create Subscribed Tenant + tags: + - Subscribed Tenants + put: + description: 'Update an existing subscribed tenant. + + ' + operationId: put-subscribed-tenants + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/subscriber_property_payload' + description: The `subscribed tenant` resource definition. + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/subscriber_property_payload' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update a subscribed tenant + tags: + - Subscribed Tenants + /subscribed-tenants/{id}: + get: + description: 'Retrieve a list of subscribed tenants. + + ' + operationId: get-subscribed-tenants-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + items: + $ref: '#/components/schemas/snippet_share_info' + type: array + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get Subscribed Tenants + tags: + - Subscribed Tenants + /trust-validations: + post: + description: "Validate trust. \n" + operationId: post-trust-validations + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/trusts_validation_payload' + description: The `trust validation` resource definition + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/trust_validation_info' + 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' + security: + - Bearer: [] + summary: Validates Trust + tags: + - Trust Validations + /trusted-tenant-overview: + get: + description: "Overview of publishers and subscribers. \n" + operationId: get-trusted-tenant-overview + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/trusted_tenant_overview' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Trusted Tenants Overview + tags: + - Trusted Tenants Overview + /trusted-tenants: + get: + description: 'Retrieve a list of trusted tenants with snippets. + + ' + operationId: get-trusted-tenants + parameters: + - $ref: '#/components/parameters/trusted-tenant-type' + responses: + '200': + content: + application/json: + schema: + items: + $ref: '#/components/schemas/trust_info_with_shared_snippets' + type: array + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Trusted Tenants With Snippets + tags: + - Trust Information + /trusts: + delete: + description: 'Delete an existing Trust. + + ' + operationId: delete-trusts + parameters: + - $ref: '#/components/parameters/trust-ids' + - $ref: '#/components/parameters/trusted-tenant-type' + responses: + '200': + content: + application/json: + schema: + items: + $ref: '#/components/schemas/tenant_trust_info' + type: array + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete a Trust + tags: + - Trusts + post: + description: 'Create a new trust. + + ' + operationId: post-trusts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/trusts' + description: The `trusts` resource definition + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/tenant_trust_info' + description: CREATED + '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' + security: + - Bearer: [] + summary: Create a trust + tags: + - Trusts + /variables: + get: + description: 'Retrieve a list of variables. + + ' + operationId: get-variables + parameters: + - $ref: '#/components/parameters/limit-optional' + - $ref: '#/components/parameters/offset-optional' + - $ref: '#/components/parameters/name-optional' + - $ref: '#/components/parameters/folder' + - $ref: '#/components/parameters/snippet' + - $ref: '#/components/parameters/device' + responses: + '200': + content: + application/json: + schema: + properties: + data: + allOf: + - items: + $ref: '#/components/schemas/variables' + type: array + limit: + default: 200 + type: number + offset: + default: 0 + type: number + total: + type: number + type: object + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: List variables + tags: + - Variables + post: + description: "Create a variable. \n" + operationId: post-variables + parameters: + - $ref: '#/components/parameters/folder' + - $ref: '#/components/parameters/snippet' + - $ref: '#/components/parameters/device' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/variables' + description: The `variable` resource definition. + responses: + '201': + $ref: '#/components/responses/http_created' + '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' + security: + - Bearer: [] + summary: Create variables + tags: + - Variables + /variables/{id}: + delete: + description: 'Delete a variable. + + ' + operationId: delete-variables-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/variables' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Delete variable + tags: + - Variables + get: + description: 'Retrieve an existing variable. + + ' + operationId: get-variables-id + parameters: + - $ref: '#/components/parameters/uuid' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/variables' + description: OK + '400': + $ref: '#/components/responses/bad_request_errors_basic' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Get a variables + tags: + - Variables + put: + description: 'Update a variable. + + ' + operationId: put-variables-id + parameters: + - $ref: '#/components/parameters/uuid' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/variables' + description: The `variable` resource definition. + responses: + '200': + $ref: '#/components/responses/http_ok' + '400': + $ref: '#/components/responses/bad_request_errors_basic_with_body' + '401': + $ref: '#/components/responses/auth_errors' + '403': + $ref: '#/components/responses/access_errors' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/conflict_errors' + default: + $ref: '#/components/responses/default_errors' + security: + - Bearer: [] + summary: Update variable + tags: + - Variables +servers: +- url: https://api.strata.paloaltonetworks.com/config/setup/v1 +tags: +- description: 'Configuration Labels + + ' + name: Labels API +- description: 'Variables + + ' + name: Variables API +- description: 'Configuration Snippets + + ' + name: Snippets API +- description: 'Configuration folders + + ' + name: Folders API +- description: 'NGFW Devices + + ' + name: Devices API +- description: 'Trusted Tenants Overview + + ' + name: Trusted Tenants Overview API +- description: 'Trust Information + + ' + name: Trust Information API +- description: 'Trusts + + ' + name: Trusts API +- description: 'Trust Validations + + ' + name: Trust Validations API +- description: 'Subscribed Tenants + + ' + name: Subscribed Tenants API +- description: 'Snippet Snapshots + + ' + name: Snippet Snapshots API +- description: 'Snippet Audit Logs + + ' + name: Snippet Audit Logs API diff --git a/products/scm/api/config/snippet-sharing/snippet-sharing.md b/products/scm/api/config/cloudngfw/setup/snippet-sharing.md similarity index 100% rename from products/scm/api/config/snippet-sharing/snippet-sharing.md rename to products/scm/api/config/cloudngfw/setup/snippet-sharing.md diff --git a/products/scm/api/config/ngfw/setup/snippet-sharing.md b/products/scm/api/config/ngfw/setup/snippet-sharing.md new file mode 100644 index 000000000..7fa8bfe13 --- /dev/null +++ b/products/scm/api/config/ngfw/setup/snippet-sharing.md @@ -0,0 +1,34 @@ +--- +id: snippet-sharing +title: Snippet Sharing APIs +sidebar_label: Snippet Sharing +keywords: + - Strata Cloud Manager + - Configuration + - Security Profiles + - Reference + - API +--- + +Welcome to the configuration Snippet Sharing APIs For Strata Cloud Manager and Prisma Access. +These APIs use the [common authentication mechanism](/scm/docs/getstarted) for service access and authorization. +You must use the [Configuration Operations API](/scm/api/config/cloudngfw/operations/operations-api-cloud-ngfw) to push +configurations made using these APIs to your deployments. + +In today's interconnected and dynamic environments, managing and synchronizing configurations across multiple tenants can be a complex and error-prone task. The Snippet Sharing API is designed to simplify this process, enabling administrators to efficiently share and synchronize configuration snippets between different tenants. This API provides a robust and secure mechanism for configuration sharing, ensuring consistency and reducing manual overhead. + +## Key features ## + +**Configuration Sharing:** Administrators can select specific configuration snippets from a tenant and share them across multiple other tenants. This feature allows for targeted updates, ensuring that only the intended tenants receive the shared configuration. + +**Synchronization:** The API supports keeping specific configurations in sync across tenants. Administrators can perform explicit actions to share and sync configurations, ensuring that updates are consistently propagated to recipient tenants. + +**Versioning:** The Snippet Sharing API includes a versioning mechanism, allowing administrators to track and audit the sync state of configuration snippets. Only the latest version of a snippet can be shared, ensuring that recipients always receive the most up-to-date configuration. + +**Visibility and Auditing:** Administrators can view detailed information about shared snippets, including the tenants they are associated with, the version of the snippet, and the last sync timestamp. Audit logs are generated for all sharing and sync operations, providing transparency and traceability. + +**Trust and Verification:** The API supports establishing trust relationships between donor and recipient tenants. Recipient tenants must accept donor tenants as trusted sources before configuration sharing can occur. Trust relationships can be terminated at any time, converting shared snippets to local snippets if referenced in the recipient tenant. + +**Configuration Operations:** The API facilitates various configuration operations, including pushing, reverting, and loading configurations. Administrators can manage configurations effectively, ensuring that shared snippets are included or excluded as needed during these operations. + +The Snippet Sharing API is designed to streamline configuration management, enhance operational efficiency, and provide a secure and reliable way to share and synchronize configurations across multiple tenants. By leveraging this API, administrators can reduce manual errors, ensure consistency, and maintain control over their configuration environments. \ No newline at end of file diff --git a/products/scm/api/config/sase/setup/snippet-sharing.md b/products/scm/api/config/sase/setup/snippet-sharing.md new file mode 100644 index 000000000..7fa8bfe13 --- /dev/null +++ b/products/scm/api/config/sase/setup/snippet-sharing.md @@ -0,0 +1,34 @@ +--- +id: snippet-sharing +title: Snippet Sharing APIs +sidebar_label: Snippet Sharing +keywords: + - Strata Cloud Manager + - Configuration + - Security Profiles + - Reference + - API +--- + +Welcome to the configuration Snippet Sharing APIs For Strata Cloud Manager and Prisma Access. +These APIs use the [common authentication mechanism](/scm/docs/getstarted) for service access and authorization. +You must use the [Configuration Operations API](/scm/api/config/cloudngfw/operations/operations-api-cloud-ngfw) to push +configurations made using these APIs to your deployments. + +In today's interconnected and dynamic environments, managing and synchronizing configurations across multiple tenants can be a complex and error-prone task. The Snippet Sharing API is designed to simplify this process, enabling administrators to efficiently share and synchronize configuration snippets between different tenants. This API provides a robust and secure mechanism for configuration sharing, ensuring consistency and reducing manual overhead. + +## Key features ## + +**Configuration Sharing:** Administrators can select specific configuration snippets from a tenant and share them across multiple other tenants. This feature allows for targeted updates, ensuring that only the intended tenants receive the shared configuration. + +**Synchronization:** The API supports keeping specific configurations in sync across tenants. Administrators can perform explicit actions to share and sync configurations, ensuring that updates are consistently propagated to recipient tenants. + +**Versioning:** The Snippet Sharing API includes a versioning mechanism, allowing administrators to track and audit the sync state of configuration snippets. Only the latest version of a snippet can be shared, ensuring that recipients always receive the most up-to-date configuration. + +**Visibility and Auditing:** Administrators can view detailed information about shared snippets, including the tenants they are associated with, the version of the snippet, and the last sync timestamp. Audit logs are generated for all sharing and sync operations, providing transparency and traceability. + +**Trust and Verification:** The API supports establishing trust relationships between donor and recipient tenants. Recipient tenants must accept donor tenants as trusted sources before configuration sharing can occur. Trust relationships can be terminated at any time, converting shared snippets to local snippets if referenced in the recipient tenant. + +**Configuration Operations:** The API facilitates various configuration operations, including pushing, reverting, and loading configurations. Administrators can manage configurations effectively, ensuring that shared snippets are included or excluded as needed during these operations. + +The Snippet Sharing API is designed to streamline configuration management, enhance operational efficiency, and provide a secure and reliable way to share and synchronize configurations across multiple tenants. By leveraging this API, administrators can reduce manual errors, ensure consistency, and maintain control over their configuration environments. \ No newline at end of file diff --git a/products/scm/docs/release-notes/changelog.md b/products/scm/docs/release-notes/changelog.md index 65556d316..06d7f9b41 100644 --- a/products/scm/docs/release-notes/changelog.md +++ b/products/scm/docs/release-notes/changelog.md @@ -12,7 +12,7 @@ keywords: | Date | Description | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| May 6, 2025 | Added [Snippet Sharing APIs](/scm/api/snippet-sharing/). +| May 6, 2025 | Added [Snippet Sharing APIs](/scm/api/config/sase/setup/snippet-sharing/). | Feb 6, 2025 | Added [Prisma Access Configuration Orchestration APIs](/sase/api/introduction/). | | Jan 9th, 2025 | Added [SaaS Security Posture Management APIs](/sase/api/sspm/). | Nov 15, 2024 | Added Strata Cloud Manager configuration APIs, along with a [Strata Cloud Manager landing page](/strata-cloud-manager/). See the [release notes](/scm/docs/release-notes/november2024) for more information. | diff --git a/products/scm/sidebars.ts b/products/scm/sidebars.ts index 9fe3ab0f8..57f98e2b7 100644 --- a/products/scm/sidebars.ts +++ b/products/scm/sidebars.ts @@ -115,6 +115,10 @@ module.exports = { type: "doc", id: "scm/api/config/sase/setup/setup-api", }, + { + type: "doc", + id: "scm/api/config/sase/setup/snippet-sharing", + }, require("./api/config/sase/setup/sidebar"), ], }, @@ -199,6 +203,10 @@ module.exports = { type: "doc", id: "scm/api/config/ngfw/setup/setup-api-ngfw", }, + { + type: "doc", + id: "scm/api/config/ngfw/setup/snippet-sharing", + }, require("./api/config/ngfw/setup/sidebar"), ], }, @@ -283,6 +291,10 @@ module.exports = { type: "doc", id: "scm/api/config/cloudngfw/setup/setup-api-cloud-ngfw", }, + { + type: "doc", + id: "scm/api/config/cloudngfw/setup/snippet-sharing", + }, require("./api/config/cloudngfw/setup/sidebar"), ], }, @@ -328,9 +340,5 @@ module.exports = { "scm/api/subscription/subscription-api", require("./api/subscription/sidebar"), ], - scmsnippetsharing: [ - "scm/api/config/snippet-sharing/snippet-sharing", - require("./api/config/snippet-sharing/sidebar"), - ], scmtenancy: ["scm/api/tenancy/tenancy-api", require("./api/tenancy/sidebar")], }; From 5761372f1475a7096796031b84d7815c8f4e4114 Mon Sep 17 00:00:00 2001 From: sra Date: Wed, 28 May 2025 12:02:20 +0530 Subject: [PATCH 4/5] Resolved merge conflict in changelog --- products/scm/docs/release-notes/changelog.md | 43 ++++++++++---------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/products/scm/docs/release-notes/changelog.md b/products/scm/docs/release-notes/changelog.md index 06d7f9b41..89eeaaf12 100644 --- a/products/scm/docs/release-notes/changelog.md +++ b/products/scm/docs/release-notes/changelog.md @@ -12,31 +12,32 @@ keywords: | Date | Description | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| May 6, 2025 | Added [Snippet Sharing APIs](/scm/api/config/sase/setup/snippet-sharing/). -| Feb 6, 2025 | Added [Prisma Access Configuration Orchestration APIs](/sase/api/introduction/). | +| May 28, 2025 | Added Snippet Sharing API under Configuration setup [Configuration Setup](/scm/api/config/sase/setup/snippet-sharing/). +| May 20, 2025 | Introduced two policies Security and Internet for Security Rules under [Security Services APIs](/scm/api/config/sase/security/security-api/). +| Feb 6, 2025 | Added [Prisma Access Configuration Orchestration APIs](/sase/api/introduction/). | | Jan 9th, 2025 | Added [SaaS Security Posture Management APIs](/sase/api/sspm/). | Nov 15, 2024 | Added Strata Cloud Manager configuration APIs, along with a [Strata Cloud Manager landing page](/strata-cloud-manager/). See the [release notes](/scm/docs/release-notes/november2024) for more information. | -| Oct 18, 2024 | Added [Prisma Access Browser APIs](/access/api/browser-mgmt/). | +| Oct 18, 2024 | Added [Prisma Access Browser APIs](/access/api/browser-mgmt/). | | Oct 11, 2024 | Added additional [Aggregate Monitoring APIs](/sase/api/mt-monitor/). | | July 22, 2024 | Added [Multitenant Interconnect APIs](/sase/api/mt-interconnect/). | -| April 15, 2024 | Added [Multitenant Notification APIs](/sase/api/mt-notifications/). | -| September 28, 2023 | Added [Autonomous DEM APIs](/access/docs/adem) and [ADEM API Examples](/access/docs/adem/examples/application-performance/mu-experience-score-for-an-app/). | -| May 16, 2023 | Added [Custom Roles](/sase/api/iam/custom-roles/) and [Permission Sets](/sase/api/iam/permission-sets/) to the Identity and Access Management APIs. | -| April 26, 2023 | Added [ZTNA Connector APIs](/sase/docs/release-notes/release-notes/#april-2023) and miscellanous other changes. | -| March 28, 2023 | New endpoints for the [Prisma Access Configuration APIs](/sase/docs/release-notes/release-notes/#march-2023). | -| Dec 5, 2022 | Published new [Subscription Service](/sase/api/subscription/) endpoints that allow you to allocate licenses to your tenant service groups. | -| Nov 22, 2022 | Published new [Prisma Access configuration](/sase/docs/release-notes/release-notes/#november-2022) endpoints. | -| Nov 1, 2022 | Published [Prisma Access Insights examples](/access/docs/insights/examples/). | -| Oct 24, 2022 | New endpoints and query filters for the [aggregate monitoring APIs](/sase/docs/release-notes/release-notes/#late-august-2022). | -| Oct 12, 2022 | The Cortex Data Lake [Log Forwarding APIs](/cdl/docs/log-forwarding/) now use the same common authentication mechanism as is used by most SASE APIs. | -| Oct 12, 2022 | The Cortex Data Lake [Log Forwarding APIs](/cdl/docs/log-forwarding/) now use the same common authentication mechanism as is used by most SASE APIs. | -| August 17, 2022 | New endpoints for the Prisma Access Config APIs. See the [August 2022 release notes](/sase/docs/release-notes/release-notes#august-2022) for details. | -| August 15, 2022 | Updated the [Aggregate Monitoring APIs](/sase/api/mt-monitor). See the [August 2022 release notes](/sase/docs/release-notes/release-notes#august-2022) for details. | +| April 15, 2024 | Added [Multitenant Notification APIs](/sase/api/mt-notifications/). | +| September 28, 2023 | Added [Autonomous DEM APIs](/access/docs/adem) and [ADEM API Examples](/access/docs/adem/examples/application-performance/mu-experience-score-for-an-app/). | +| May 16, 2023 | Added [Custom Roles](/sase/api/iam/custom-roles/) and [Permission Sets](/sase/api/iam/permission-sets/) to the Identity and Access Management APIs. | +| April 26, 2023 | Added [ZTNA Connector APIs](/sase/docs/release-notes/release-notes/#april-2023) and miscellanous other changes. | +| March 28, 2023 | New endpoints for the [Prisma Access Configuration APIs](/sase/docs/release-notes/release-notes/#march-2023). | +| Dec 5, 2022 | Published new [Subscription Service](/sase/api/subscription/) endpoints that allow you to allocate licenses to your tenant service groups. | +| Nov 22, 2022 | Published new [Prisma Access configuration](/sase/docs/release-notes/release-notes/#november-2022) endpoints. | +| Nov 1, 2022 | Published [Prisma Access Insights examples](/access/docs/insights/examples/). | +| Oct 24, 2022 | New endpoints and query filters for the [aggregate monitoring APIs](/sase/docs/release-notes/release-notes/#late-august-2022). | +| Oct 12, 2022 | The Cortex Data Lake [Log Forwarding APIs](/cdl/docs/log-forwarding/) now use the same common authentication mechanism as is used by most SASE APIs. | +| Oct 12, 2022 | The Cortex Data Lake [Log Forwarding APIs](/cdl/docs/log-forwarding/) now use the same common authentication mechanism as is used by most SASE APIs.| +| August 17, 2022 | New endpoints for the Prisma Access Config APIs. See the [August 2022 release notes](/sase/docs/release-notes/release-notes#august-2022) for details.| +| August 15, 2022 | Updated the [Aggregate Monitoring APIs](/sase/api/mt-monitor). See the [August 2022 release notes](/sase/docs/release-notes/release-notes#august-2022) for details. | | July 27, 2022 | Added Prisma SD-WAN, and updates to Prisma Access Configuration and Prisma Access Insights. See the [Release Notes](/sase/docs/release-notes/release-notes#july-2022) for details. | | July 5, 2022 | Clarified the difference between [Device Insights 2.0 and 1.0 APIs](/access/docs/insights).
Added the `support_contact` field to the [Tenancy Service](/sase/api/tenancy) APIs. | -| June 7, 2022 | Published additional information about [IAM user accounts](/sase/docs/user-accounts). | -| May 25, 2022 | Published [User Account APIs](/sase/api/iam/user-accounts) for the IAM service. | +| June 7, 2022 | Published additional information about [IAM user accounts](/sase/docs/user-accounts). | +| May 25, 2022 | Published [User Account APIs](/sase/api/iam/user-accounts) for the IAM service. | | May 16, 2022 | Prisma Access Configuration API monthly release, which includes [breaking changes](/sase/docs/release-notes/release-notes#april-2022) to the APIs. | -| April 26, 2022 | Added Prisma Access Insights v1.0 and v2.0 APIs | -| April 12, 2022 | Corrected base URLs in the API reference. Fixed bugs and typos in the breadcrumbs. Added release notes to the developer documentation. Miscellaneous editorial corrections. | -| April 8, 2022 | First public release of the Prisma SASE API in support of MSSPs. | +| April 26, 2022 | Added Prisma Access Insights v1.0 and v2.0 APIs. | +| April 12, 2022 | Corrected base URLs in the API reference. Fixed bugs and typos in the breadcrumbs. Added release notes to the developer documentation. Miscellaneous editorial corrections. | +| April 8, 2022 | First public release of the Prisma SASE API in support of MSSPs. | \ No newline at end of file From 5a2a0cdffb11a581c7963a11809f93fc73ba76df Mon Sep 17 00:00:00 2001 From: sra Date: Wed, 28 May 2025 12:12:25 +0530 Subject: [PATCH 5/5] Updated the changelog --- products/scm/docs/release-notes/changelog.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/products/scm/docs/release-notes/changelog.md b/products/scm/docs/release-notes/changelog.md index 89eeaaf12..01aeb3544 100644 --- a/products/scm/docs/release-notes/changelog.md +++ b/products/scm/docs/release-notes/changelog.md @@ -12,7 +12,9 @@ keywords: | Date | Description | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| May 28, 2025 | Added Snippet Sharing API under Configuration setup [Configuration Setup](/scm/api/config/sase/setup/snippet-sharing/). +| May 28, 2025 | Added Snippet Sharing API under SASE Configuration setup [Configuration Setup](/scm/api/config/setup/snippet-sharing/). +| May 28, 2025 | Added Snippet Sharing API under NGFW Configuration setup [Configuration Setup](/scm/api/config/ngfw/setup/snippet-sharing/). +| May 28, 2025 | Added Snippet Sharing API under Cloud NGFW Configuration setup [Configuration Setup](/scm/api/config/cloudngfw/setup/snippet-sharing/). | May 20, 2025 | Introduced two policies Security and Internet for Security Rules under [Security Services APIs](/scm/api/config/sase/security/security-api/). | Feb 6, 2025 | Added [Prisma Access Configuration Orchestration APIs](/sase/api/introduction/). | | Jan 9th, 2025 | Added [SaaS Security Posture Management APIs](/sase/api/sspm/).