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 EDL Definitions API version: 1.0.0 servers: - description: Prod url: https://api.strata.paloaltonetworks.com security: - scmToken: [] tags: - name: EDL Definitions paths: /adns-resolver/v1/edls: get: description: Retrieve all EDL definitions. operationId: ListEDLDefinitions responses: '200': content: application/json: schema: $ref: '#/components/schemas/edls' 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 EDL definitions tags: - EDL Definitions post: description: Create a new EDL definition. operationId: CreateEDLDefinition requestBody: content: application/json: schema: $ref: '#/components/schemas/edl-definition-input' description: EDL definition to be created required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/edl-item' description: Created headers: Location: schema: description: URI of the created EDL definition 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 an EDL definition tags: - EDL Definitions /adns-resolver/v1/edls/{edl-id}: delete: description: Delete a specific EDL definition by ID. operationId: DeleteEDLDefinitionByID parameters: - description: EDL Definition ID in: path name: edl-id required: true schema: description: EDL Definition 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 an EDL definition tags: - EDL Definitions get: description: Retrieve a specific EDL definition by ID. operationId: GetEDLDefinitionByID parameters: - description: EDL definition ID in: path name: edl-id required: true schema: description: EDL definition ID type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/edl-item' description: OK headers: Location: schema: description: URI of the created EDL definition 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 EDL definition tags: - EDL Definitions put: description: Update an existing EDL definition. operationId: UpdateEDLDefinitionByID parameters: - description: EDL definition ID in: path name: edl-id required: true schema: description: EDL definition ID type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/edl-definition-input' description: EDL definition to be modified required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/edl-item' description: OK headers: Location: schema: description: URI of the created EDL definition 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 an EDL definition tags: - EDL Definitions 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 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 edl-definition-input: additionalProperties: false properties: ca_cert_id: examples: - CA Certificate ID(Optional) type: string is_expansion_enabled: examples: - false type: boolean name: examples: - EDL Definition name maxLength: 128 minLength: 1 type: string password: examples: - password(Optional) maxLength: 40 type: string poll_duration: enum: - FIVE_MINUTES - HOURLY - DAILY - WEEKLY - MONTHLY examples: - DAILY type: string url: examples: - https://example.com/edl maxLength: 2048 minLength: 1 type: string user: examples: - username(Optional) maxLength: 40 type: string required: - name - url - poll_duration 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 edl-item: additionalProperties: false properties: item: $ref: '#/components/schemas/edl-definition' required: - item type: object edls: additionalProperties: false properties: data: items: $ref: '#/components/schemas/edl-definition' type: - array - 'null' required: - data type: object edl-definition: additionalProperties: false properties: ca_cert_id: description: CA certificate ID for EDL authentication examples: - 123-45 type: string checked_at: description: Timestamp when EDL was last checked examples: - '2024-01-15T10:30:00Z' readOnly: true type: string error_message: description: Error message if EDL fetch failed examples: - Connection timeout readOnly: true type: string error_type: description: Type of error encountered during EDL processing enum: - INVALID_URL - CERT_ERROR - CONNECT_ERROR - NON_2XX_ERROR - READ_ERROR - SAVE_ERROR - CONTENT_TYPE_ERROR - TIMEOUT_ERROR - NO_VALID_EDL_ERROR examples: - INVALID_URL readOnly: true type: string expanded_lines: description: Number of expanded lines in the EDL examples: - 1200 format: int64 readOnly: true type: integer has_password: description: Indicates if password is set for EDL authentication examples: - true readOnly: true type: boolean http_status: description: HTTP status code from EDL fetch attempt examples: - 200 format: int64 readOnly: true type: integer id: description: Unique identifier of the EDL definition examples: - 1234-5678 readOnly: true type: string invalid_lines: description: Number of invalid lines in the EDL examples: - 50 format: int64 readOnly: true type: integer is_expansion_enabled: description: Indicates if EDL line expansion is enabled examples: - true type: boolean is_truncated: description: Indicates if the EDL content is truncated examples: - false readOnly: true type: boolean name: description: Name of the EDL definition examples: - Malware EDL maxLength: 128 type: string poll_duration: description: Polling duration for EDL updates enum: - FIVE_MINUTES - HOURLY - DAILY - WEEKLY - MONTHLY examples: - DAILY type: string status: description: Status of the EDL definition enum: - SUCCESS - WARNING - PENDING - ERROR examples: - SUCCESS readOnly: true type: string url: description: URL of the EDL source examples: - https://example.com/malware-list.txt maxLength: 2048 type: string user: description: Username for EDL authentication examples: - admin maxLength: 40 type: string valid_lines: description: Number of valid lines in the EDL examples: - 1000 format: int64 readOnly: true type: integer required: - id - name - url - has_password - poll_duration 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