Palo Alto Networks Onboarding Rules API

Onboarding rules information

OpenAPI Specification

palo-alto-networks-onboarding-rules-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  title: Device Onboarding Onboarding Rules API
  description: These APIs are used to define Strata Cloud Manager device onboarding workflows.
  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/device-onboarding/v1
  description: Current
security:
- scmToken: []
tags:
- name: Onboarding Rules
  description: Onboarding rules information
paths:
  /onboarding-rules:
    post:
      tags:
      - Onboarding Rules
      summary: Create an onboarding rule
      description: 'Creates a new onboarding rule with match criteria, actions, and variable resolution.

        '
      operationId: createOnboardingRule
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create_onboarding_rule_request'
      responses:
        '201':
          description: Onboarding rule created successfully
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                properties:
                  status:
                    type: string
                    enum:
                    - success
                    description: Response status indicator
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Onboarding rule ID
                      name:
                        type: string
                        description: Onboarding rule name
                  message:
                    type: string
                    description: Human-readable message
                  request_id:
                    type: string
                    format: uuid
                    description: Unique request identifier for troubleshooting
        '400':
          $ref: '#/components/responses/BadRequest'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      tags:
      - Onboarding Rules
      summary: List onboarding rules
      description: 'Retrieves all onboarding rules ordered by priority.

        '
      operationId: listOnboardingRules
      responses:
        '200':
          description: Onboarding rules retrieved successfully
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                properties:
                  status:
                    type: string
                    enum:
                    - success
                    description: Response status indicator
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/resolved_onboarding_rule'
                    description: Array of onboarding rules ordered by priority
                  message:
                    type: string
                    description: Human-readable message
                  metadata:
                    type: object
                    properties:
                      types_mapping:
                        type: object
                        description: Mapping of config service types to site manager types
                    description: Additional response metadata
                  request_id:
                    type: string
                    format: uuid
                    description: Unique request identifier for troubleshooting
        '500':
          $ref: '#/components/responses/InternalServerError'
  /onboarding-rules/{id}:move:
    post:
      tags:
      - Onboarding Rules
      summary: Move an onboarding rule
      description: 'Changes the priority order of an onboarding rule. The rule can be moved to top, bottom,

        or before/after another rule.

        '
      operationId: moveOnboardingRuleByID
      parameters:
      - $ref: '#/components/parameters/onboarding_rule_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/move_onboarding_rule_request'
      responses:
        '200':
          description: Rule moved successfully
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - message
                properties:
                  status:
                    type: string
                    enum:
                    - success
                    description: Response status indicator
                  message:
                    type: string
                    description: Human-readable message
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /onboarding-rules/{id}:
    get:
      tags:
      - Onboarding Rules
      summary: Get an onboarding rule
      description: Retrieves an onboarding rule by UUID
      operationId: getOnboardingRuleByID
      parameters:
      - $ref: '#/components/parameters/onboarding_rule_id'
      responses:
        '200':
          description: Onboarding rule retrieved successfully
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                properties:
                  status:
                    type: string
                    enum:
                    - success
                    description: Response status indicator
                  data:
                    $ref: '#/components/schemas/resolved_onboarding_rule'
                    description: Onboarding rule with resolved variables
                  message:
                    type: string
                    description: Human-readable message
                  metadata:
                    type: object
                    description: Additional response metadata
                  request_id:
                    type: string
                    format: uuid
                    description: Unique request identifier for troubleshooting
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      tags:
      - Onboarding Rules
      summary: Update an onboarding rule
      description: Updates an existing onboarding rule
      operationId: updateOnboardingRuleByID
      parameters:
      - $ref: '#/components/parameters/onboarding_rule_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update_onboarding_rule_request'
      responses:
        '200':
          description: Onboarding rule updated successfully
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                properties:
                  status:
                    type: string
                    enum:
                    - success
                    description: Response status indicator
                  data:
                    $ref: '#/components/schemas/onboard_rule_entry'
                    description: Updated onboarding rule
                  message:
                    type: string
                    description: Human-readable message
                  request_id:
                    type: string
                    format: uuid
                    description: Unique request identifier for troubleshooting
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      tags:
      - Onboarding Rules
      summary: Delete an onboarding rule
      description: Deletes an onboarding rule by ID
      operationId: deleteOnboardingRuleByID
      parameters:
      - $ref: '#/components/parameters/onboarding_rule_id'
      responses:
        '200':
          description: Onboarding rule deleted successfully - returns deleted resource
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                properties:
                  status:
                    type: string
                    enum:
                    - success
                    description: Response status indicator
                  data:
                    $ref: '#/components/schemas/onboard_rule_entry'
                    description: Deleted onboarding rule
                  message:
                    type: string
                    description: Human-readable message
                  request_id:
                    type: string
                    format: uuid
                    description: Unique request identifier for troubleshooting
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    resolved_variable:
      type: object
      required:
      - name
      - type
      - value
      properties:
        name:
          type: string
          description: Variable name
        type:
          type: string
          description: Variable type
        value:
          description: Resolved value (type varies)
    resource_validation_result:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Resource UUID
        name:
          type: string
          description: Resource name
        validation_errors:
          type: array
          items:
            $ref: '#/components/schemas/resource_validation_error'
    resolved_onboarding_rule:
      type: object
      properties:
        id:
          type: string
          format: uuid
        tenant_id:
          type: string
        name:
          type: string
        description:
          type: string
        enabled:
          type: boolean
        rule_type:
          type: string
        site_group:
          type: string
        match_criteria:
          type: object
          additionalProperties: true
        actions:
          type: object
          additionalProperties: true
        variables:
          type: array
          items:
            $ref: '#/components/schemas/variable'
          description: Original variables with resolution expression
        resolved_variables:
          type: array
          items:
            $ref: '#/components/schemas/resolved_variable'
          description: Variables resolved to their actual values
        resolution_errors:
          type: array
          items:
            type: string
          description: Errors encountered during variable resolution
        generated_at:
          type: string
    device_model:
      type: object
      properties:
        name:
          type: string
          description: Device model name
    model_criteria:
      type: object
      properties:
        include_models:
          type: array
          items:
            $ref: '#/components/schemas/device_model'
        exclude_models:
          type: array
          items:
            $ref: '#/components/schemas/device_model'
    onboard_match_criteria:
      type: object
      properties:
        models:
          $ref: '#/components/schemas/model_criteria'
    create_onboarding_rule_request:
      type: object
      required:
      - name
      - enable
      - rule_type
      - site_group
      - match_criteria
      - actions
      properties:
        name:
          type: string
        description:
          type: string
        enable:
          type: boolean
        rule_type:
          type: string
        site_group:
          type: string
        match_criteria:
          $ref: '#/components/schemas/onboard_match_criteria'
        actions:
          $ref: '#/components/schemas/onboard_actions'
        variables:
          type: array
          items:
            $ref: '#/components/schemas/variable'
    update_onboarding_rule_request:
      type: object
      required:
      - name
      - enable
      - rule_type
      - site_group
      - match_criteria
      - actions
      properties:
        id:
          type: string
          format: uuid
        tenant_id:
          type: string
        name:
          type: string
        description:
          type: string
        enable:
          type: boolean
        rule_type:
          type: string
        site_group:
          type: string
        match_criteria:
          $ref: '#/components/schemas/onboard_match_criteria'
        actions:
          $ref: '#/components/schemas/onboard_actions'
        variables:
          type: array
          items:
            $ref: '#/components/schemas/variable'
    variable:
      type: object
      required:
      - name
      - resolution_rule
      properties:
        name:
          type: string
          description: Variable name
        resolution_rule:
          $ref: '#/components/schemas/resolution_rule'
    resolution_rule:
      type: object
      required:
      - expression
      properties:
        expression:
          type: string
          description: Expression to resolve the variable (can reference properties with ${property_name})
    onboard_rule_entry:
      type: object
      required:
      - id
      - name
      - enable
      - rule_type
      - site_group
      properties:
        id:
          type: string
          format: uuid
        tenant_id:
          type: string
        name:
          type: string
        description:
          type: string
        enable:
          type: boolean
        rule_type:
          type: string
          description: Rule type (e.g., "site")
        site_group:
          type: string
        rule_order:
          type: integer
          description: Rule priority (lower number = higher priority)
        match_criteria:
          $ref: '#/components/schemas/onboard_match_criteria'
        actions:
          $ref: '#/components/schemas/onboard_actions'
        variables:
          type: array
          items:
            $ref: '#/components/schemas/variable'
        created_at:
          type: string
          format: date-time
        last_updated:
          type: string
          format: date-time
    onboard_actions:
      type: object
      additionalProperties: true
      description: Actions to perform during onboarding
    move_onboarding_rule_request:
      type: object
      required:
      - position
      properties:
        position:
          type: string
          enum:
          - before
          - after
          - top
          - bottom
          description: Position to move the rule to
        reference:
          type: string
          format: uuid
          description: UUID of reference rule (required for before/after positions)
    resource_validation_error:
      type: object
      required:
      - type
      - resource_id
      - resource_name
      - message
      properties:
        type:
          type: string
          enum:
          - site
          - rule
          - name_conflict
          description: Type of validation error
        resource_id:
          type: string
          description: ID of the affected resource
        resource_name:
          type: string
          description: Name of the affected resource
        message:
          type: string
          description: Detailed error message
  parameters:
    onboarding_rule_id:
      name: id
      in: path
      required: true
      description: Onboarding Rule UUID
      schema:
        type: string
        format: uuid
  responses:
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            type: object
            required:
            - status
            - error
            properties:
              status:
                type: string
                enum:
                - error
              data:
                type: array
                items:
                  $ref: '#/components/schemas/resource_validation_result'
              error:
                type: string
                description: Error message
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            type: object
            required:
            - status
            - error
            properties:
              status:
                type: string
                enum:
                - error
              error:
                type: string
                description: Error message
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            type: object
            required:
            - status
            - error
            properties:
              status:
                type: string
                enum:
                - error
              error:
                type: string
                description: Error message
    Conflict:
      description: Conflict
      content:
        application/json:
          schema:
            type: object
            required:
            - status
            - error
            properties:
              status:
                type: string
                enum:
                - error
              data:
                type: array
                items:
                  $ref: '#/components/schemas/resource_validation_result'
              error:
                type: string
                description: Error message
  securitySchemes:
    scmOAuth:
      type: oauth2
      description: "Strata Cloud Manager APIs authenticate client requests using the \nOAuth 2.0 Client Credentials flow.  Please use the `client_id`, \n`client_secret` values associated with an IAM service account along \nwith a scope value of `tsg_id:XXXXXXXXXX`, where `XXXXXXXXXX` is the \nTenant Service Group (TSG) ID.  The resulting JWT access token should \nbe attached to all API calls as a `Bearer` token in the `Authorization` \nheader (ex. `Authorization: Bearer tokenstring`).\n"
      flows:
        clientCredentials:
          tokenUrl: https://auth.apps.paloaltonetworks.com/oauth2/access_token
          scopes: {}
    scmToken:
      type: http
      description: "Strata Cloud Manager APIs authenticate client requests using the \nOAuth 2.0 Client Credentials flow.  Please use the `client_id`, \n`client_secret` values associated with an IAM service account along \nwith a scope value of `tsg_id:XXXXXXXXXX`, where `XXXXXXXXXX` is the \nTenant Service Group (TSG) ID.  The resulting JWT access token should \nbe attached to all API calls as a `Bearer` token in the `Authorization` \nheader (ex. `Authorization: Bearer tokenstring`).\n"
      scheme: bearer
      bearerFormat: JWT
x-internal: false