Palo Alto Networks Properties API

Onboarding Properties information

OpenAPI Specification

palo-alto-networks-properties-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  title: Device Onboarding Properties 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: Properties
  description: Onboarding Properties information
paths:
  /properties:
    post:
      tags:
      - Properties
      summary: Create a property
      description: 'Creates a new property definition with type and optional constraints.


        Supported types and their constraints:

        - integer: min, max

        - string: max_len


        Note: Property names cannot start with the reserved prefix ''_sys_''

        '
      operationId: createProperty
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create_property_request'
      responses:
        '201':
          description: Property 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: Property ID
                      name:
                        type: string
                        description: Property 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:
      - Properties
      summary: List properties
      description: 'Retrieves all properties with optional filtering by type.

        '
      operationId: listProperties
      parameters:
      - name: type
        in: query
        description: Filter properties by type
        schema:
          type: string
          enum:
          - integer
          - string
      responses:
        '200':
          description: Properties 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/property'
                    description: Array of property schemas
                  message:
                    type: string
                    description: Human-readable message
                  request_id:
                    type: string
                    format: uuid
                    description: Unique request identifier for troubleshooting
        '500':
          $ref: '#/components/responses/InternalServerError'
  /properties/{id}:
    get:
      tags:
      - Properties
      summary: Get a property
      description: Retrieves a property by UUID
      operationId: getPropertyByID
      parameters:
      - $ref: '#/components/parameters/property_id'
      responses:
        '200':
          description: Property retrieved successfully
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                properties:
                  status:
                    type: string
                    enum:
                    - success
                    description: Response status indicator
                  data:
                    $ref: '#/components/schemas/property'
                    description: Property details
                  message:
                    type: string
                    description: Human-readable message
                  request_id:
                    type: string
                    format: uuid
                    description: Unique request identifier for troubleshooting
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      tags:
      - Properties
      summary: Update a property
      description: 'Updates a property. Validates that changes don''t break existing site values

        or onboarding rule references.


        Supported constraints by type:

        - integer: min, max

        - string: max_len


        Note: Property names cannot start with the reserved prefix ''_sys_''

        '
      operationId: updatePropertyByID
      parameters:
      - $ref: '#/components/parameters/property_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update_property_request'
      responses:
        '200':
          description: Property updated successfully
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                properties:
                  status:
                    type: string
                    enum:
                    - success
                    description: Response status indicator
                  data:
                    $ref: '#/components/schemas/property'
                    description: Updated property schema
                  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'
    delete:
      tags:
      - Properties
      summary: Delete a property
      description: 'Deletes a property by ID. Property must not be in use by any sites or onboarding rules.

        '
      operationId: deletePropertyByID
      parameters:
      - $ref: '#/components/parameters/property_id'
      responses:
        '200':
          description: Property 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/property'
                    description: Deleted property
                  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:
    property:
      type: object
      required:
      - id
      - name
      - type
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
          description: Property name (unique within tenant)
        type:
          type: string
          enum:
          - integer
          - string
          description: Property data type
        constraints:
          $ref: '#/components/schemas/property_constraints'
        created_at:
          type: string
          format: date-time
        last_updated:
          type: string
          format: date-time
    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
    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'
    property_constraints:
      type: object
      properties:
        min:
          type: string
          description: Minimum value (for integer type)
          example: '0'
        max:
          type: string
          description: Maximum value (for integer type)
          example: '100'
        max_len:
          type: string
          description: Maximum length (required for string type, must be 1-1024 inclusive)
          example: '255'
    create_property_request:
      type: object
      required:
      - name
      - type
      properties:
        name:
          type: string
        type:
          type: string
          enum:
          - integer
          - string
        constraints:
          $ref: '#/components/schemas/property_constraints'
    update_property_request:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
          enum:
          - integer
          - string
        constraints:
          $ref: '#/components/schemas/property_constraints'
  responses:
    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
    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
    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
  parameters:
    property_id:
      name: id
      in: path
      required: true
      description: Property UUID
      schema:
        type: string
        format: uuid
  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