openapi: 3.2.0 info: contact: email: support@paloaltonetworks.com name: Palo Alto Networks Technical Support url: https://support.paloaltonetworks.com description: These APIs are used to define how Advanced DNS Security Resolver configurations are implemented. license: name: MIT url: https://opensource.org/license/mit termsOfService: https://www.paloaltonetworks.com/content/dam/pan/en_US/assets/pdf/legal/palo-alto-networks-end-user-license-agreement-eula.pdf title: Advanced DNS Security Resolver Configuration Internal Domains API version: 1.0.0 servers: - description: Prod url: https://api.strata.paloaltonetworks.com security: - scmToken: [] tags: - name: Internal Domains paths: /adns-resolver/v1/internal-domains: get: description: Retrieve internal domains. Returns custom domains by default. Use query parameter type=default to retrieve system-provided default domains instead. operationId: ListInternalDomains parameters: - description: Maximum number of items to return explode: false in: query name: limit schema: default: 200 description: Maximum number of items to return format: int32 maximum: 1000 minimum: 1 type: integer - description: Number of items to skip explode: false in: query name: offset schema: default: 0 description: Number of items to skip format: int32 minimum: 0 type: integer - description: Field to sort by (id, domain, description, created_at, last_updated_at) explode: false in: query name: sort_by schema: default: created_at description: Field to sort by (id, domain, description, created_at, last_updated_at) enum: - id - domain - description - created_at - last_updated_at type: string - description: Sort order (ASC or DESC) explode: false in: query name: sort_order schema: default: DESC description: Sort order (ASC or DESC) enum: - ASC - DESC type: string - description: Search term to filter by domain or description explode: false in: query name: search schema: description: Search term to filter by domain or description type: string - description: Filter by internal domain type explode: false in: query name: type schema: default: custom description: Filter by internal domain type enum: - default - custom type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/internal-domains' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/error' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/error' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/error' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/error' description: Not Found '405': content: application/json: schema: $ref: '#/components/schemas/error' description: Method Not Allowed '409': content: application/json: schema: $ref: '#/components/schemas/error' description: Conflict '412': content: application/json: schema: $ref: '#/components/schemas/error' description: Precondition Failed '422': content: application/json: schema: $ref: '#/components/schemas/error' description: Unprocessable Entity '500': content: application/json: schema: $ref: '#/components/schemas/error' description: Internal Server Error '503': content: application/json: schema: $ref: '#/components/schemas/error' description: Service Unavailable default: content: application/json: schema: $ref: '#/components/schemas/error' description: Error summary: List internal domains tags: - Internal Domains post: description: 'Create a new custom internal domain. Note: Default internal domains are read-only and cannot be created via API.' operationId: CreateInternalDomain requestBody: content: application/json: schema: $ref: '#/components/schemas/internal-domain-input' description: Internal domain input to create required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/internal-domain-item' description: Created headers: Location: schema: description: URI of the created internal domain resource type: string '400': content: application/json: schema: $ref: '#/components/schemas/error' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/error' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/error' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/error' description: Not Found '405': content: application/json: schema: $ref: '#/components/schemas/error' description: Method Not Allowed '409': content: application/json: schema: $ref: '#/components/schemas/error' description: Conflict '412': content: application/json: schema: $ref: '#/components/schemas/error' description: Precondition Failed '422': content: application/json: schema: $ref: '#/components/schemas/error' description: Unprocessable Entity '500': content: application/json: schema: $ref: '#/components/schemas/error' description: Internal Server Error '503': content: application/json: schema: $ref: '#/components/schemas/error' description: Service Unavailable default: content: application/json: schema: $ref: '#/components/schemas/error' description: Error summary: Create a custom internal domain tags: - Internal Domains /adns-resolver/v1/internal-domains/{internal-domain-id}: delete: description: 'Delete a specific custom internal domain by ID. Note: Default internal domains are read-only and cannot be deleted.' operationId: DeleteInternalDomainByID parameters: - description: Internal Domain ID in: path name: internal-domain-id required: true schema: description: Internal Domain ID type: string responses: '204': description: No Content '400': content: application/json: schema: $ref: '#/components/schemas/error' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/error' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/error' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/error' description: Not Found '405': content: application/json: schema: $ref: '#/components/schemas/error' description: Method Not Allowed '409': content: application/json: schema: $ref: '#/components/schemas/error' description: Conflict '412': content: application/json: schema: $ref: '#/components/schemas/error' description: Precondition Failed '422': content: application/json: schema: $ref: '#/components/schemas/error' description: Unprocessable Entity '500': content: application/json: schema: $ref: '#/components/schemas/error' description: Internal Server Error '503': content: application/json: schema: $ref: '#/components/schemas/error' description: Service Unavailable default: content: application/json: schema: $ref: '#/components/schemas/error' description: Error summary: Delete a custom internal domain tags: - Internal Domains get: description: Retrieve a specific internal domain by ID. operationId: GetInternalDomainByID parameters: - description: Internal Domain ID in: path name: internal-domain-id required: true schema: description: Internal Domain ID type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/internal-domain-item' description: OK headers: Location: schema: description: URI of the created internal domain resource type: string '400': content: application/json: schema: $ref: '#/components/schemas/error' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/error' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/error' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/error' description: Not Found '405': content: application/json: schema: $ref: '#/components/schemas/error' description: Method Not Allowed '409': content: application/json: schema: $ref: '#/components/schemas/error' description: Conflict '412': content: application/json: schema: $ref: '#/components/schemas/error' description: Precondition Failed '422': content: application/json: schema: $ref: '#/components/schemas/error' description: Unprocessable Entity '500': content: application/json: schema: $ref: '#/components/schemas/error' description: Internal Server Error '503': content: application/json: schema: $ref: '#/components/schemas/error' description: Service Unavailable default: content: application/json: schema: $ref: '#/components/schemas/error' description: Error summary: Get an internal domain tags: - Internal Domains put: description: 'Update an existing custom internal domain. Note: Default internal domains are read-only and cannot be modified.' operationId: UpdateInternalDomainByID parameters: - description: Internal Domain ID in: path name: internal-domain-id required: true schema: description: Internal Domain ID type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/internal-domain-input' description: Internal domain input to update required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/internal-domain-item' description: OK headers: Location: schema: description: URI of the created internal domain resource type: string '400': content: application/json: schema: $ref: '#/components/schemas/error' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/error' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/error' description: Forbidden '404': content: application/json: schema: $ref: '#/components/schemas/error' description: Not Found '405': content: application/json: schema: $ref: '#/components/schemas/error' description: Method Not Allowed '409': content: application/json: schema: $ref: '#/components/schemas/error' description: Conflict '412': content: application/json: schema: $ref: '#/components/schemas/error' description: Precondition Failed '422': content: application/json: schema: $ref: '#/components/schemas/error' description: Unprocessable Entity '500': content: application/json: schema: $ref: '#/components/schemas/error' description: Internal Server Error '503': content: application/json: schema: $ref: '#/components/schemas/error' description: Service Unavailable default: content: application/json: schema: $ref: '#/components/schemas/error' description: Error summary: Update a custom internal domain tags: - Internal Domains components: schemas: error-code: oneOf: - enum: - 1001 title: 1001 - Forbidden type: integer - enum: - 1002 title: 1002 - Invalid Input type: integer - enum: - 1004 title: 1004 - Invalid Output type: integer - enum: - 1005 title: 1005 - Internal Server Error type: integer - enum: - 1006 title: 1006 - Precondition Failed type: integer - enum: - 1007 title: 1007 - Method Not Allowed type: integer - enum: - 1008 title: 1008 - Not Found type: integer - enum: - 1009 title: 1009 - Service Unavailable type: integer - enum: - 1010 title: 1010 - Duplicate Not Allowed type: integer - enum: - 1011 title: 1011 - Expired License type: integer - enum: - 1012 title: 1012 - Dependency Error type: integer - enum: - 1013 title: 1013 - Subnet Already Verified type: integer - enum: - 1014 title: 1014 - In Grace type: integer - enum: - 1015 title: 1015 - Limit Exceeded type: integer - enum: - 1016 title: 1016 - Duplicate Subnet Not Allowed type: integer - enum: - 1017 title: 1017 - IP Limit Exceeded type: integer - enum: - 1018 title: 1018 - FQDN Limit Exceeded type: integer - enum: - 1019 title: 1019 - Private Subnet type: integer - enum: - 1020 title: 1020 - Mapped IPv4 type: integer - enum: - 1021 title: 1021 - Invalid Subnet type: integer - enum: - 1022 title: 1022 - Invalid Sinkhole type: integer - enum: - 1023 title: 1023 - Allowed Subnet Required type: integer - enum: - 1024 title: 1024 - Cross Tenant Subnet Conflict type: integer title: error-code type: integer internal-domain-item: additionalProperties: false properties: item: $ref: '#/components/schemas/internal-domain' required: - item type: object internal-domain-input: additionalProperties: false properties: description: examples: - Description of the internal domain maxLength: 256 type: string domain: examples: - internal.company.com maxLength: 255 type: string required: - domain type: object error-detail: additionalProperties: false properties: code: $ref: '#/components/schemas/error-code' description: Error code identifier details: description: Additional error details items: type: string type: - array - 'null' help: description: URL to error documentation type: string message: description: Human-readable error message type: string required: - code - message type: object internal-domain: additionalProperties: false properties: created_at: description: Timestamp(UTC) when the domain was created examples: - '2023-01-15T10:30:00Z' format: date-time readOnly: true type: string description: description: Description of the domain examples: - Internal corporate domain maxLength: 256 type: string domain: description: Domain name examples: - example.com maxLength: 255 type: string id: description: Unique identifier for the internal domain examples: - 123e4567-e89b-12d3-a456-426614174000 readOnly: true type: string last_updated_at: description: Timestamp(UTC) when the domain was last updated examples: - '2023-01-20T14:45:00Z' format: date-time readOnly: true type: string required: - id - domain type: object error: additionalProperties: false properties: _errors: description: Array of error objects items: $ref: '#/components/schemas/error-detail' type: - array - 'null' _request_id: description: Request identifier for tracking type: string required: - _errors type: object internal-domains: additionalProperties: false properties: data: items: $ref: '#/components/schemas/internal-domain' type: - array - 'null' limit: default: 200 description: Maximum number of items returned format: int32 maximum: 1000 minimum: 1 type: integer offset: default: 0 description: Number of items skipped format: int32 minimum: 0 type: integer total: description: Total number of internal domain resources format: int32 minimum: 0 type: integer required: - data - offset - total - limit type: object securitySchemes: scmToken: bearerFormat: JWT description: "Advanced DNS Security Resolver 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 type: http