Palo Alto Networks Onboarding Rules API
Onboarding rules information
Onboarding rules information
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