Palo Alto Networks Peripherals API

The Peripherals API from Palo Alto Networks — 2 operation(s) for peripherals.

OpenAPI Specification

palo-alto-networks-peripherals-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact: {}
  description: "Manage peripheral device configurations and policies for DLP protection. Configure USB devices, printers, \nand other peripherals to enforce DLP policies and prevent unauthorized data transfers.\n"
  license:
    name: MIT
    url: https://opensource.org/license/mit
  title: v2 Peripherals API
  version: 1.0.0
servers:
- url: https://api.dlp.paloaltonetworks.com
tags:
- name: Peripherals
paths:
  /v2/api/peripherals:
    get:
      description: Returns a paginated list of peripheral devices for the authenticated tenant.
      operationId: get-v2-api-peripherals
      parameters:
      - description: Zero-based page index (0..N)
        in: query
        name: page
        required: false
        schema:
          default: 0
          minimum: 0
          type: integer
      - description: The size of the page to be returned
        in: query
        name: size
        required: false
        schema:
          default: 20
          minimum: 1
          type: integer
      - description: 'Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.'
        in: query
        name: sort
        required: false
        schema:
          items:
            type: string
          type: array
      - description: Comma-separated list of peripheral types to filter (usb, printer, network_share)
        in: query
        name: peripheral-type
        schema:
          type: string
      - description: If true, include group membership information
        in: query
        name: with-groups
        schema:
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagePeripheralResponse'
          description: Paginated list of peripherals
        '401':
          description: Unauthorized
        '403':
          description: Forbidden - insufficient privileges
      security:
      - Bearer: []
      summary: List Peripherals
      tags:
      - Peripherals
    post:
      description: Creates a new peripheral device for the authenticated tenant.
      operationId: post-v2-api-peripherals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PeripheralRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PeripheralResponse'
          description: Peripheral created
        '400':
          description: Invalid request payload
        '401':
          description: Unauthorized
        '403':
          description: Forbidden - insufficient privileges
      security:
      - Bearer: []
      summary: Create Peripheral
      tags:
      - Peripherals
  /v2/api/peripherals/{resourceId}:
    delete:
      description: Deletes a peripheral device by its ID.
      operationId: delete-v2-api-peripherals-resourceid
      parameters:
      - in: path
        name: resourceId
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Peripheral deleted
        '401':
          description: Unauthorized
        '403':
          description: Forbidden - insufficient privileges
        '404':
          description: Peripheral not found
      security:
      - Bearer: []
      summary: Delete Peripheral
      tags:
      - Peripherals
    get:
      description: Retrieves a single peripheral device by its ID.
      operationId: get-v2-api-peripherals-resourceid
      parameters:
      - in: path
        name: resourceId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PeripheralResponse'
          description: Peripheral found
        '401':
          description: Unauthorized
        '403':
          description: Forbidden - insufficient privileges
        '404':
          description: Peripheral not found
      security:
      - Bearer: []
      summary: Get Peripheral
      tags:
      - Peripherals
    put:
      description: Fully replaces an existing peripheral device with the provided payload.
      operationId: put-v2-api-peripherals-resourceid
      parameters:
      - in: path
        name: resourceId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PeripheralRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PeripheralResponse'
          description: Peripheral updated
        '400':
          description: Invalid request payload
        '401':
          description: Unauthorized
        '403':
          description: Forbidden - insufficient privileges
        '404':
          description: Peripheral not found
      security:
      - Bearer: []
      summary: Update Peripheral
      tags:
      - Peripherals
components:
  schemas:
    PageableObject:
      properties:
        offset:
          format: int64
          type: integer
        pageNumber:
          format: int32
          type: integer
        pageSize:
          format: int32
          type: integer
        paged:
          type: boolean
        sort:
          $ref: '#/components/schemas/SortObject'
        unpaged:
          type: boolean
      type: object
    AuditResponse:
      description: Audit metadata tracking creation and last-update information
      properties:
        created_at:
          description: Timestamp when the resource was created
          format: date-time
          type: string
        created_by:
          description: Username or service that created the resource
          type: string
        updated_at:
          description: Timestamp when the resource was last updated
          format: date-time
          type: string
        updated_by:
          description: Username or service that last updated the resource
          type: string
      type: object
    NetworkSharePeripheralRequest:
      allOf:
      - $ref: '#/components/schemas/PeripheralRequest'
      - properties:
          description:
            description: Optional description
            type: string
          directory_path:
            description: Directory path on the network share (e.g. /documents)
            type: string
          name:
            description: Display name
            maxLength: 128
            minLength: 1
            type: string
          server_address:
            description: Server hostname or IP address of the network share
            type: string
          type:
            description: Peripheral type discriminator — must be 'network_share'
            enum:
            - usb
            - printer
            - network_share
            example: network_share
            type: string
        type: object
      description: Network share peripheral device request. Use type='network_share'.
      required:
      - name
      - server_address
      - type
      type: object
    SortObject:
      properties:
        empty:
          type: boolean
        sorted:
          type: boolean
        unsorted:
          type: boolean
      type: object
    PeripheralRequest:
      description: Request payload for creating or updating a peripheral device. Use 'type' to specify the subtype.
      discriminator:
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/UsbPeripheralRequest'
      - $ref: '#/components/schemas/PrinterPeripheralRequest'
      - $ref: '#/components/schemas/NetworkSharePeripheralRequest'
      properties:
        type:
          type: string
      required:
      - type
      type: object
    PagePeripheralResponse:
      properties:
        content:
          items:
            $ref: '#/components/schemas/PeripheralResponse'
          type: array
        empty:
          type: boolean
        first:
          type: boolean
        last:
          type: boolean
        number:
          format: int32
          type: integer
        numberOfElements:
          format: int32
          type: integer
        pageable:
          $ref: '#/components/schemas/PageableObject'
        size:
          format: int32
          type: integer
        sort:
          $ref: '#/components/schemas/SortObject'
        totalElements:
          format: int64
          type: integer
        totalPages:
          format: int32
          type: integer
      type: object
    UsbPeripheralRequest:
      allOf:
      - $ref: '#/components/schemas/PeripheralRequest'
      - properties:
          description:
            description: Optional description
            type: string
          manufacturer_name:
            description: Device manufacturer name
            type: string
          model_name:
            description: Device model name
            type: string
          name:
            description: Display name
            maxLength: 128
            minLength: 1
            type: string
          product_id:
            description: USB product ID (e.g. c52b)
            type: string
          serial_number:
            description: Device serial number
            type: string
          type:
            description: Peripheral type discriminator — must be 'usb'
            enum:
            - usb
            - printer
            - network_share
            example: usb
            type: string
          vendor_id:
            description: USB vendor ID (e.g. 046d)
            type: string
        type: object
      description: USB peripheral device request. Use type='usb'.
      required:
      - name
      - type
      type: object
    PeripheralResponse:
      description: Peripheral device resource returned by the API
      properties:
        audit_metadata:
          $ref: '#/components/schemas/AuditResponse'
        description:
          description: Optional description
          type: string
        directory_path:
          description: Directory path (for network share peripherals)
          type: string
        groups:
          description: Groups this peripheral belongs to
          items:
            description: Groups this peripheral belongs to
            type: string
          type: array
        id:
          description: Unique identifier of the peripheral
          type: string
        ip_address:
          description: IP address (for network printer peripherals)
          type: string
        manufacturer_name:
          description: Device manufacturer name
          type: string
        model_name:
          description: Device model name
          type: string
        name:
          description: Display name of the peripheral
          type: string
        printer_name:
          description: Printer share name (for printer peripherals)
          type: string
        printer_type:
          description: Printer type (for printer peripherals)
          type: string
        product_id:
          description: USB product ID (for USB/printer peripherals)
          type: string
        serial_number:
          description: Device serial number
          type: string
        server_address:
          description: Server hostname or IP (for network share peripherals)
          type: string
        type:
          description: 'Peripheral type: usb, printer, or network_share'
          enum:
          - usb
          - printer
          - network_share
          type: string
        vendor_id:
          description: USB vendor ID (for USB/printer peripherals)
          type: string
        version:
          description: Version number, incremented on each update
          format: int32
          type: integer
      type: object
    PrinterPeripheralRequest:
      allOf:
      - $ref: '#/components/schemas/PeripheralRequest'
      - properties:
          description:
            description: Optional description
            type: string
          ip_address:
            description: IP address of network printer
            type: string
          manufacturer_name:
            description: Device manufacturer name
            type: string
          model_name:
            description: Device model name
            type: string
          name:
            description: Display name
            maxLength: 128
            minLength: 1
            type: string
          printer_name:
            description: Printer share name or UNC path
            type: string
          printer_type:
            description: Printer type (e.g. local, network)
            type: string
          product_id:
            description: USB product ID
            type: string
          serial_number:
            description: Device serial number
            type: string
          type:
            description: Peripheral type discriminator — must be 'printer'
            enum:
            - usb
            - printer
            - network_share
            example: printer
            type: string
          vendor_id:
            description: USB vendor ID
            type: string
        type: object
      description: Printer peripheral device request. Use type='printer'.
      required:
      - name
      - printer_type
      - type
      type: object
  securitySchemes:
    Bearer:
      scheme: bearer
      type: http