Palo Alto Networks Plugins (Connectors) API

APIs for Plugins (Connectors).

OpenAPI Specification

palo-alto-networks-plugins-connectors-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: TLS Protect Cloud API for Strata Cloud Manager Plugins (Connectors) API
  description: Use the TLS Protect Cloud APIs to manage certificates, certificate requests, applications, machine identities, users, teams, event logs, and more. This Open API spec file was created on June 04, 2026. © 2026 Palo Alto Networks, Inc. Palo Alto Networks is a registered trademark of Palo Alto Networks. A list of our trademarks can be found at https://www.paloaltonetworks.com/company/trademarks.html. All other marks mentioned herein may be trademarks of their respective companies.
  version: 1.0.0
  license:
    name: MIT
    url: https://opensource.org/license/mit
servers:
- url: https://api.strata.paloaltonetworks.com/ngts
  description: Strata Cloud Manager API
security:
- scmToken: []
tags:
- name: Plugins (Connectors)
  description: APIs for Plugins (Connectors).
paths:
  /v1/plugins:
    get:
      description: Retrieve all the plugins for the tenant.
      operationId: get-v1-plugins
      parameters:
      - description: Filter by provided plugin type.
        in: query
        name: pluginTypes
        schema:
          items:
            $ref: '#/components/schemas/PluginType'
          minItems: 1
          type: array
          uniqueItems: true
      - description: Include disabled plugins if set to true.
        in: query
        name: includeDisabled
        schema:
          default: false
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  plugins:
                    items:
                      $ref: '#/components/schemas/Plugin'
                    type: array
                required:
                - plugins
                type: object
          description: Success. All plugins retrieved.
      summary: Retrieve all plugins
      tags:
      - Plugins (Connectors)
    post:
      description: Create a custom plugin for your tenant's exclusive use. The user must be a SYSTEM_ADMIN or a PKI_ADMIN.
      operationId: post-v1-plugins
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicPluginCreationRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginResponse'
          description: Success. Plugin created.
      summary: Create a local plugin
      tags:
      - Plugins (Connectors)
  /v1/plugins/{id}:
    get:
      description: Retrieve a plugin with the specified ID.
      operationId: get-v1-plugins-id
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Plugin'
          description: Success. Plugin retrieved.
      summary: Retrieve plugin by ID
      tags:
      - Plugins (Connectors)
      parameters:
      - description: Plugin ID
        in: path
        name: id
        required: true
        schema:
          type: string
    patch:
      description: Update a plugin with specified ID. Plugin must be owned by the tenant and the user must be a SYSTEM_ADMIN or a PKI_ADMIN.
      operationId: patch-v1-plugins-id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicPluginUpdateRequest'
      responses:
        '200':
          description: Success. Plugin updated.
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      summary: Update a local plugin
      tags:
      - Plugins (Connectors)
      parameters:
      - description: Plugin ID
        in: path
        name: id
        required: true
        schema:
          type: string
    delete:
      description: Delete a plugin with the specified ID. Plugin must be owned by the tenant and the user must be a SYSTEM_ADMIN or a PKI_ADMIN.
      operationId: delete-v1-plugins-id
      responses:
        '204':
          description: No Content.
      summary: Delete a local plugin
      tags:
      - Plugins (Connectors)
      parameters:
      - description: Plugin ID
        in: path
        name: id
        required: true
        schema:
          type: string
  /v1/plugins/{id}/disablements:
    post:
      description: Set a plugin to be disabled for your tenant.
      operationId: post-v1-plugins-id-exclusions
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginResponse'
          description: Successfully disabled the plugin for the current tenant.
      summary: Disable a plugin
      tags:
      - Plugins (Connectors)
      parameters:
      - description: Plugin ID that is currently marked as disabled.
        in: path
        name: id
        required: true
        schema:
          type: string
    delete:
      description: Remove a plugin exclusion from your tenant.
      operationId: delete-v1-plugins-id-exclusions
      responses:
        '204':
          description: No Content. Successfully deleted the plugin disablement.
      summary: Remove plugin disablement
      tags:
      - Plugins (Connectors)
      parameters:
      - description: Plugin ID that is currently marked as disabled.
        in: path
        name: id
        required: true
        schema:
          type: string
  /v1/plugins/disablements:
    get:
      description: Retrieve all the disabled plugins for the current tenant.
      operationId: get-v1-plugins-exclusions
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PluginResponse'
          description: Successfully retrieved all the disabled plugins for the current tenant.
      summary: Retrieve all disabled plugins
      tags:
      - Plugins (Connectors)
components:
  schemas:
    Deployment:
      properties:
        executionTarget:
          default: vsat
          description: HELP
          type: string
        image:
          description: URL for where the plugin image resides.
          type: string
      required:
      - image
      - executionTarget
      title: Deployment
      type: object
      x-examples:
        Example 1:
          deployment:
            executionTarget: vsat
            image: public.ecr.aws/docker/library/nginx:mainline-alpine3.18-slim
    PluginResponse:
      properties:
        plugins:
          items:
            $ref: '#/components/schemas/Plugin'
          type: array
      required:
      - plugins
      title: PluginResponse
      type: object
    PublicPluginCreationRequest:
      properties:
        maintainer:
          description: Refers to the organization, individual, email, location, or website responsible for maintaining the plugin.
          type:
          - string
          - 'null'
        manifest:
          $ref: '#/components/schemas/Manifest'
        pluginType:
          $ref: '#/components/schemas/PluginType'
      required:
      - manifest
      - pluginType
      title: PublicPluginCreationRequest
      type: object
      x-stoplight:
        id: sto5fs3n5bxmf
    WorkType:
      description: Defines the type of supported workflow for the plugin.
      enum:
      - DISCOVERY
      - CREDENTIAL
      - PROVISIONING
      - ISSUANCE
      - CERTIFICATE_IMPORT
      title: WorkType
      type: string
    PluginType:
      description: Used for differentiation between different types of plugins.
      enum:
      - MACHINE
      - CA
      - TPP
      - CREDENTIAL_MANAGER
      title: PluginType
      type: string
    PublicPluginUpdateRequest:
      properties:
        image:
          type:
          - string
          - 'null'
        maintainer:
          type:
          - string
          - 'null'
        manifest:
          $ref: '#/components/schemas/Manifest'
      title: PublicPluginUpdateRequest
      type: object
      x-stoplight:
        id: 8ypau6to0udah
    Plugin:
      properties:
        creationTime:
          description: Represents the date when the plugin was created.
          format: date-time
          type: string
        disabled:
          description: Indicates whether the tenant has disabled the plugin from its list of plugins.
          type: boolean
        id:
          description: Represents the plugin ID.
          type: string
        lastModifiedOn:
          description: Date the plugin was last modified.
          format: date-time
          type: string
        maintainer:
          description: Refers to the organization, individual, email, location, or website responsible for maintaining the plugin.
          type:
          - string
          - 'null'
        manifest:
          $ref: '#/components/schemas/Manifest'
        name:
          description: Represents the name of the plugin. This must be unique.
          type: string
        pluginType:
          $ref: '#/components/schemas/PluginType'
        revision:
          description: Represents the number of times the plugins has been updated.
          type: integer
        workTypes:
          description: Represents the type of workflow the plugin supports.
          items:
            $ref: '#/components/schemas/WorkType'
          minItems: 1
          type: array
      required:
      - id
      - name
      - revision
      - pluginType
      - workTypes
      - manifest
      - lastModifiedOn
      - creationTime
      title: Plugin
      type: object
    LocalizationResource:
      description: Translation map for the UI being rendered. This map is used with the manifest schema. The keys represent the values provided for the "x-localizationKey" property in the domain entity definition, and each key's value is used to represent field labels, enum values, or error messages.
      properties:
        en:
          type: object
      title: LocalizationResources
      type:
      - object
      - 'null'
      x-examples:
        Example 1:
          en:
            address:
              label: Server Hostname
            binding:
              label: Server Store Details
            certificateName:
              description: How the certificate should appear on the server.
              label: Certificate Name
            chainName:
              label: Chain Bundle Name
            discovery:
              expiredCertificatesLabel: Exclude expired certificates
              inactiveProfilesLabel: Exclude certificates that are not in use by either a virtual server or a monitor.
              partitionDescription: A comma separated list of partition names.
              partitionLabel: Partition(s)
            discoveryType:
              all: Both Monitors and Virtual Servers
              label: Resource Types to Discover
              monitor: Monitors
              virtualServer: Virtual Servers
            keystore:
              label: Certificate Information
            parentProfile:
              description: No value is interpreted as "clientssl" or "serverssl" depending on the Profile Type selected.
              label: Parent Profile
            partition:
              description: No value is interpreted as the "Common" partition.
              label: Partition
            password:
              hidePassword: Hide Password
              label: Password
              showPassword: Show Password
            port:
              description: No value is interpreted as 443.
              label: Port
            serverName:
              description: An alternative DNS name used for Server Name Indication.
              label: SNI
            sslProfile:
              label: SSL Profile
            sslProfileType:
              client: Client SSL Profile
              label: Profile Type
              server: Server SSL Profile
            username:
              label: Username
    Manifest:
      properties:
        deployment:
          $ref: '#/components/schemas/Deployment'
        description:
          description: Description text for the plugin.
          type: string
        domainSchema:
          type: object
        hooks:
          properties:
            mapping:
              type: object
            requestConverters:
              items: {}
              type:
              - array
              - 'null'
          required:
          - mapping
          type: object
        localizationResources:
          $ref: '#/components/schemas/LocalizationResource'
        name:
          description: Name of the plugin.
          type: string
        pluginType:
          $ref: '#/components/schemas/PluginType'
        workTypes:
          description: Defines the type of workflows supported for the plugin.
          items:
            $ref: '#/components/schemas/WorkType'
          minItems: 1
          type: array
          uniqueItems: true
      required:
      - name
      - workTypes
      - deployment
      - domainSchema
      - hooks
      title: Manifest
      type: object
      x-examples:
        Example 1:
          deployment:
            executionTarget: vsat
            image: public.ecr.aws/docker/library/nginx:mainline-alpine3.18-slim
          description: Description text.
          domainSchema:
            binding:
              properties:
                parentProfile:
                  description: parentProfile.description
                  type: string
                  x-labelLocalizationKey: parentProfile.label
                  x-rank: 1
                serverName:
                  description: serverName.description
                  format: hostname
                  type: string
                  x-labelLocalizationKey: serverName.label
                  x-rank: 3
                  x-rule:
                    condition:
                      type: '#/properties/sslProfileType'
                    effect: SHOW
                sslProfile:
                  type: string
                  x-labelLocalizationKey: sslProfile.label
                  x-rank: 2
                sslProfileType:
                  oneOf:
                  - const: client
                    x-labelLocalizationKey: sslProfileType.client
                  - const: server
                    x-labelLocalizationKey: sslProfileType.server
                  x-labelLocalizationKey: sslProfileType.label
                  x-rank: 0
              required:
              - sslProfile
              - sslProfileType
              type: object
              x-labelLocalizationKey: binding.label
              x-primaryKey:
              - '#/sslProfileType'
              - '#/sslProfile'
            certificateBundle:
              properties:
                certificate:
                  contentEncoding: base64
                  type: string
                certificateChain:
                  contentEncoding: base64
                  type: string
                privateKey:
                  contentEncoding: base64
                  type: string
                  x-encrypted-base64: true
              required:
              - certificate
              - privateKey
              - certificateChain
              type: object
            connection:
              properties:
                hostnameOrAddress:
                  type: string
                  x-labelLocalizationKey: address.label
                  x-rank: 0
                password:
                  type: string
                  x-controlOptions:
                    hidePasswordLabel: password.hidePassword
                    password: true
                    showPasswordLabel: password.showPassword
                  x-encrypted: true
                  x-labelLocalizationKey: password.label
                  x-rank: 3
                port:
                  description: port.description
                  maximum: 65535
                  minimum: 1
                  type: integer
                  x-labelLocalizationKey: port.label
                  x-rank: 1
                username:
                  type: string
                  x-encrypted: true
                  x-labelLocalizationKey: username.label
                  x-rank: 2
              required:
              - hostnameOrAddress
              - username
              - password
              type: object
            discovery:
              properties:
                discoveryType:
                  oneOf:
                  - const: all
                    x-labelLocalizationKey: discoveryType.all
                  - const: monitor
                    x-labelLocalizationKey: discoveryType.monitor
                  - const: virtualServer
                    x-labelLocalizationKey: discoveryType.virtualServer
                  x-labelLocalizationKey: discoveryType.label
                  x-rank: 0
                excludeExpiredCertificates:
                  type: boolean
                  x-labelLocalizationKey: discovery.expiredCertificatesLabel
                  x-rank: 2
                excludeInactiveProfiles:
                  type: boolean
                  x-labelLocalizationKey: discovery.inactiveProfilesLabel
                  x-rank: 3
                partition:
                  default: Common
                  description: discovery.partitionDescription
                  maxLength: 64
                  type: string
                  x-labelLocalizationKey: discovery.partitionLabel
                  x-rank: 1
              type: object
            discoveryControl:
              properties:
                maxResults:
                  type: int
              required:
              - maxResults
              type: object
            discoveryPage:
              properties:
                discoveryType:
                  type: string
                paginator:
                  type: string
              type: object
            keystore:
              properties:
                certificateName:
                  description: certificateName.description
                  type: string
                  x-labelLocalizationKey: certificateName.label
                  x-rank: 0
                chainName:
                  type: string
                  x-labelLocalizationKey: chainName.label
                  x-rank: 1
                partition:
                  description: partition.description
                  maxLength: 64
                  type: string
                  x-labelLocalizationKey: partition.label
                  x-rank: 2
                  x-targetConfigurationRef: /partitions
              required:
              - certificateName
              - chainName
              type: object
              x-labelLocalizationKey: keystore.label
              x-primaryKey:
              - '#/certificateName'
              - '#/partition'
          hooks:
            mapping:
              configureInstallationEndpoint: /v1/configureinstallationendpoint
              discoverCertificates: /v1/discovercertificates
              installCertificateBundle: /v1/installcertificatebundle
              testConnection: /v1/testconnection
            requestConverters:
            - arguments-decrypter
          localizationResources:
            en:
              address:
                label: Server Hostname
              binding:
                label: Server Store Details
              certificateName:
                description: How the certificate should appear on the server.
                label: Certificate Name
              chainName:
                label: Chain Bundle Name
              discovery:
                expiredCertificatesLabel: Exclude expired certificates.
                inactiveProfilesLabel: Exclude certificates that are not in use by either a virtual server or a monitor.
                partitionDescription: A comma separated list of partition names.
                partitionLabel: Partition(s)
              discoveryType:
                all: Both Monitors and Virtual Servers
                label: Resource Types to Discover
                monitor: Monitors
                virtualServer: Virtual Servers
              keystore:
                label: Certificate Information
              parentProfile:
                description: No value is interpreted as "clientssl" or "serverssl" depending on the Profile Type selected.
                label: Parent Profile
              partition:
                description: No value is interpreted as the "Common" partition.
                label: Partition
              password:
                hidePassword: Hide Password
                label: Password
                showPassword: Show Password
              port:
                description: No value is interpreted as 443.
                label: Port
              serverName:
                description: An alternative DNS name used for Server Name Indication.
                label: SNI
              sslProfile:
                label: SSL Profile
              sslProfileType:
                client: Client SSL Profile
                label: Profile Type
                server: Server SSL Profile
              username:
                label: Username
          name: Sample Manifest
  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