Palo Alto Networks Site Groups API
Onboarding Site Groups Information
Onboarding Site Groups Information
openapi: 3.2.0
info:
version: 2.0.0
title: Device Onboarding Site Groups 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: Site Groups
description: Onboarding Site Groups Information
paths:
/site-groups:
post:
tags:
- Site Groups
summary: Create a site group
description: 'Creates a new site group with optional property list. The property list defines
which properties are available for sites in this site group and which properties
can be referenced by onboarding rule variables for this site group.
'
operationId: createSiteGroup
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/create_site_group_request'
responses:
'201':
description: Site group 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: Site group ID
name:
type: string
description: Site group 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:
- Site Groups
summary: List site groups
description: Retrieves all site groups for the tenant
operationId: listSiteGroups
responses:
'200':
description: Site groups 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/site_group'
description: Array of site groups
message:
type: string
description: Human-readable message
request_id:
type: string
format: uuid
description: Unique request identifier for troubleshooting
'500':
$ref: '#/components/responses/InternalServerError'
/site-groups/{id}:
get:
tags:
- Site Groups
summary: Get a site group
description: Retrieves a site group by UUID
operationId: getSiteGroupByID
parameters:
- $ref: '#/components/parameters/site_group_id'
responses:
'200':
description: Site group retrieved successfully
content:
application/json:
schema:
type: object
required:
- status
properties:
status:
type: string
enum:
- success
description: Response status indicator
data:
$ref: '#/components/schemas/site_group'
description: Site group 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:
- Site Groups
summary: Update a site group
description: 'Updates a site group''s name, description, or property list.
**Validation rules:**
- Name changes are blocked (HTTP 409) if the site group is referenced by any sites or onboarding rules
- Property list updates are blocked (HTTP 409) if any unclaimed sites reference this site group
- Property list updates are allowed if all sites referencing this site group are claimed
- Description-only updates are always allowed
'
operationId: updateSiteGroupByID
parameters:
- $ref: '#/components/parameters/site_group_id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/update_site_group_request'
responses:
'200':
description: Site group updated successfully
content:
application/json:
schema:
type: object
required:
- status
properties:
status:
type: string
enum:
- success
description: Response status indicator
data:
$ref: '#/components/schemas/site_group'
description: Updated site group
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:
- Site Groups
summary: Delete a site group
description: 'Deletes a site group by ID. Site group must not be in use by any sites or onboarding rules.
'
operationId: deleteSiteGroupByID
parameters:
- $ref: '#/components/parameters/site_group_id'
responses:
'200':
description: Site group 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/site_group'
description: Deleted site group
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:
parameters:
site_group_id:
name: id
in: path
required: true
description: Site Group UUID
schema:
type: string
format: uuid
schemas:
site_group:
type: object
required:
- id
- tenant_id
- name
properties:
id:
type: string
format: uuid
tenant_id:
type: string
name:
type: string
description: Site group name (unique within tenant)
description:
type: string
properties:
type: array
items:
type: string
description: 'List of property names that are available for sites in this site group.
This defines which properties can be used in site property_values and which
properties can be referenced by onboarding rule variables for this site group.'
created_at:
type: string
format: date-time
last_updated:
type: string
format: date-time
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'
update_site_group_request:
type: object
required:
- name
properties:
name:
type: string
description: Site group name (unique within tenant)
description:
type: string
description: Optional description of the site group
properties:
type: array
items:
type: string
description: 'Optional list of property names (not UUIDs) that define the property schema
for this site group. Property list updates are blocked if any unclaimed sites
reference this site group.'
example:
- region_id
- site_id
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
create_site_group_request:
type: object
required:
- name
properties:
name:
type: string
description: Site group name (unique within tenant)
description:
type: string
description: Optional description of the site group
properties:
type: array
items:
type: string
description: 'Optional list of property names (not UUIDs) that define the property schema
for this site group. Sites in this group must use properties from this list,
and onboarding rule variables for this site group can only reference properties
from this list.'
example:
- region_id
- site_id
- location
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
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