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