openapi: 3.0.2
info:
  contact:
    email: support@threatjammer.com
    name: ThreatJammer Support
    url: https://threatjammer.com/contactus
    x-termsOfService: https://threatjammer.com/tos
    x-twitter: threatjammer
  description: |+
    
    The public API open to the users. [Read the docs and learn more.](https://threatjammer.com/docs).

    ## General information

    ### Description
    Threat Jammer supports two end-user REST APIs: the User API and the Report API. The end-user uses the User API to interact with the different databases, heuristics, and machine learning processes. Devices use the Report API to interact with Threat Jammer. This document will explain how to use the User API and interact with the different services, create a token, interpret the quota information, and create the HTTP request to interact with the User API.

    ### Authentication
    The API is protected by a **Bearer authentication** schema. **Bearer authentication** (also called **token authentication**) is an HTTP authentication scheme that involves security tokens called bearer tokens. It is used to authenticate the user. All the different endpoints expect a `Bearer` token in the `Authorization` header.

    Example:

    ```
    curl -X 'GET'
      'https://dublin.api.threatjammer.com/test'
      -H 'accept: application/json'
      -H 'Authorization: Bearer YOUR_API_KEY'
    ```

    You can obtain a token after registering on the [ThreatJammer.com](https://threatjammer.com) website for free.


    ### Region specific tokens
    All the `Bearer` tokens contain information about the authorized region. The developers have to use a token created for the region they want to use. A token used in a different region will return a `401 Unauthorized` error.

    ### Global errors

    The API will return the following permanent errors:
    - a `401 Unauthorized` error if the token is not valid, or does not belong to the region.
    - a `401 Unauthorized` error if the token does not exist.
    - a `401 Unauthorized` error if the token is malformed.
    - a `403 Forbidden` error if the subscription level is not enough. Some endpoints are only available for paid subscription levels.

    And these temporary errors:
    - a `429 Too Many Requests` error if the quota is exceeded (see below).

    ### Quota limits

    **Every request to the User API will consume one (1) quota point.**

    The API has two rate limiting processes:
    - a quota limit of **5000** requests per month for the `FREE` account. The limit is reset every month.
    - a quota limit of **10** requests per minute for the `FREE` account. The limit is reset every minute and implements a sliding window mechanism.

  title: ThreatJammer.com User API
  version: 1.2.27
  x-apisguru-categories:
    - s
    - e
    - c
    - u
    - r
    - i
    - t
    - y
  x-logo:
    url: https://threatjammer.com/threatjammer-risk-score.png
  x-origin:
    - format: openapi
      url: https://dublin.api.threatjammer.com/openapi.json
      version: "3.0"
  x-providerName: threatjammer.com
externalDocs:
  description: Threat Jammer Documentation Site
  url: https://threatjammer.com/docs/index
paths:
  /v1/allowlist/private:
    post:
      description: |-
        ### What
        Creates a new allowlist with the information given and binded to the current user. The parameters are:
         - name
         - description
         - tags
         - expiry
         - Time to Live (TTL)
         - Resource Type (`CIDR`, `AS`, `COUNTRY`, `CONTINENT`, `DATACENTER_ID` and `USER AGENT`)

        This is an asynchronous operation. It can take several seconds until the operation completes, but the request will immediately return a 202 Accepted response. The operation will also return the UUID of the list.

        ### Parameters
        In the query string the ID of the private allow list to delete.

        In the body the following parameters:
        - ``name``: A human readable name of the list.
        - ``description``: A long detailed information about what the list contains and how it is used.
        - ``tags``: A list of tags that describe the list.
        - ``ttl``: (Optional) The Time To Live of the list, in seconds. If it does not exist, it will never expire.
        - ``resource_type``: The type of resource that the list contains. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT``,    ``DATACENTER_ID`` or ``USER AGENT``.

        ### Result
        It should always return a 202 Accepted response with the UUID of the new list in the body.

        ### Errors

        - If the information is not valid, it will return a `422` (Unprocessable Entity) error.
        - If the ttl is negative, it will return a `400` (Bad Request) error.

        It will return the API Global errors described in the API description.
      operationId: create_private_allowlist_of_the_user_v1_allowlist_private_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_create_private_allowlist_of_the_user_v1_allowlist_private_post"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                format: uuid
                title: Response Create Private Allowlist Of The User V1 Allowlist Private Post
                type: string
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Creates a new private allowlist binded to the user.
      tags:
        - Allowlist data query and management
  /v1/allowlist/private/all:
    get:
      description: |-
        ### What
        Obtain the set of private allow lists of the user available in the service.

        ### Parameters
        No parameters

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to the status of all the lists.
        - ``lists``: a list of JSON objects with the available lists:
            - ``self``: the URI to individual information of the list.
            - ``name``: A human readable name of the list.
            - ``description``: A long detailed information about what the list contains and how it is used.
            - ``resource_type``: The type of the list. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.
            - ``list_type``: The type of the list. It can be ``ALLOW`` or ``DENY``.
            - ``created_at``: Unix timestamp in seconds when the list was created.
            - ``updated_at``: Unix timestamp in seconds when the list was updated.
            - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
            - ``origins``: list of websites that are using the list as a allowlist.
                - ``self``: the URI to all the list of origins.
                - ``lists``: list of lists that the origin is using.
                    - ``self``: the URI to the individual information of the list.
                    - ``origin``: the protocol and domain of the website that is using the list.
                    - ``status``: the status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED`` it means that the list is not available anymore if not renewed.
                    - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
                    - ``created_at``: Unix timestamp in seconds when the list was created.
                    - ``updated_at``: Unix timestamp in seconds when the list was updated.

        ### Errors

        It will return the API Global errors described in the API description.
      operationId: get_all_private_allowlists_v1_allowlist_private_all_get
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrivateAclGroupListCollectionOutput"
          description: Successful Response
      security:
        - HTTPBearer: []
      summary: Get the set of private allowlists of the user.
      tags:
        - Allowlist data query and management
  "/v1/allowlist/private/all/{resource_type}":
    get:
      description: |-
        ### What
        Obtain the set of private allow lists of the user available in the service filtering by resource type. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``

        ### Parameters
        The ``resource type`` to filter. The values can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to the status of all the lists.
        - ``lists``: a list of JSON objects with the available lists:
            - ``self``: the URI to individual information of the list.
            - ``name``: A human readable name of the list.
            - ``description``: A long detailed information about what the list contains and how it is used.
            - ``resource_type``: The type of the list. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.
            - ``list_type``: The type of the list. It can be ``ALLOW`` or ``DENY``.
            - ``created_at``: Unix timestamp in seconds when the list was created.
            - ``updated_at``: Unix timestamp in seconds when the list was updated.
            - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
            - ``origins``: list of websites that are using the list as a allowlist.
                - ``self``: the URI to all the list of origins.
                - ``lists``: list of lists that the origin is using.
                    - ``self``: the URI to the individual information of the list.
                    - ``origin``: the protocol and domain of the website that is using the list.
                    - ``status``: the status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED`` it means that the list is not available anymore if not renewed.
                    - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
                    - ``created_at``: Unix timestamp in seconds when the list was created.
                    - ``updated_at``: Unix timestamp in seconds when the list was updated.

        ### Errors

        - If the resource type is not valid, it will return a ``400`` error.

        It will also return the API Global errors described in the API description.
      operationId: get_all_private_allowlists_by_resource_type_v1_allowlist_private_all__resource_type__get
      parameters:
        - in: path
          name: resource_type
          required: true
          schema:
            enum:
              - cidr
              - country
              - continent
              - as
              - datacenter
              - useragent
            title: Resource Type
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrivateAclGroupListCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the set of private allowlists of the user by resource type.
      tags:
        - Allowlist data query and management
  "/v1/allowlist/private/ip/{address}":
    get:
      description: |-
        ### What
        Obtain the list of all the different private allowlists where the IP address entered by the user. The allowlisted forbidden datasets are the ones submitted manually by the user from files or indidual items.

        ### Parameters
        The endpoint accepts the `address` parameter as query string.

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to individual status.
        - ``cidrs``: the URI of the lists of CIDRs where the IP was found.
        - ``country``: the URIs where the lists of countries where the IP address was found
        - ``continent``: the URI where the continent where the IP address was found.
        - ``asn``: the URIs where the list of continents of the ASN where the IP address was found.
        - ``datacenter``: the URIs of the lists of datacenters where the IP address was found. If not found, the result is an empty string.
        - ``reported``: the URI of the information of the IP address reported by the user. For allowlist should be empty.

        ### Errors
        - a `422 Unprocessable Entity` error if the IP address was malformed.

        It will also return the API Global errors described in the API description.
      operationId: query_resource_denylists_v1_allowlist_private_ip__address__get
      parameters:
        - in: path
          name: address
          required: true
          schema:
            anyOf:
              - format: ipv4
                type: string
              - format: ipv6
                type: string
            title: Address
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AclListCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the different private allowlists where the IP address was found.
      tags:
        - Allowlist data query and management
  "/v1/allowlist/private/{allowlist_id}":
    delete:
      description: |-
        ### What
        Delete all the bindings between a user and a private allowlist. This will remove the content of the allowlist, the allowlist from the user and also all the origins that are using the allowlist.

        This is an asynchronous operation. It can take several seconds until the operation completes, but the request willimmediately return a 202 Accepted response.

        ### Parameters
        In the query string the ID of the private allow list to delete.

        ### Result
        It should always return a 202 Accepted response with an empty body.

        ### Errors

        - If the list does not exist, it will return a 404 error.
        - If the allow list is not a valid UUID, it will return a 422 error.

        It will return the API Global errors described in the API description.
      operationId: delete_the_allowlist_v1_allowlist_private__allowlist_id__delete
      parameters:
        - in: path
          name: allowlist_id
          required: true
          schema:
            format: uuid
            title: Allowlist Id
            type: string
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Delete all the bindings between a user and a private allowlist.
      tags:
        - Allowlist data query and management
    get:
      description: |-
        ### What
        Obtain the details of the private allow list of the user available in the service.

        ### Parameters
        Pass the private allowlist ID as query parameter.

        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI to individual information of the list.
        - ``name``: A human readable name of the list.
        - ``description``: A long detailed information about what the list contains and how it is used.
        - ``resource_type``: The type of the list. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.
        - ``list_type``: The type of the list. It can be ``ALLOW`` or ``DENY``.
        - ``created_at``: Unix timestamp in seconds when the list was created.
        - ``updated_at``: Unix timestamp in seconds when the list was updated.
        - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
        - ``origins``: list of websites that are using the list as a allowlist.
            - ``self``: the URI to all the list of origins.
            - ``lists``: list of lists that the origin is using.
                - ``self``: the URI to the individual information of the list.
                - ``origin``: the protocol and domain of the website that is using the list.
                - ``status``: the status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED`` it means that the list is not available anymore if not renewed.
                - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
                - ``created_at``: Unix timestamp in seconds when the list was created.
                - ``updated_at``: Unix timestamp in seconds when the list was updated.

        ### Errors

        - If the allow list is not a valid UUID, it will return a 422 error.
        - If the private allowlist ID does not exist, it will return a ``404`` error.

        It will also return the API Global errors described in the API description.
      operationId: get_single_allowlist_v1_allowlist_private__allowlist_id__get
      parameters:
        - in: path
          name: allowlist_id
          required: true
          schema:
            format: uuid
            title: Allowlist Id
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrivateAclGroupListOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the details of a specific private allowlist of the user.
      tags:
        - Allowlist data query and management
    put:
      description: |-
        ### What
        Updates the information that describes the allowlist of the user in the system. The parameters that can be modified are:
         - name
         - description
         - tags
         - expiry

        This is an asynchronous operation. It can take several seconds until the operation completes, but the request will immediately return a 202 Accepted response.

        ### Parameters
        In the query string the ID of the private allow list to delete.

        In the body the following parameters:
        - ``name``: (Optional) A human readable name of the list.
        - ``description``: (Optional) A long detailed information about what the list contains and how it is used.
        - ``tags``: (Optional) A list of tags that describe the list.
        - ``expiry``: (Optional) Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.

        ### Result
        It should always return a 202 Accepted response with an empty body.

        ### Errors

        - If the list does not exist, it will return a `404` (Not found) error.
        - If the list is a default list, it will return a `403` (Forbidden) error.
        - If the allow list is not a valid UUID, it will return a `422` (Unprocessable Entity) error.
        - If the expiry is not a valid timestamp, it will return a `422` (Unprocessable Entity) error.
        - If the expiry is in the past, it will return a `400` (Bad Request) error.
        - If the name is not a string, it will return a `422` (Unprocessable Entity) error.
        - If the description is not a string, it will return a `422` (Unprocessable Entity) error.

        It will return the API Global errors described in the API description.
      operationId: update_private_allowlist_of_the_user_v1_allowlist_private__allowlist_id__put
      parameters:
        - in: path
          name: allowlist_id
          required: true
          schema:
            format: uuid
            title: Allowlist Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_update_private_allowlist_of_the_user_v1_allowlist_private__allowlist_id__put"
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Update the information of an existing private allowlist of the user.
      tags:
        - Allowlist data query and management
  "/v1/allowlist/private/{allowlist_id}/content":
    delete:
      description: |-
        ### What
        Delete all the content of a private allowlist of the user. This will remove all the elements, and there is no way to recover them.

        ### Parameters
        Pass the private allowlist ID as query parameter.

        ### Result
        If successful, it will return a ``202`` (Accepted) response with an empty body. The operation is asynchronous,and can take several seconds to complete.

        ### Errors

        - If the allow list is not a valid UUID, it will return a ``422`` (Unprocessable Entity) error.
        - If the private allowlist ID does not exist, it will return a ``404`` (Not found) error.

        It will also return the API Global errors described in the API description.
      operationId: delete_the_allowlist_content_v1_allowlist_private__allowlist_id__content_delete
      parameters:
        - in: path
          name: allowlist_id
          required: true
          schema:
            format: uuid
            title: Allowlist Id
            type: string
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Delete all the content of a private allowlist of the user.
      tags:
        - Allowlist data query and management
    get:
      description: |-
        ### What
        Returns the content of the private allowlist of the user. The content can be CIDRs, ASNs, countries, continents or    datacenter IDs.

        ### Parameters
        Pass the private allowlist ID as query parameter.

        The following pagination parameters are required as query string parameters:
        - ``page``: (Optional) the page number to retrieve. The first page is 1. Default is 1.
        - ``page_size``: (Optional) the number of items per page. Default is 20.


        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI to the content of the list.
        - ``cidrs``: (Optional) list of CIDRs in the list.
        - ``asns``: (Optional) list of ASNs in the list.
        - ``countries``: (Optional) list of countries in the list.
        - ``continents``: (Optional) list of continents in the list.
        - ``datacenters``: (Optional) list of datacenters in the list.

        ### Errors

        - If the allow list is not a valid UUID, it will return a ``422`` (Unprocessable Entity) error.
        - If the private allowlist ID does not exist, it will return a ``404`` (Not found) error.

        It will also return the API Global errors described in the API description.
      operationId: get_allowlist_content_v1_allowlist_private__allowlist_id__content_get
      parameters:
        - in: path
          name: allowlist_id
          required: true
          schema:
            format: uuid
            title: Allowlist Id
            type: string
        - description: The page to be returned
          in: query
          name: page
          required: false
          schema:
            default: 1
            description: The page to be returned
            title: Page number
            type: integer
            x-min: 1
        - description: The number of items per page
          in: query
          name: page_size
          required: false
          schema:
            default: 20
            description: The number of items per page
            title: Page size
            type: integer
            x-max: 100
            x-min: 5
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrivateAclListCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the content of a private allowlist of the user.
      tags:
        - Allowlist data query and management
    put:
      description: |-
        ### What
        Add or remove content of a private allowlist of the user. The content can be CIDRs, ASNs, countries, continents or datacenter IDs.

        The number of elements allowed in all the lists are limited depending on the plan of the user:
        - Free: 100 elements
        - Basic: 1000 elements
        - Pro: 10000 elements

        ### Parameters
        Pass the private allowlist ID as query parameter.

        In the body the following parameters:
        - ``append``: (Optional) Add CIDRs, ASNs, countries, continents or datacenter IDs to add to the list. It's not possible to mix different resource types in the same list.
        - ``remove``: (Optional) Extract CIDRs, ASNs, countries, continents or datacenter IDs to add to the list. It's not possible to mix different resource types in the same list.


        ### Result
        If successful, it will return a ``202`` (Accepted) response with an empty body. The operation is asynchronous,and can take several seconds to complete.

        ### Errors

        - If the allow list is not a valid UUID, it will return a ``422`` (Unprocessable Entity) error.
        - If the private allowlist ID does not exist, it will return a ``404`` (Not found) error.
        - If the ``append`` or ``remove`` parameters are not processable, it will return a ``422`` (Unprocessable Entity) error.
        - If the number of elements in the lists is over the limit, it will return a ``413`` (Payload Too Large) error.

        It will also return the API Global errors described in the API description.
      operationId: update_private_content_of_the_allowlist_of_the_user_v1_allowlist_private__allowlist_id__content_put
      parameters:
        - in: path
          name: allowlist_id
          required: true
          schema:
            format: uuid
            title: Allowlist Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_update_private_content_of_the_allowlist_of_the_user_v1_allowlist_private__allowlist_id__content_put"
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Add or remove content of a private allowlist of the user.
      tags:
        - Allowlist data query and management
  "/v1/allowlist/private/{allowlist_id}/origin":
    put:
      description: |-
        ### What
        Change the status of the origin of an allow list to ``ACTIVE``, ``INACTIVE`` or ``DELETED``.

        An ``ACTIVE`` origin will apply the allow list to the protocol and domain of the origin. An origin can be created and activated simply toogling the ``ACTIVE`` status. As an optional parameter it can be provided an ``ttl`` or Time To Live parameter of the origin in the list in seconds. After the TTL expires, the origin will be removed from the list.  If the TTL is not provided, the origin will never expire.

        An ``INACTIVE`` origin will not apply the allow list to the protocol and domain of the origin.

        A ``DELETED`` origin will be removed from the list. It will not be used by the service anymore. The user can activate it again with the ``ACTIVE`` status.

        This is an asynchronous operation. It can take several seconds until the operation completes, but the request will  immediately return a 202 Accepted response.

        *This operation is not available in the Freemium plan.*

        ### Parameters
        In the query string the ID of the allow list to change the status.
        In the body the JSON object with the following fields:
        - ``origin``: The protocol and domain of the origin. It can be ``http://example.com`` or ``https://example.com``.
        - ``status``: The status of the list. It can be ``ACTIVE``, ``INACTIVE`` or ``DELETED``.

        ### Result
        It should always return a 202 Accepted response with an empty body.

        ### Errors

        If the list does not exist, it will return a 404 error.
        If the status is not ``ACTIVE`` or ``INACTIVE``, it will return a 422 error.
        If the TTL is negative in the past, it will return a 422 error.
        If the allow list is not a valid UUID, it will return a 422 error.
        If the origin is not a valid URL, it will return a 400 error.
        If the allowlist is not active, it will returna 409 error.
        If the origin is not found in the set owned by the user, it will return a 404 error.

        It will return the API Global errors described in the API description.
      operationId: change_status_of_the_origin_allowlist_v1_allowlist_private__allowlist_id__origin_put
      parameters:
        - in: path
          name: allowlist_id
          required: true
          schema:
            format: uuid
            title: Allowlist Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_change_status_of_the_origin_allowlist_v1_allowlist_private__allowlist_id__origin_put"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Toogle the status of the origin in an allow list.
      tags:
        - Allowlist data query and management
  /v1/allowlist/public/all:
    get:
      description: |-
        ### What
        Obtain the set of public allow lists available in the service and also which ones are already selected by the user and wich ones are not.

        ### Parameters
        No parameters

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to the status of all the lists.
        - ``lists``: a list of JSON objects with the available lists:
            - ``self``: the URI to individual information of the list.
            - ``name``: A human readable name of the list.
            - ``description``: A long detailed information about what the list contains and how it is used.
            - ``resource_type``: The type of the list. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.
            - ``list_type``: The type of the list. It can be ``ALLOW`` or ``DENY``.
            - ``status``: The status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``    it means that the list is not available anymore if not renewed.
            - ``created_at``: Unix timestamp in seconds when the list was created.
            - ``updated_at``: Unix timestamp in seconds when the list was updated.

        If the list is already selected by the user, the JSON object will also contain the following fields:
        - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
        - ``origins``: list of websites that are using the list as an allowlist.
            - ``self``: the URI to all the list of origins.
            - ``lists``: list of lists that the origin is using.
                - ``self``: the URI to the individual information of the list.
                - ``origin``: the protocol and domain of the website that is using the list.
                - ``status``: the status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``        it means that the list is not available anymore if not renewed.
                - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
                - ``created_at``: Unix timestamp in seconds when the list was created.
                - ``updated_at``: Unix timestamp in seconds when the list was updated.

        ### Errors

        It will return the API Global errors described in the API description.
      operationId: get_all_public_allowlists_v1_allowlist_public_all_get
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicAclGroupListCollectionOutput"
          description: Successful Response
      security:
        - HTTPBearer: []
      summary: Get the set of public allowlists.
      tags:
        - Allowlist data query and management
  "/v1/allowlist/public/all/{resource_type}":
    get:
      description: |-
        ### What
        Obtain the set of public allow lists available in the service and also which ones are already selected by the user and wich ones are not filtering by the resource type.

        ### Parameters
        The ``resource type`` to filter. The values can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to the status of all the lists.
        - ``lists``: a list of JSON objects with the available lists:
            - ``self``: the URI to individual information of the list.
            - ``name``: A human readable name of the list.
            - ``description``: A long detailed information about what the list contains and how it is used.
            - ``resource_type``: The type of the list. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.
            - ``list_type``: The type of the list. It can be ``ALLOW`` or ``DENY``.
            - ``status``: The status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``    it means that the list is not available anymore if not renewed.
            - ``created_at``: Unix timestamp in seconds when the list was created.
            - ``updated_at``: Unix timestamp in seconds when the list was updated.

        If the list is already selected by the user, the JSON object will also contain the following fields:
        - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
        - ``origins``: list of websites that are using the list as an allowlist.
            - ``self``: the URI to all the list of origins.
            - ``lists``: list of lists that the origin is using.
                - ``self``: the URI to the individual information of the list.
                - ``origin``: the protocol and domain of the website that is using the list.
                - ``status``: the status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``        it means that the list is not available anymore if not renewed.
                - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
                - ``created_at``: Unix timestamp in seconds when the list was created.
                - ``updated_at``: Unix timestamp in seconds when the list was updated.

        ### Errors

        It will return the API Global errors described in the API description.
      operationId: get_all_public_allowlists_by_resource_type_v1_allowlist_public_all__resource_type__get
      parameters:
        - in: path
          name: resource_type
          required: true
          schema:
            enum:
              - cidr
              - country
              - continent
              - as
              - datacenter
              - useragent
            title: Resource Type
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicAclGroupListCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the set of public allowlists by resource type.
      tags:
        - Allowlist data query and management
  "/v1/allowlist/public/ip/{address}":
    get:
      description: |-
        ### What
        Obtain the list of all the different public allowlists where the IP address entered by the user is. The public allowlists are the ones activated by the user, but managed by Threatjammer administrators.

        ### Parameters
        The endpoint accepts the `address` parameter as query string.

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to individual status.
        - ``cidrs``: the URI of the lists of CIDRs where the IP was found.
        - ``country``: the URIs where the lists of countries where the IP address was found
        - ``continent``: the URI where the continent where the IP address was found.
        - ``asn``: the URIs where the list of continents of the ASN where the IP address was found.
        - ``datacenter``: the URIs of the lists of datacenters where the IP address was found. If not found, the result is an empty string.

        ### Errors
        - a `422 Unprocessable Entity` error if the IP address was malformed.

        It will also return the API Global errors described in the API description.
      operationId: query_resource_allowlists_v1_allowlist_public_ip__address__get
      parameters:
        - in: path
          name: address
          required: true
          schema:
            anyOf:
              - format: ipv4
                type: string
              - format: ipv6
                type: string
            title: Address
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AclListCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the different public allowlists where the IP address was found.
      tags:
        - Allowlist data query and management
  /v1/allowlist/public/owned:
    get:
      description: |-
        ### What
        Obtain the set of public allow lists available in the service selected by the user.

        ### Parameters
        No parameters

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to the status of all the lists.
        - ``lists``: a list of JSON objects with the available lists:
            - ``self``: the URI to individual information of the list.
            - ``name``: A human readable name of the list.
            - ``description``: A long detailed information about what the list contains and how it is used.
            - ``resource_type``: The type of the list. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.
            - ``list_type``: The type of the list. It can be ``ALLOW`` or ``DENY``.
            - ``status``: The status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``    it means that the list is not available anymore if not renewed.
            - ``created_at``: Unix timestamp in seconds when the list was created.
            - ``updated_at``: Unix timestamp in seconds when the list was updated.
            - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
            - ``origins``: list of websites that are using the list as an allowlist.
                - ``self``: the URI to all the list of origins.
                - ``lists``: list of lists that the origin is using.
                    - ``self``: the URI to the individual information of the list.
                    - ``origin``: the protocol and domain of the website that is using the list.
                    - ``status``: the status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``            it means that the list is not available anymore if not renewed.
                    - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
                    - ``created_at``: Unix timestamp in seconds when the list was created.
                    - ``updated_at``: Unix timestamp in seconds when the list was updated.

        ### Errors

        It will return the API Global errors described in the API description.
      operationId: get_public_allowlists_owned_by_the_user_v1_allowlist_public_owned_get
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicAclGroupListCollectionOutput"
          description: Successful Response
      security:
        - HTTPBearer: []
      summary: Get the set of owned allowlists.
      tags:
        - Allowlist data query and management
  "/v1/allowlist/public/owned/{resource_type}":
    get:
      description: |-
        ### What
        Obtain the set of public allow lists selected by the user and wich ones are not filtering by the resource type.

        ### Parameters
        The ``resource type`` to filter. The values can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to the status of all the lists.
        - ``lists``: a list of JSON objects with the available lists:
            - ``self``: the URI to individual information of the list.
            - ``name``: A human readable name of the list.
            - ``description``: A long detailed information about what the list contains and how it is used.
            - ``resource_type``: The type of the list. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.
            - ``list_type``: The type of the list. It can be ``ALLOW`` or ``DENY``.
            - ``status``: The status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``    it means that the list is not available anymore if not renewed.
            - ``created_at``: Unix timestamp in seconds when the list was created.
            - ``updated_at``: Unix timestamp in seconds when the list was updated.
            - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
            - ``origins``: list of websites that are using the list as an allowlist.
                - ``self``: the URI to all the list of origins.
                - ``lists``: list of lists that the origin is using.
                    - ``self``: the URI to the individual information of the list.
                    - ``origin``: the protocol and domain of the website that is using the list.
                    - ``status``: the status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``            it means that the list is not available anymore if not renewed.
                    - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
                    - ``created_at``: Unix timestamp in seconds when the list was created.
                    - ``updated_at``: Unix timestamp in seconds when the list was updated.

        ### Errors

        It will return the API Global errors described in the API description.
      operationId: get_all_owned_allowlists_by_resource_type_v1_allowlist_public_owned__resource_type__get
      parameters:
        - in: path
          name: resource_type
          required: true
          schema:
            enum:
              - cidr
              - country
              - continent
              - as
              - datacenter
              - useragent
            title: Resource Type
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicAclGroupListCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the set of public allowlists of a user by resource type.
      tags:
        - Allowlist data query and management
  "/v1/allowlist/public/{allowlist_id}":
    delete:
      description: |-
        ### What
        Delete all the bindings between a user and an allowlist. This will remove the allowlist from the user and also all the origins that are using the allowlist.

         This is an asynchronous operation. It can take several seconds until the operation completes, but the request will  immediately return a 202 Accepted response.

        ### Parameters
        In the query string the ID of the allow list to change the status.

        ### Result
        It should always return a 202 Accepted response with an empty body.

        ### Errors

        If the list does not exist, it will return a 404 error.
        If the allow list is not a valid UUID, it will return a 422 error.

        It will return the API Global errors described in the API description.
      operationId: delete_the_allowlist_v1_allowlist_public__allowlist_id__delete
      parameters:
        - in: path
          name: allowlist_id
          required: true
          schema:
            format: uuid
            title: Allowlist Id
            type: string
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Delete all the bindings between a user and an allowlist.
      tags:
        - Allowlist data query and management
    get:
      description: |-
        ### What
        Obtain the details of an allow list available in the service.

        ### Parameters
        No parameters

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to individual information of the list.
        - ``name``: A human readable name of the list.
        - ``description``: A long detailed information about what the list contains and how it is used.
        - ``resource_type``: The type of the list. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.
        - ``list_type``: The type of the list. It can be ``ALLOW`` or ``DENY``.
        - ``status``: The status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``it means that the list is not available anymore if not renewed.
        - ``created_at``: Unix timestamp in seconds when the list was created.
        - ``updated_at``: Unix timestamp in seconds when the list was updated.

        If the list is already selected by the user, the JSON object will also contain the following fields:
            - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
            - ``origins``: list of websites that are using the list as an allowlist.
                - ``self``: the URI to all the list of origins.
                - ``lists``: list of lists that the origin is using.
                    - ``self``: the URI to the individual information of the list.
                    - ``origin``: the protocol and domain of the website that is using the list.
                    - ``status``: the status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``            it means that the list is not available anymore if not renewed.
                    - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
                    - ``created_at``: Unix timestamp in seconds when the list was created.
                    - ``updated_at``: Unix timestamp in seconds when the list was updated.

        ### Errors

        If the list does not exist, it will return a 404 error.

        It will return the API Global errors described in the API description.
      operationId: get_single_allowlist_v1_allowlist_public__allowlist_id__get
      parameters:
        - in: path
          name: allowlist_id
          required: true
          schema:
            format: uuid
            title: Allowlist Id
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicAclGroupListOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the details of the allowlist.
      tags:
        - Allowlist data query and management
    put:
      description: |-
        ### What
        Change the status of an allow list to ``ACTIVE`` or ``INACTIVE``. An ``INACTIVE`` list will not be used by the service. An ``ACTIVE`` list will be used by the service. As an optional parameter it can be provided an ``expiry`` date in seconds since epoch. If not provided, the list will never expire.

         This is an asynchronous operation. It can take several seconds until the operation completes, but the request will  immediately return a 202 Accepted response.

        ### Parameters
        In the query string the ID of the allow list to change the status.
        In the body the JSON object with the following fields:
        - ``status``: The status of the list. It can be ``ACTIVE`` or ``INACTIVE``.
        - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.

        ### Result
        It should always return a 202 Accepted response with an empty body.

        ### Errors

        If the list does not exist, it will return a 404 error.
        If the status is not ``ACTIVE`` or ``INACTIVE``, it will return a 422 error.
        If the expiry is not a valid timestamp, it will return a 422 error.
        If the allow list is not a valid UUID, it will return a 422 error.

        It will return the API Global errors described in the API description.
      operationId: change_status_of_the_allowlist_v1_allowlist_public__allowlist_id__put
      parameters:
        - in: path
          name: allowlist_id
          required: true
          schema:
            format: uuid
            title: Allowlist Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_change_status_of_the_allowlist_v1_allowlist_public__allowlist_id__put"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Toogle the status of an allow list.
      tags:
        - Allowlist data query and management
  "/v1/allowlist/public/{allowlist_id}/origin":
    put:
      description: |-
        ### What
        Change the status of the origin of an allow list to ``ACTIVE``, ``INACTIVE`` or ``DELETED``.

        An ``ACTIVE`` origin will apply the allow list to the protocol and domain of the origin. An origin can be created and activated simply toogling the ``ACTIVE`` status. As an optional parameter it can be provided an ``ttl`` or Time To Live parameter of the origin in the list in seconds. After the TTL expires, the origin will be removed from the list.  If the TTL is not provided, the origin will never expire.

        An ``INACTIVE`` origin will not apply the allow list to the protocol and domain of the origin.

        A ``DELETED`` origin will be removed from the list. It will not be used by the service anymore. The user can activate it again with the ``ACTIVE`` status.

        This is an asynchronous operation. It can take several seconds until the operation completes, but the request will  immediately return a 202 Accepted response.

        *This operation is not available in the Freemium plan.*

        ### Parameters
        In the query string the ID of the allow list to change the status.
        In the body the JSON object with the following fields:
        - ``origin``: The protocol and domain of the origin. It can be ``http://example.com`` or ``https://example.com``.
        - ``status``: The status of the list. It can be ``ACTIVE``, ``INACTIVE`` or ``DELETED``.

        ### Result
        It should always return a 202 Accepted response with an empty body.

        ### Errors

        If the list does not exist, it will return a 404 error.
        If the status is not ``ACTIVE`` or ``INACTIVE``, it will return a 422 error.
        If the TTL is negative in the past, it will return a 422 error.
        If the allow list is not a valid UUID, it will return a 422 error.
        If the origin is not a valid URL, it will return a 400 error.
        If the allowlist is not active, it will returna 409 error.
        If the origin is not found in the set owned by the user, it will return a 404 error.

        It will return the API Global errors described in the API description.
      operationId: change_status_of_the_origin_allowlist_v1_allowlist_public__allowlist_id__origin_put
      parameters:
        - in: path
          name: allowlist_id
          required: true
          schema:
            format: uuid
            title: Allowlist Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_change_status_of_the_origin_allowlist_v1_allowlist_public__allowlist_id__origin_put"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Toogle the status of the origin in an allow list.
      tags:
        - Allowlist data query and management
  "/v1/asn/ip/{ip_address}":
    get:
      description: |-
        ### What
        Obtain the IPv4 or IPv6 prefix and the Autonomous System information of the IP address passed as a parameter.

        ### Parameters
        The endpoint accepts only the following parameter in the path:
        - ``ip_address``: (Mandatory) The IPv4 or IPv6 address to be queried.

        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI to individual IPv4 prefix.
        - ``asn``: the URI to query the full details of the ASN.
        - ``object_type``: the type of the prefix. The allowed values are: IPv4 or IPv6.
        - ``maintainer``: the information about the maintainer of this prefix in the registry.
        - ``description``: the description of the prefix as registered in the registry.
        - ``registry_date``: the date of registration of the prefix in the registry. The format is YYYY-MM-DD.
        - ``registry_status``: the URI of the status of the prefix as stored in the registry.
        - ``score``: The risk score of the prefix. It ranges from 0 to 99.
        - ``risk``: The risk of the prefix. The allowed values are: LOW, MEDIUM, HIGH. It's a human readable representation of the score.

        ### Errors
        The endpoint will return the following errors:
        - a `404 Not Found` error if the prefix information was not found.
        - a `422 Unprocessable Entity` error if the IP address is malformed.

        It will also return the API Global errors described in the API description.
      operationId: query_IP_address_network_information_v1_asn_ip__ip_address__get
      parameters:
        - in: path
          name: ip_address
          required: true
          schema:
            format: ipvanyaddress
            title: Ip Address
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AutonomousSystemPrefixOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the IPv4 or IPv6 prefix of the IP address given.
      tags:
        - Autonomous Systems information
  /v1/asn/prefix:
    post:
      description: |-
        ### What
        Obtain the IPv4 or IPv6 prefix and the Autonomous System information of the CIDR passed in the body as a POST method. This endpoint works around the problem of passing '/' addresses in the URI.

        ### Parameters
        The endpoint accepts only the following parameter in the body as a JSON object:
        - ``prefix``: (Mandatory) The CIDR v4 or v6 to be queried.

        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI to individual IPv4 prefix.
        - ``asn``: the URI to query the full details of the ASN.
        - ``object_type``: the type of the prefix. The allowed values are: IPv4 or IPv6.
        - ``maintainer``: the information about the maintainer of this prefix in the registry.
        - ``description``: the description of the prefix as registered in the registry.
        - ``registry_date``: the date of registration of the prefix in the registry. The format is YYYY-MM-DD.
        - ``registry_status``: the URI of the status of the prefix as stored in the registry.
        - ``score``: The risk score of the prefix. It ranges from 0 to 99.
        - ``risk``: The risk of the prefix. The allowed values are: LOW, MEDIUM, HIGH. It's a human readable representation of the score.

        ### Errors
        The endpoint will return the following errors:
        - a `404 Not Found` error if the prefix information was not found.
        - a `422 Unprocessable Entity` error if the CIDR is malformed.

        It will also return the API Global errors described in the API description.
      operationId: query_asn_prefix_information_v1_asn_prefix_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_query_asn_prefix_information_v1_asn_prefix_post"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AutonomousSystemPrefixOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the IPv4 or IPv6 prefix of the CIDR given.
      tags:
        - Autonomous Systems information
  /v1/asn/registry/all:
    get:
      description: |-
        ### What
        Obtain the list of Regional Internet Registries (RIRs) entities worldwide.

        ### Parameters
        No parameters are required.

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to individual RIR.
        - ``name``: the RIR name.
        - ``code``: the internal code of the RIR in the system. Possible values are: iana, arin, ripencc, afrinic, apnic, lacnic.

        ### Errors
        It will return the API Global errors described in the API description.
      operationId: query_registry_names_v1_asn_registry_all_get
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/AutonomousSystemRegistryOutput"
                title: Response Query Registry Names V1 Asn Registry All Get
                type: array
          description: Successful Response
      security:
        - HTTPBearer: []
      summary: Get the list of the Regional Internet Registries (RIRs) entities worldwide.
      tags:
        - Autonomous Systems information
  "/v1/asn/registry/{code}":
    get:
      description: |-
        ### What
        Obtain the information about the Regional Internet Registries (RIRs) given as a parameter.

        ### Parameters
        The endpoint accepts only the following parameter in the path:
        - ``code``: (Mandatory) The code that identifies uniquely the RIR. Possible values are: iana, arin, ripencc, afrinic, apnic, lacnic.

        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI to individual RIR.
        - ``name``: the RIR name.
        - ``code``: the internal code of the RIR in the system.

        ### Errors
        - a `422 Unprocessable Entity` error if the code is not one of the available.

        It will also return the API Global errors described in the API description.
      operationId: query_registry_by_the_name_v1_asn_registry__code__get
      parameters:
        - in: path
          name: code
          required: true
          schema:
            enum:
              - iana
              - arin
              - ripencc
              - afrinic
              - apnic
              - lacnic
            title: Code
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AutonomousSystemRegistryOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the information of a Regional Internet Registries (RIRs) given.
      tags:
        - Autonomous Systems information
  /v1/asn/status/all:
    get:
      description: |-
        ### What
        Obtain the list of status of an object can be in a registry.

        ### Parameters
        No parameters are required.

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to individual status.
        - ``name``: the code name.
        - ``code``: the internal code of the status in the system. Possible values are: assigned, reserved, allocated, available.

        ### Errors
        It will return the API Global errors described in the API description.
      operationId: query_status_names_v1_asn_status_all_get
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/AutonomousSystemStatusOutput"
                title: Response Query Status Names V1 Asn Status All Get
                type: array
          description: Successful Response
      security:
        - HTTPBearer: []
      summary: Get the list of status of an object in a registry.
      tags:
        - Autonomous Systems information
  "/v1/asn/status/{code}":
    get:
      description: |-
        ### What
        Obtain the information about the status of an object in the registry as a parameter.

        ### Parameters
        The endpoint accepts only the following parameter in the path:
        - ``code``: (Mandatory) The code that identifies uniquely the status in the registry. Possible values are: assigned, reserved, allocated, available.


        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI to individual status.
        - ``name``: the human readable name of the status.
        - ``code``: the internal code of the status in the system.

        ### Errors
        - a `422 Unprocessable Entity` error if the code is not one of the available.

        It will also return the API Global errors described in the API description.
      operationId: query_status_by_the_name_v1_asn_status__code__get
      parameters:
        - in: path
          name: code
          required: true
          schema:
            enum:
              - assigned
              - reserved
              - available
              - allocated
            title: Code
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AutonomousSystemStatusOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the information of a status given.
      tags:
        - Autonomous Systems information
  "/v1/asn/{number}":
    get:
      description: |-
        ### What
        Obtain the full details of the Autonomous System Number (ASN) passed as a parameter.

        ### Parameters
        The endpoint accepts only the following parameter in the path:
        - ``number``: (Mandatory) The ASN number to be queried.

        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI of the API call
        - ``name``: the name of the Autonomous System as registered in the registries databases.
        - ``description``: the description of the Autonomous System as registered in the registries databases.
        - ``country_code``: the ISO 3166-1 alpha-2 country code of the Autonomous System.
        - ``registry_date``: the date of registration of the Autonomous System in the registry. The format is YYYY-MM-DD.
        - ``registry``: the URI of the registry where the Autonomous System is registered.
        - ``status``: the status of the Autonomous System as stored in the registry.
        - ``prefixes``: the URI to the list of prefixes that belong to the Autonomous System.
        - ``score``: The risk score of the Autonomous System. It ranges from 0 to 99.
        - ``risk``: The risk of the Autonomous System. The allowed values are: LOW, MEDIUM, HIGH. It's a human readable representation of the score.


        ### Errors
        The endpoint will return the following errors:
        - a `404 Not Found` error if the AS was not found.
        - a `422 Unprocessable Entity` error if the AS number is malformed.

        It will also return the API Global errors described in the API description.
      operationId: query_asn_v1_asn__number__get
      parameters:
        - in: path
          name: number
          required: true
          schema:
            title: Number
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AutonomousSystemOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the Autonomous System details of the AS number given.
      tags:
        - Autonomous Systems information
  "/v1/asn/{number}/prefixes":
    get:
      description: |-
        ### What
        Obtain the full list of IPv4 and IPv6 prefixes of the Autonomous System Number (ASN) passed as a parameter.

        ### Parameters
        The endpoint accepts only the following parameter in the path:
        - ``number``: (Mandatory) The ASN number to be queried.

        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI of the API call
        - ``asn``: the URI to query the full details of the ASN.
        - ``prefixes_v4``: the list of IPv4 prefixes that belong to the ASN. Each element of the list is a JSON object with the following structure:
            - ``self``: the URI to individual IPv4 prefix.
            - ``asn``: the URI to query the full details of the ASN.
            - ``object_type``: the type of the prefix. The allowed values are: IPv4.
            - ``maintainer``: the information about the maintainer of this prefix in the registry.
            - ``description``: the description of the prefix as registered in the registry.
            - ``registry_date``: the date of registration of the prefix in the registry. The format is YYYY-MM-DD.
            - ``registry_status``: the URI of the status of the prefix as stored in the registry.
            - ``score``: The risk score of the prefix. It ranges from 0 to 99.
            - ``risk``: The risk of the prefix. The allowed values are: LOW, MEDIUM, HIGH. It's a human readable representation of the score.
        - ``prefixes_v6``: the list of IPv6 prefixes that belong to the ASN. Each element of the list is a JSON object with the following structure:
            - ``self``: the URI to individual IPv6 prefix.
            - ``asn``: the URI to query the full details of the ASN.
            - ``object_type``: the type of the prefix. The allowed values are: IPv6.
            - ``maintainer``: the information about the maintainer of this prefix in the registry.
            - ``description``: the description of the prefix as registered in the registry.
            - ``registry_date``: the date of registration of the prefix in the registry. The format is YYYY-MM-DD.
            - ``registry_status``: the URI of the status of the prefix as stored in the registry.
            - ``score``: The risk score of the prefix. It ranges from 0 to 99.
            - ``risk``: The risk of the prefix. The allowed values are: LOW, MEDIUM, HIGH. It's a human readable representation of the score.

        ### Errors
        The endpoint will return the following errors:
        - a `404 Not Found` error if the AS was not found.
        - a `422 Unprocessable Entity` error if the AS number is malformed.

        It will also return the API Global errors described in the API description.
      operationId: query_asn_prefixes_list_v1_asn__number__prefixes_get
      parameters:
        - in: path
          name: number
          required: true
          schema:
            title: Number
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AutonomousSystemPrefixesOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the list of IPv4 and IPv6 prefixes of the AS number given.
      tags:
        - Autonomous Systems information
  /v1/assess/ip:
    post:
      description: |-
        ### What
        Obtain a numerical score and a risk assessment of all the IP addresses passed as argument.

        ### Parameters
        A list of public IPv4 or IPv6 addresses is required in the body of the request.

        ### Result
        The result contains a list of the result for each IP address, with two main sets of data:
        - The score is a number **between 0 and 99** describing the probability of the IP address being a malicious one, being **0** means that the IP address is not malicious and is not a threat. Being **99** means that the service behind the IP address is probably malicious an certainly a threat.

        - The list of information gathered from the IP address to obtain the score.

        The result is a JSON object with the following structure:
        - ``self``: the URI of the API call
        - ``score``: The score of the IP address. It ranges from 0 to 99.
        - ``risk``: The risk of the IP address. The allowed values are: LOW, MEDIUM, HIGH. It's a human readable representation of the score.
        - ``reason``: It's a human readable representation of the reason of the risk.
        - ``datasets``: The IP address was found in the these lists of datasets used to obtain the risk score. Datasets are described as a list of URIs.
        - ``sources``: The IP address was found in the these source lists at an specific time with a specific risk score. Sources are described as a list of URIs.
        - ``log``: The activity of the IP address in the different datasets used to obtain the risk score. The log is a URI reference.
        - ``asn``: The information about the Autonomous System (AS) of the IP address. The AS is described as an URI.
        - ``asn_prefix``: The information about the Autonomous System (AS) network prefix of the IP address. The prefix is described as an URI.
        - ``datacenter``: If the IP address is part of a datacenter pool, the information about the datacenter is described as an URI.
        - ``datacenter_prefix``: The information about the Datacenter network prefix of the IP address. The `asn_prefix` and `datacenter_prefix` can be the same, but it is not mandatory. The prefix is described as an URI.
        - ``denylisted``: If the IP address was denylisted by the user, the information about the denylisted IP address is described as an URI.
        - ``first_appearence``: URI to the first appearance of the IP address in the different datasets used to obtain the risk score.
        - ``last_appearence``: URI to the last appearance of the IP address in the different datasets used to obtain the risk score.

        ### Errors
        The endpoint will return the following errors:
        - a `422 Unprocessable Entity` error if the IP address is malformed.

        The private IP addresses will be ignored, if any.

        It will also return the API Global errors described in the API description.
      operationId: assess_ip_set_v1_assess_ip_post
      requestBody:
        content:
          application/json:
            schema:
              items:
                format: ipvanyaddress
                type: string
              maxItems: 500
              minItems: 1
              title: Addresses
              type: array
              uniqueItems: true
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/IPAssessmentCollectionOutput"
          description: "The server will return a valid answer in the following cases:"
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the risk score of all IP address passed in the body and other data signals.
      tags:
        - Data assessment
  /v1/assess/ip/csv:
    post:
      description: |-
        ### What
        Obtain a numerical score and a risk assessment of all the IP addresses uploaded with a text file.

        ### Parameters
        - A text file with a list of public IPv4 or IPv6 addresses.
        - A header `Content-Type: multipart/form-data` is required.
        - (optional) in the query string the parameeter `strict_parse`: If set to `true`, no malformed IP addresses allowed, returning an error. If set to `false`, malformed IP addresses will be ignored.

        Example:
        ```
        curl -X 'POST' \
          'https://dublin.api.threatjammer.com/v1/asses/ip/csv[?strict_parse=true|false]' \
          -H 'accept: application/json' \
          -H 'Authorization: Bearer YOUR_API_KEY' \
          -H 'Content-Type: multipart/form-data' \
          -F 'csv_file=@YOUR_TEXT_FILE;type=text/csv'
        ```

        ### Result
        The result contains a list of the result for each IP address, with two main sets of data:
        - The score is a number **between 0 and 99** describing the probability of the IP address being a malicious one, being **0** means that the IP address is not malicious and is not a threat. Being **99** means that the service behind the IP address is probably malicious an certainly a threat.

        - The list of information gathered from the IP address to obtain the score.

        The result is a JSON object with the following structure:
        - ``self``: the URI of the API call
        - ``score``: The score of the IP address. It ranges from 0 to 99.
        - ``risk``: The risk of the IP address. The allowed values are: LOW, MEDIUM, HIGH. It's a human readable representation of the score.
        - ``reason``: It's a human readable representation of the reason of the risk.
        - ``datasets``: The IP address was found in the these lists of datasets used to obtain the risk score. Datasets are described as a list of URIs.
        - ``sources``: The IP address was found in the these source lists at an specific time with a specific risk score. Sources are described as a list of URIs.
        - ``log``: The activity of the IP address in the different datasets used to obtain the risk score. The log is a URI reference.
        - ``asn``: The information about the Autonomous System (AS) of the IP address. The AS is described as an URI.
        - ``asn_prefix``: The information about the Autonomous System (AS) network prefix of the IP address. The prefix is described as an URI.
        - ``datacenter``: If the IP address is part of a datacenter pool, the information about the datacenter is described as an URI.
        - ``datacenter_prefix``: The information about the Datacenter network prefix of the IP address. The `asn_prefix` and `datacenter_prefix` can be the same, but it is not mandatory. The prefix is described as an URI.
        - ``denylisted``: If the IP address was denylisted by the user, the information about the denylisted IP address is described as an URI.
        - ``first_appearence``: URI to the first appearance of the IP address in the different datasets used to obtain the risk score.
        - ``last_appearence``: URI to the last appearance of the IP address in the different datasets used to obtain the risk score.

        ### Errors
        The endpoint will return the following errors:
        - a `422 Unprocessable Entity` error if the IP address is malformed.

        The private IP addresses will be ignored, if any.

        When the `strict_parse` parameter is set to `true`, the endpoint will return the following errors:
        - a `400 Bad Request`.

        It will also return the API Global errors described in the API description.
      operationId: assess_ip_set_csv_v1_assess_ip_csv_post
      parameters:
        - description: When `true`, if any IP address entry in the file is malformed, the assessment is canceled. If `false`, the malformed IP addresses are ignored. Default is `false`.
          in: query
          name: strict_parse
          required: false
          schema:
            default: false
            description: When `true`, if any IP address entry in the file is malformed, the assessment is canceled. If `false`, the malformed IP addresses are ignored. Default is `false`.
            title: Strict Parse
            type: boolean
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_assess_ip_set_csv_v1_assess_ip_csv_post"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/IPAssessmentCollectionOutput"
          description: "The server will return a valid answer in the following cases:"
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the risk score of all IP address uploaded and other data signals.
      tags:
        - Data assessment
  "/v1/assess/ip/{ip_address}":
    get:
      description: |-
        ### What
        Obtain a numerical score and a risk assessment of the IP address passed as argument.

        ### Parameters
        The only argument accepted in the query string is a public IPv4 or IPv6 addresses.

        ### Result
        The result contains two main sets of data:
        - The score is a number **between 0 and 99** describing the probability of the IP address being a malicious one, being **0** means that the IP address is not malicious and is not a threat. Being **99** means that the service behind the IP address is probably malicious an certainly a threat.

        - The list of information gathered from the IP address to obtain the score.

        The result is a JSON object with the following structure:
        - ``self``: the URI of the API call
        - ``score``: The score of the IP address. It ranges from 0 to 99.
        - ``risk``: The risk of the IP address. The allowed values are: LOW, MEDIUM, HIGH. It's a human readable representation of the score.
        - ``reason``: It's a human readable representation of the reason of the risk.
        - ``datasets``: The IP address was found in the these lists of datasets used to obtain the risk score. Datasets are described as a list of URIs.
        - ``sources``: The IP address was found in the these source lists at an specific time with a specific risk score. Sources are described as a list of URIs.
        - ``log``: The activity of the IP address in the different datasets used to obtain the risk score. The log is a URI reference.
        - ``asn``: The information about the Autonomous System (AS) of the IP address. The AS is described as an URI.
        - ``asn_prefix``: The information about the Autonomous System (AS) network prefix of the IP address. The prefix is described as an URI.
        - ``datacenter``: If the IP address is part of a datacenter pool, the information about the datacenter is described as an URI.
        - ``datacenter_prefix``: The information about the Datacenter network prefix of the IP address. The `asn_prefix` and `datacenter_prefix` can be the same, but it is not mandatory. The prefix is described as an URI.
        - ``denylisted``: If the IP address was denylisted by the user, the information about the denylisted IP address is described as an URI.
        - ``first_appearence``: URI to the first appearance of the IP address in the different datasets used to obtain the risk score.
        - ``last_appearence``: URI to the last appearance of the IP address in the different datasets used to obtain the risk score.

        ### Errors
        The endpoint will return the following errors:
        - a `400 Bad Request` error if the IP address is not public.
        - a `422 Unprocessable Entity` error if the IP address is malformed.

        It will also return the API Global errors described in the API description.
      operationId: assess_ip_v1_assess_ip__ip_address__get
      parameters:
        - in: path
          name: ip_address
          required: true
          schema:
            format: ipvanyaddress
            title: Ip Address
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/IPAssessmentOutput"
          description: "The server will return a valid answer in the following cases:"
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get a risk score of the IP address and different data signals.
      tags:
        - Data assessment
  "/v1/datacenter/ip/{ip_address}":
    get:
      description: |-
        ### What
        Obtain the IPv4 or IPv6 prefix and the Datacenter information of the IP address passed as a parameter.

        ### Parameters
        The endpoint accepts only the following parameter in the path:
        - ``ip_address``: (Mandatory) The IPv4 or IPv6 address to be queried.

        ### Result
        - The result is a JSON object with the following structure:
            - ``self``: the URI to individual IPv4 prefix.
            - ``datacenter_id``: the URI to query the full details of the Datacenter.
            - ``score``: The risk score of the prefix. It ranges from 0 to 99.
            - ``risk``: The risk of the prefix. The allowed values are: LOW, MEDIUM, HIGH. It's a human readable representation of the score.
            - ``min_score``: The minimum risk score of the prefix. It ranges from 0 to 99.
            - ``max_score``: The maximum risk score of the prefix. It ranges from 0 to 99.
            - ``ip_abuse_total``: The total number of IPs that have been reported as abuse in the range.


        ### Errors
        The endpoint will return the following errors:
        - a `404 Not Found` error if the prefix information was not found.
        - a `422 Unprocessable Entity` error if the IP address is malformed.

        It will also return the API Global errors described in the API description.
      operationId: query_IP_address_network_information_v1_datacenter_ip__ip_address__get
      parameters:
        - in: path
          name: ip_address
          required: true
          schema:
            format: ipvanyaddress
            title: Ip Address
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatacenterPrefixOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the IPv4 or IPv6 prefix of the IP address given.
      tags:
        - Datacenter information
  /v1/datacenter/prefix:
    post:
      description: |-
        ### What
        Obtain the IPv4 or IPv6 prefix and the Datacenter information of the CIDR passed in the body as a POST method. This endpoint works around the problem of passing '/' addresses in the URI.

        ### Parameters
        The endpoint accepts only the following parameter in the body as a JSON object:
        - ``prefix``: (Mandatory) The CIDR v4 or v6 to be queried.

        ### Result
        - The result is a JSON object with the following structure:
            - ``self``: the URI to individual IPv4 prefix.
            - ``datacenter_id``: the URI to query the full details of the Datacenter.
            - ``score``: The risk score of the prefix. It ranges from 0 to 99.
            - ``risk``: The risk of the prefix. The allowed values are: LOW, MEDIUM, HIGH. It's a human readable representation of the score.
            - ``min_score``: The minimum risk score of the prefix. It ranges from 0 to 99.
            - ``max_score``: The maximum risk score of the prefix. It ranges from 0 to 99.
            - ``ip_abuse_total``: The total number of IPs that have been reported as abuse in the range.


        ### Errors
        The endpoint will return the following errors:
        - a `404 Not Found` error if the prefix information was not found.
        - a `422 Unprocessable Entity` error if the CIDR is malformed.

        It will also return the API Global errors described in the API description.
      operationId: query_datacenter_prefix_information_v1_datacenter_prefix_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_query_datacenter_prefix_information_v1_datacenter_prefix_post"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatacenterPrefixOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the IPv4 or IPv6 prefix of the CIDR given.
      tags:
        - Datacenter information
  "/v1/datacenter/{datacenter_id}":
    get:
      description: |-
        ### What
        Obtain the details of the Datacenter ID passed as a parameter.

        ### Parameters
        The endpoint accepts only the following parameter in the path:
        - ``datacenter_id``: (Mandatory) The internal Datacenter ID to be queried.

        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI of the API call
        - ``name``: the generic name of the Datacenter. The database takes the name from different sources, so it may be different from the real name.
        - ``description``: a full name of the Datacenter. It contains more details about the Datacenter.
        - ``source``: website of the company that owns the Datacenter.
        - ``asn``: the URI to the ASN of the Datacenter.
        - ``status``: the status of the Datacenter. It can be: `enabled` or `disabled`.
        - ``prefixes``: the URI to the list of prefixes that belong to the Datacenter.
        - ``score``: The risk score of the Datacenter. It ranges from 0 to 99.
        - ``risk``: The risk of the Datacenter. The allowed values are: LOW, MEDIUM, HIGH. It's a human readable representation of the score.


        ### Errors
        The endpoint will return the following errors:
        - a `404 Not Found` error if the Datacenter was not found.
        - a `422 Unprocessable Entity` error if the Datacenter is malformed.

        It will also return the API Global errors described in the API description.
      operationId: query_datacenter_v1_datacenter__datacenter_id__get
      parameters:
        - in: path
          name: datacenter_id
          required: true
          schema:
            pattern: ^[A-Z0-9_]+
            title: Datacenter Id
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatacenterOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the Datacenter details of datacente given.
      tags:
        - Datacenter information
  "/v1/datacenter/{datacenter_id}/prefixes":
    get:
      description: |-
        ### What
        Obtain the full list of IPv4 and IPv6 prefixes of the Datacenter passed as a parameter.

        ### Parameters
        The endpoint accepts only the following parameter in the path:
        - ``datacenter_id``: (Mandatory) The internal Datacenter ID to be queried.

        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI of the API call
        - ``datacenter_id``: the URI to query the full details of the Datacenter.
        - ``prefixes_v4``: the list of IPv4 prefixes that belong to the Datacenter. Each element of the list is a JSON object with the following structure:

            - ``self``: the URI to individual IPv4 prefix.
            - ``datacenter_id``: the URI to query the full details of the Datacenter.
            - ``score``: The risk score of the prefix. It ranges from 0 to 99.
            - ``risk``: The risk of the prefix. The allowed values are: LOW, MEDIUM, HIGH. It's a human readable representation of the score.
            - ``min_score``: The minimum risk score of the prefix. It ranges from 0 to 99.
            - ``max_score``: The maximum risk score of the prefix. It ranges from 0 to 99.
            - ``ip_abuse_total``: The total number of IPs that have been reported as abuse in the range.

        - ``prefixes_v6``: the list of IPv6 prefixes that belong to the Datacenter. Each element of the list is a JSON object with the following structure:

            - ``self``: the URI to individual IPv4 prefix.
            - ``datacenter_id``: the URI to query the full details of the Datacenter.
            - ``score``: The risk score of the prefix. It ranges from 0 to 99.
            - ``risk``: The risk of the prefix. The allowed values are: LOW, MEDIUM, HIGH. It's a human readable representation of the score.
            - ``min_score``: The minimum risk score of the prefix. It ranges from 0 to 99.
            - ``max_score``: The maximum risk score of the prefix. It ranges from 0 to 99.
            - ``ip_abuse_total``: The total number of IPs that have been reported as abuse in the range.


        ### Errors
        The endpoint will return the following errors:
        - a `404 Not Found` error if the Datacenter was not found.
        - a `422 Unprocessable Entity` error if the Datacenter number is malformed.

        It will also return the API Global errors described in the API description.
      operationId: query_datacenter_prefixes_list_v1_datacenter__datacenter_id__prefixes_get
      parameters:
        - in: path
          name: datacenter_id
          required: true
          schema:
            title: Datacenter Id
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatacenterPrefixesOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the list of IPv4 and IPv6 prefixes of the Datacenter given.
      tags:
        - Datacenter information
  /v1/dataset/ip:
    get:
      description: |-
        ### What
        Obtain the list of all the datasets available in the platform. A dataset is a collection of different data sources that are related to a specific topic. The name of the dataset describes the specific topic.

        ### Parameters
        No parameters are required.

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to individual status.
        - ``types``: a list of JSON objects with the following fields:
            - ``self``: the URI to individual dataset information.
            - ``type``: what type of dataset is this. The only allowed value is ``ip``.
            - ``name``: the name of the dataset in human readable form.
            - ``description``: a human readable long description of the dataset.
            - ``status``: the status of the dataset. The only allowed value is ``ENABLED``.
            - ``items``: the number of 'live' items in the dataset when the request is performed.

        ### Errors
        It will return the API Global errors described in the API description.
      operationId: query_datataset_information_of_all_the_resource_types_v1_dataset_ip_get
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatasetTypeCollectionOutput"
          description: Successful Response
      security:
        - HTTPBearer: []
      summary: Get the list of all the datasets available in the platform.
      tags:
        - Platform datasets
  "/v1/dataset/ip/{name}":
    get:
      description: |-
        ### What
        Get the detailed information of the dataset queried by the name. A dataset is a collection of different data sources that are related to a specific topic. The name of the dataset describes the specific topic.

        ### Parameters
        The endpoint accepts only the following parameter in the path:
        - ``name``: (Mandatory) The code name that identifies uniquely the dataset in the platform. It must be composed of uppercase letters, numbers and underscores.

        ### Result
        The result is a JSON object with the following fields:
        - ``self``: the URI to individual dataset information.
        - ``type``: what type of dataset is this. The only allowed value is ``ip``.
        - ``name``: the name of the dataset in human readable form.
        - ``description``: a human readable long description of the dataset.
        - ``status``: the status of the dataset. The only allowed value is ``ENABLED``.
        - ``items``: the number of 'live' items in the dataset when the request is performed.

        ### Errors
        - a `404 Not Found` error if the dataset code name was not found.
        - a `422 Unprocessable Entity` error if dataset code name does not follow the naming convention.

        It will also return the API Global errors described in the API description.
      operationId: query_datataset_information_of_the_resource_type_v1_dataset_ip__name__get
      parameters:
        - in: path
          name: name
          required: true
          schema:
            pattern: ^([A-Z0-9\_]+)$
            title: Name
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatasetTypeOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the detailed information of the dataset queried.
      tags:
        - Platform datasets
  /v1/denylist/private:
    post:
      description: |-
        ### What
        Creates a new denylist with the information given and binded to the current user. The parameters are:
         - name
         - description
         - tags
         - expiry
         - Time to Live (TTL)
         - Resource Type (`CIDR`, `AS`, `COUNTRY`, `CONTINENT`, `DATACENTER_ID` and `USER AGENT`)

        This is an asynchronous operation. It can take several seconds until the operation completes, but the request will immediately return a 202 Accepted response. The operation will also return the UUID of the list.

        ### Parameters
        In the query string the ID of the private deny list to delete.

        In the body the following parameters:
        - ``name``: A human readable name of the list.
        - ``description``: A long detailed information about what the list contains and how it is used.
        - ``tags``: A list of tags that describe the list.
        - ``ttl``: (Optional) The Time To Live of the list, in seconds. If it does not exist, it will never expire.
        - ``resource_type``: The type of resource that the list contains. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT``,    ``DATACENTER_ID`` or ``USER AGENT``.

        ### Result
        It should always return a 202 Accepted response with the UUID of the new list in the body.

        ### Errors

        - If the information is not valid, it will return a `422` (Unprocessable Entity) error.
        - If the ttl is negative, it will return a `400` (Bad Request) error.

        It will return the API Global errors described in the API description.
      operationId: create_private_denylist_of_the_user_v1_denylist_private_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_create_private_denylist_of_the_user_v1_denylist_private_post"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                format: uuid
                title: Response Create Private Denylist Of The User V1 Denylist Private Post
                type: string
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Creates a new private denylist binded to the user.
      tags:
        - Denylist data query and management
  /v1/denylist/private/all:
    get:
      description: |-
        ### What
        Obtain the set of private deny lists of the user available in the service. These lists are different datasets:
        - Lists that are part of the automatically reported data from the Report IP, focused on honeypots and automaticreporting from external sources. The name is `External sources reported CIDRs`.
        - Lists that are part of the automatically denylisted by the Threat Jammer service. The name is `Default denylist`.
        - Lists that are created by the user.

        ### Parameters
        No parameters

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to the status of all the lists.
        - ``lists``: a list of JSON objects with the available lists:
            - ``self``: the URI to individual information of the list.
            - ``name``: A human readable name of the list.
            - ``description``: A long detailed information about what the list contains and how it is used.
            - ``resource_type``: The type of the list. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.
            - ``list_type``: The type of the list. It can be ``ALLOW`` or ``DENY``.
            - ``created_at``: Unix timestamp in seconds when the list was created.
            - ``updated_at``: Unix timestamp in seconds when the list was updated.
            - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
            - ``origins``: list of websites that are using the list as a denylist.
                - ``self``: the URI to all the list of origins.
                - ``lists``: list of lists that the origin is using.
                    - ``self``: the URI to the individual information of the list.
                    - ``origin``: the protocol and domain of the website that is using the list.
                    - ``status``: the status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED`` it means that the list is not available anymore if not renewed.
                    - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
                    - ``created_at``: Unix timestamp in seconds when the list was created.
                    - ``updated_at``: Unix timestamp in seconds when the list was updated.

        ### Errors

        It will return the API Global errors described in the API description.
      operationId: get_all_private_denylists_v1_denylist_private_all_get
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrivateAclGroupListCollectionOutput"
          description: Successful Response
      security:
        - HTTPBearer: []
      summary: Get the set of private denylists of the user.
      tags:
        - Denylist data query and management
  "/v1/denylist/private/all/{resource_type}":
    get:
      description: |-
        ### What
        Obtain the set of private deny lists of the user available in the service filtering by resource type. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``

         These lists are different datasets:
        - Lists that are part of the automatically reported data from the Report IP, focused on honeypots and automaticreporting from external sources. The name is `External sources reported CIDRs`. The resource type is ``CIDR``.
        - Lists that are part of the automatically denylisted by the Threat Jammer service. The name is `Default denylist`. The resource type is ``CIDR``.
        - Lists that are created by the user.

        ### Parameters
        The ``resource type`` to filter. The values can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to the status of all the lists.
        - ``lists``: a list of JSON objects with the available lists:
            - ``self``: the URI to individual information of the list.
            - ``name``: A human readable name of the list.
            - ``description``: A long detailed information about what the list contains and how it is used.
            - ``resource_type``: The type of the list. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.
            - ``list_type``: The type of the list. It can be ``ALLOW`` or ``DENY``.
            - ``created_at``: Unix timestamp in seconds when the list was created.
            - ``updated_at``: Unix timestamp in seconds when the list was updated.
            - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
            - ``origins``: list of websites that are using the list as a denylist.
                - ``self``: the URI to all the list of origins.
                - ``lists``: list of lists that the origin is using.
                    - ``self``: the URI to the individual information of the list.
                    - ``origin``: the protocol and domain of the website that is using the list.
                    - ``status``: the status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED`` it means that the list is not available anymore if not renewed.
                    - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
                    - ``created_at``: Unix timestamp in seconds when the list was created.
                    - ``updated_at``: Unix timestamp in seconds when the list was updated.

        ### Errors

        - If the resource type is not valid, it will return a ``422`` (Unprocessable Entity) error.

        It will also return the API Global errors described in the API description.
      operationId: get_all_private_denylists_by_resource_type_v1_denylist_private_all__resource_type__get
      parameters:
        - in: path
          name: resource_type
          required: true
          schema:
            enum:
              - cidr
              - country
              - continent
              - as
              - datacenter
              - useragent
            title: Resource Type
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrivateAclGroupListCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the set of private denylists of the user by resource type.
      tags:
        - Denylist data query and management
  "/v1/denylist/private/ip/{address}":
    get:
      description: |-
        ### What
        Obtain the list of all the different denylists where the IP address entered by the user. The denylisted forbidden datasets are the ones submitted manually by the user from files or indidual items.

        ### Parameters
        The endpoint accepts the `address` parameter as query string.

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to individual status.
        - ``cidrs``: the URI of the lists of CIDRs where the IP was found.
        - ``country``: the URIs where the lists of countries where the IP address was found
        - ``continent``: the URI where the continent where the IP address was found.
        - ``asn``: the URIs where the list of continents of the ASN where the IP address was found.
        - ``datacenter``: the URIs of the lists of datacenters where the IP address was found. If not found, the result is an empty string.
        - ``reported``: the URI of the information of the IP address reported by the user.

        ### Errors
        - a `422 Unprocessable Entity` error if the IP address was malformed.

        It will also return the API Global errors described in the API description.
      operationId: query_resource_denylists_v1_denylist_private_ip__address__get
      parameters:
        - in: path
          name: address
          required: true
          schema:
            anyOf:
              - format: ipv4
                type: string
              - format: ipv6
                type: string
            title: Address
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AclListCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the different denylists where the IP address was found.
      tags:
        - Denylist data query and management
  "/v1/denylist/private/{denylist_id}":
    delete:
      description: |-
        ### What
        Delete all the bindings between a user and a private denylist. This will remove the content of the denylist, the denylist from the user and also all the origins that are using the denylist.

        This is an asynchronous operation. It can take several seconds until the operation completes, but the request willimmediately return a 202 Accepted response.

        The default lists ``External sources reported CIDRs`` and ``Default denylist`` cannot be deleted, but can be emptied. Please refer to the documentation to delete the content.

        ### Parameters
        In the query string the ID of the private deny list to delete.

        ### Result
        It should always return a 202 Accepted response with an empty body.

        ### Errors

        - If the list does not exist, it will return a `404` (Not found) error.
        - If the list is a default list, it will return a `403` (Forbidden) error.
        - If the deny list is not a valid UUID, it will return a `422` (Unprocessable Entity) error.

        It will return the API Global errors described in the API description.
      operationId: delete_the_denylist_v1_denylist_private__denylist_id__delete
      parameters:
        - in: path
          name: denylist_id
          required: true
          schema:
            format: uuid
            title: Denylist Id
            type: string
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Delete all the bindings between a user and a private denylist.
      tags:
        - Denylist data query and management
    get:
      description: |-
        ### What
        Obtain the details of the private deny list of the user available in the service.

        ### Parameters
        Pass the private denylist ID as query parameter.

        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI to individual information of the list.
        - ``name``: A human readable name of the list.
        - ``description``: A long detailed information about what the list contains and how it is used.
        - ``resource_type``: The type of the list. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.
        - ``list_type``: The type of the list. It can be ``ALLOW`` or ``DENY``.
        - ``created_at``: Unix timestamp in seconds when the list was created.
        - ``updated_at``: Unix timestamp in seconds when the list was updated.
        - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
        - ``origins``: list of websites that are using the list as a denylist.
            - ``self``: the URI to all the list of origins.
            - ``lists``: list of lists that the origin is using.
                - ``self``: the URI to the individual information of the list.
                - ``origin``: the protocol and domain of the website that is using the list.
                - ``status``: the status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED`` it means that the list is not available anymore if not renewed.
                - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
                - ``created_at``: Unix timestamp in seconds when the list was created.
                - ``updated_at``: Unix timestamp in seconds when the list was updated.

        ### Errors

        - If the deny list is not a valid UUID, it will return a ``422`` (Unprocessable Entity) error.
        - If the private denylist ID does not exist, it will return a ``404`` (Not found) error.

        It will also return the API Global errors described in the API description.
      operationId: get_single_denylist_v1_denylist_private__denylist_id__get
      parameters:
        - in: path
          name: denylist_id
          required: true
          schema:
            format: uuid
            title: Denylist Id
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrivateAclGroupListOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the details of a specific private denylist of the user.
      tags:
        - Denylist data query and management
    put:
      description: |-
        ### What
        Updates the information that describes the denylist of the user in the system. The parameters that can be modified are:
         - name
         - description
         - tags
         - expiry

        This is an asynchronous operation. It can take several seconds until the operation completes, but the request will immediately return a 202 Accepted response.

        The default lists ``External sources reported CIDRs`` and ``Default denylist`` cannot be updated.

        ### Parameters
        In the query string the ID of the private deny list to delete.

        In the body the following parameters:
        - ``name``: (Optional) A human readable name of the list.
        - ``description``: (Optional) A long detailed information about what the list contains and how it is used.
        - ``tags``: (Optional) A list of tags that describe the list.
        - ``expiry``: (Optional) Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.

        ### Result
        It should always return a 202 Accepted response with an empty body.

        ### Errors

        - If the list does not exist, it will return a `404` (Not found) error.
        - If the list is a default list, it will return a `403` (Forbidden) error.
        - If the deny list is not a valid UUID, it will return a `422` (Unprocessable Entity) error.
        - If the expiry is not a valid timestamp, it will return a `422` (Unprocessable Entity) error.
        - If the expiry is in the past, it will return a `400` (Bad Request) error.
        - If the name is not a string, it will return a `422` (Unprocessable Entity) error.
        - If the description is not a string, it will return a `422` (Unprocessable Entity) error.

        It will return the API Global errors described in the API description.
      operationId: update_private_denylist_of_the_user_v1_denylist_private__denylist_id__put
      parameters:
        - in: path
          name: denylist_id
          required: true
          schema:
            format: uuid
            title: Denylist Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_update_private_denylist_of_the_user_v1_denylist_private__denylist_id__put"
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Update the information of an existing private denylist of the user.
      tags:
        - Denylist data query and management
  "/v1/denylist/private/{denylist_id}/content":
    delete:
      description: |-
        ### What
        Delete all the content of a private denylist of the user. This will remove all the elements, and there is no way to recover them.

        ### Parameters
        Pass the private denylist ID as query parameter.

        ### Result
        If successful, it will return a ``202`` (Accepted) response with an empty body. The operation is asynchronous,and can take several seconds to complete.

        ### Errors

        - If the deny list is not a valid UUID, it will return a ``422`` (Unprocessable Entity) error.
        - If the private denylist ID does not exist, it will return a ``404`` (Not found) error.

        It will also return the API Global errors described in the API description.
      operationId: delete_the_denylist_content_v1_denylist_private__denylist_id__content_delete
      parameters:
        - in: path
          name: denylist_id
          required: true
          schema:
            format: uuid
            title: Denylist Id
            type: string
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Delete all the content of a private denylist of the user.
      tags:
        - Denylist data query and management
    get:
      description: |-
        ### What
        Returns the content of the private denylist of the user. The content can be CIDRs, ASNs, countries, continents or    datacenter IDs.

        ### Parameters
        Pass the private denylist ID as query parameter.

        The following pagination parameters are required as query string parameters:
        - ``page``: (Optional) the page number to retrieve. The first page is 1. Default is 1.
        - ``page_size``: (Optional) the number of items per page. Default is 20.


        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI to the content of the list.
        - ``cidrs``: (Optional) list of CIDRs in the list.
        - ``asns``: (Optional) list of ASNs in the list.
        - ``countries``: (Optional) list of countries in the list.
        - ``continents``: (Optional) list of continents in the list.
        - ``datacenters``: (Optional) list of datacenters in the list.

        ### Errors

        - If the deny list is not a valid UUID, it will return a ``422`` (Unprocessable Entity) error.
        - If the private denylist ID does not exist, it will return a ``404`` (Not found) error.

        It will also return the API Global errors described in the API description.
      operationId: get_denylist_content_v1_denylist_private__denylist_id__content_get
      parameters:
        - in: path
          name: denylist_id
          required: true
          schema:
            format: uuid
            title: Denylist Id
            type: string
        - description: The page to be returned
          in: query
          name: page
          required: false
          schema:
            default: 1
            description: The page to be returned
            title: Page number
            type: integer
            x-min: 1
        - description: The number of items per page
          in: query
          name: page_size
          required: false
          schema:
            default: 20
            description: The number of items per page
            title: Page size
            type: integer
            x-max: 100
            x-min: 5
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrivateAclListCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the content of a private denylist of the user.
      tags:
        - Denylist data query and management
    put:
      description: |-
        ### What
        Add or remove content of a private denylist of the user. The content can be CIDRs, ASNs, countries, continents or datacenter IDs.

         The number of elements allowed in all the lists are limited depending on the plan of the user:
        - Free: 100 elements
        - Basic: 1000 elements
        - Pro: 10000 elements

        ### Parameters
        Pass the private denylist ID as query parameter.

        In the body the following parameters:
        - ``append``: (Optional) Add CIDRs, ASNs, countries, continents or datacenter IDs to add to the list. It's not possible to mix different resource types in the same list.
        - ``remove``: (Optional) Extract CIDRs, ASNs, countries, continents or datacenter IDs to add to the list. It's not possible to mix different resource types in the same list.


        ### Result
        If successful, it will return a ``202`` (Accepted) response with an empty body. The operation is asynchronous,and can take several seconds to complete.

        ### Errors

        - If the deny list is not a valid UUID, it will return a ``422`` (Unprocessable Entity) error.
        - If the private denylist ID does not exist, it will return a ``404`` (Not found) error.
        - If the ``append`` or ``remove`` parameters are not processable, it will return a ``422`` (Unprocessable Entity) error.
        - If the number of elements in the lists is over the limit, it will return a ``413`` (Payload Too Large) error.

        It will also return the API Global errors described in the API description.
      operationId: update_private_content_of_the_denylist_of_the_user_v1_denylist_private__denylist_id__content_put
      parameters:
        - in: path
          name: denylist_id
          required: true
          schema:
            format: uuid
            title: Denylist Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_update_private_content_of_the_denylist_of_the_user_v1_denylist_private__denylist_id__content_put"
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Add or remove content of a private denylist of the user.
      tags:
        - Denylist data query and management
  "/v1/denylist/private/{denylist_id}/origin":
    put:
      description: |-
        ### What
        Change the status of the origin of a deny list to ``ACTIVE``, ``INACTIVE`` or ``DELETED``.

        An ``ACTIVE`` origin will apply the deny list to the protocol and domain of the origin. An origin can be created and activated simply toogling the ``ACTIVE`` status. As an optional parameter it can be provided an ``ttl`` or Time To Live parameter of the origin in the list in seconds. After the TTL expires, the origin will be removed from the list.  If the TTL is not provided, the origin will never expire.

        An ``INACTIVE`` origin will not apply the deny list to the protocol and domain of the origin.

        A ``DELETED`` origin will be removed from the list. It will not be used by the service anymore. The user can activate it again with the ``ACTIVE`` status.

        This is an asynchronous operation. It can take several seconds until the operation completes, but the request will  immediately return a 202 Accepted response.

        *This operation is not available in the Freemium plan.*

        ### Parameters
        In the query string the ID of the deny list to change the status.
        In the body the JSON object with the following fields:
        - ``origin``: The protocol and domain of the origin. It can be ``http://example.com`` or ``https://example.com``.
        - ``status``: The status of the list. It can be ``ACTIVE``, ``INACTIVE`` or ``DELETED``.

        ### Result
        It should always return a 202 Accepted response with an empty body.

        ### Errors

        If the list does not exist, it will return a 404 error.
        If the status is not ``ACTIVE`` or ``INACTIVE``, it will return a 422 error.
        If the TTL is negative in the past, it will return a 422 error.
        If the deny list is not a valid UUID, it will return a 422 error.
        If the origin is not a valid URL, it will return a 400 error.
        If the denylist is not active, it will returna 409 error.
        If the origin is not found in the set owned by the user, it will return a 404 error.

        It will return the API Global errors described in the API description.
      operationId: change_status_of_the_origin_denylist_v1_denylist_private__denylist_id__origin_put
      parameters:
        - in: path
          name: denylist_id
          required: true
          schema:
            format: uuid
            title: Denylist Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_change_status_of_the_origin_denylist_v1_denylist_private__denylist_id__origin_put"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Toogle the status of the origin in a deny list.
      tags:
        - Denylist data query and management
  /v1/denylist/public/all:
    get:
      description: |-
        ### What
        Obtain the set of public deny lists available in the service and also which ones are already selected by the user and wich ones are not.

        ### Parameters
        No parameters

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to the status of all the lists.
        - ``lists``: a list of JSON objects with the available lists:
            - ``self``: the URI to individual information of the list.
            - ``name``: A human readable name of the list.
            - ``description``: A long detailed information about what the list contains and how it is used.
            - ``resource_type``: The type of the list. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.
            - ``list_type``: The type of the list. It can be ``ALLOW`` or ``DENY``.
            - ``status``: The status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``    it means that the list is not available anymore if not renewed.
            - ``created_at``: Unix timestamp in seconds when the list was created.
            - ``updated_at``: Unix timestamp in seconds when the list was updated.

        If the list is already selected by the user, the JSON object will also contain the following fields:
        - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
        - ``origins``: list of websites that are using the list as an denylist.
            - ``self``: the URI to all the list of origins.
            - ``lists``: list of lists that the origin is using.
                - ``self``: the URI to the individual information of the list.
                - ``origin``: the protocol and domain of the website that is using the list.
                - ``status``: the status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``        it means that the list is not available anymore if not renewed.
                - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
                - ``created_at``: Unix timestamp in seconds when the list was created.
                - ``updated_at``: Unix timestamp in seconds when the list was updated.

        ### Errors

        It will return the API Global errors described in the API description.
      operationId: get_all_public_denylists_v1_denylist_public_all_get
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicAclGroupListCollectionOutput"
          description: Successful Response
      security:
        - HTTPBearer: []
      summary: Get the set of public denylists.
      tags:
        - Denylist data query and management
  "/v1/denylist/public/all/{resource_type}":
    get:
      description: |-
        ### What
        Obtain the set of public deny lists available in the service and also which ones are already selected by the user and wich ones are not filtering by the resource type.

        ### Parameters
        The ``resource type`` to filter. The values can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to the status of all the lists.
        - ``lists``: a list of JSON objects with the available lists:
            - ``self``: the URI to individual information of the list.
            - ``name``: A human readable name of the list.
            - ``description``: A long detailed information about what the list contains and how it is used.
            - ``resource_type``: The type of the list. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.
            - ``list_type``: The type of the list. It can be ``ALLOW`` or ``DENY``.
            - ``status``: The status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``    it means that the list is not available anymore if not renewed.
            - ``created_at``: Unix timestamp in seconds when the list was created.
            - ``updated_at``: Unix timestamp in seconds when the list was updated.

        If the list is already selected by the user, the JSON object will also contain the following fields:
        - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
        - ``origins``: list of websites that are using the list as an denylist.
            - ``self``: the URI to all the list of origins.
            - ``lists``: list of lists that the origin is using.
                - ``self``: the URI to the individual information of the list.
                - ``origin``: the protocol and domain of the website that is using the list.
                - ``status``: the status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``        it means that the list is not available anymore if not renewed.
                - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
                - ``created_at``: Unix timestamp in seconds when the list was created.
                - ``updated_at``: Unix timestamp in seconds when the list was updated.

        ### Errors

        It will return the API Global errors described in the API description.
      operationId: get_all_public_denylists_by_resource_type_v1_denylist_public_all__resource_type__get
      parameters:
        - in: path
          name: resource_type
          required: true
          schema:
            enum:
              - cidr
              - country
              - continent
              - as
              - datacenter
              - useragent
            title: Resource Type
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicAclGroupListCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the set of public denylists by resource type.
      tags:
        - Denylist data query and management
  "/v1/denylist/public/ip/{address}":
    get:
      description: |-
        ### What
        Obtain the list of all the different public denylists where the IP address entered by the user is. The public denylists are the ones activated by the user, but managed by Threatjammer administrators.

        ### Parameters
        The endpoint accepts the `address` parameter as query string.

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to individual status.
        - ``cidrs``: the URI of the lists of CIDRs where the IP was found.
        - ``country``: the URIs where the lists of countries where the IP address was found
        - ``continent``: the URI where the continent where the IP address was found.
        - ``asn``: the URIs where the list of continents of the ASN where the IP address was found.
        - ``datacenter``: the URIs of the lists of datacenters where the IP address was found. If not found, the result is an empty string.

        ### Errors
        - a `422 Unprocessable Entity` error if the IP address was malformed.

        It will also return the API Global errors described in the API description.
      operationId: query_resource_denylists_v1_denylist_public_ip__address__get
      parameters:
        - in: path
          name: address
          required: true
          schema:
            anyOf:
              - format: ipv4
                type: string
              - format: ipv6
                type: string
            title: Address
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AclListCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the different public denylists where the IP address was found.
      tags:
        - Denylist data query and management
  /v1/denylist/public/owned:
    get:
      description: |-
        ### What
        Obtain the set of public deny lists available in the service selected by the user.

        ### Parameters
        No parameters

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to the status of all the lists.
        - ``lists``: a list of JSON objects with the available lists:
            - ``self``: the URI to individual information of the list.
            - ``name``: A human readable name of the list.
            - ``description``: A long detailed information about what the list contains and how it is used.
            - ``resource_type``: The type of the list. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.
            - ``list_type``: The type of the list. It can be ``ALLOW`` or ``DENY``.
            - ``status``: The status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``    it means that the list is not available anymore if not renewed.
            - ``created_at``: Unix timestamp in seconds when the list was created.
            - ``updated_at``: Unix timestamp in seconds when the list was updated.
            - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
            - ``origins``: list of websites that are using the list as an denylist.
                - ``self``: the URI to all the list of origins.
                - ``lists``: list of lists that the origin is using.
                    - ``self``: the URI to the individual information of the list.
                    - ``origin``: the protocol and domain of the website that is using the list.
                    - ``status``: the status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``            it means that the list is not available anymore if not renewed.
                    - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
                    - ``created_at``: Unix timestamp in seconds when the list was created.
                    - ``updated_at``: Unix timestamp in seconds when the list was updated.

        ### Errors

        It will return the API Global errors described in the API description.
      operationId: get_public_denylists_owned_by_the_user_v1_denylist_public_owned_get
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicAclGroupListCollectionOutput"
          description: Successful Response
      security:
        - HTTPBearer: []
      summary: Get the set of owned denylists.
      tags:
        - Denylist data query and management
  "/v1/denylist/public/owned/{resource_type}":
    get:
      description: |-
        ### What
        Obtain the set of public deny lists selected by the user and wich ones are not filtering by the resource type.

        ### Parameters
        The ``resource type`` to filter. The values can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to the status of all the lists.
        - ``lists``: a list of JSON objects with the available lists:
            - ``self``: the URI to individual information of the list.
            - ``name``: A human readable name of the list.
            - ``description``: A long detailed information about what the list contains and how it is used.
            - ``resource_type``: The type of the list. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.
            - ``list_type``: The type of the list. It can be ``ALLOW`` or ``DENY``.
            - ``status``: The status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``    it means that the list is not available anymore if not renewed.
            - ``created_at``: Unix timestamp in seconds when the list was created.
            - ``updated_at``: Unix timestamp in seconds when the list was updated.
            - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
            - ``origins``: list of websites that are using the list as an denylist.
                - ``self``: the URI to all the list of origins.
                - ``lists``: list of lists that the origin is using.
                    - ``self``: the URI to the individual information of the list.
                    - ``origin``: the protocol and domain of the website that is using the list.
                    - ``status``: the status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``            it means that the list is not available anymore if not renewed.
                    - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
                    - ``created_at``: Unix timestamp in seconds when the list was created.
                    - ``updated_at``: Unix timestamp in seconds when the list was updated.

        ### Errors

        It will return the API Global errors described in the API description.
      operationId: get_all_owned_denylists_by_resource_type_v1_denylist_public_owned__resource_type__get
      parameters:
        - in: path
          name: resource_type
          required: true
          schema:
            enum:
              - cidr
              - country
              - continent
              - as
              - datacenter
              - useragent
            title: Resource Type
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicAclGroupListCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the set of public denylists of a user by resource type.
      tags:
        - Denylist data query and management
  "/v1/denylist/public/{denylist_id}":
    delete:
      description: |-
        ### What
        Delete all the bindings between a user and an denylist. This will remove the denylist from the user and also all the origins that are using the denylist.

         This is an asynchronous operation. It can take several seconds until the operation completes, but the request will  immediately return a 202 Accepted response.

        ### Parameters
        In the query string the ID of the deny list to change the status.

        ### Result
        It should always return a 202 Accepted response with an empty body.

        ### Errors

        If the list does not exist, it will return a 404 error.
        If the deny list is not a valid UUID, it will return a 422 error.

        It will return the API Global errors described in the API description.
      operationId: delete_the_denylist_v1_denylist_public__denylist_id__delete
      parameters:
        - in: path
          name: denylist_id
          required: true
          schema:
            format: uuid
            title: Denylist Id
            type: string
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Delete all the bindings between a user and an denylist.
      tags:
        - Denylist data query and management
    get:
      description: |-
        ### What
        Obtain the details of an deny list available in the service.

        ### Parameters
        No parameters

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to individual information of the list.
        - ``name``: A human readable name of the list.
        - ``description``: A long detailed information about what the list contains and how it is used.
        - ``resource_type``: The type of the list. It can be ``CIDR``, ``AS``, ``COUNTRY``, ``CONTINENT`` or ``DATACENTER_ID``.
        - ``list_type``: The type of the list. It can be ``ALLOW`` or ``DENY``.
        - ``status``: The status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``it means that the list is not available anymore if not renewed.
        - ``created_at``: Unix timestamp in seconds when the list was created.
        - ``updated_at``: Unix timestamp in seconds when the list was updated.

        If the list is already selected by the user, the JSON object will also contain the following fields:
            - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
            - ``origins``: list of websites that are using the list as an denylist.
                - ``self``: the URI to all the list of origins.
                - ``lists``: list of lists that the origin is using.
                    - ``self``: the URI to the individual information of the list.
                    - ``origin``: the protocol and domain of the website that is using the list.
                    - ``status``: the status of the list. It can be ``ACTIVE`` or ``INACTIVE`` or ``EXPIRED``. If the list is ``EXPIRED``            it means that the list is not available anymore if not renewed.
                    - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.
                    - ``created_at``: Unix timestamp in seconds when the list was created.
                    - ``updated_at``: Unix timestamp in seconds when the list was updated.

        ### Errors

        If the list does not exist, it will return a 404 error.

        It will return the API Global errors described in the API description.
      operationId: get_single_denylist_v1_denylist_public__denylist_id__get
      parameters:
        - in: path
          name: denylist_id
          required: true
          schema:
            format: uuid
            title: Denylist Id
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicAclGroupListOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the details of the denylist.
      tags:
        - Denylist data query and management
    put:
      description: |-
        ### What
        Change the status of an deny list to ``ACTIVE`` or ``INACTIVE``. An ``INACTIVE`` list will not be used by the service. An ``ACTIVE`` list will be used by the service. As an optional parameter it can be provided an ``expiry`` date in seconds since epoch. If not provided, the list will never expire.

         This is an asynchronous operation. It can take several seconds until the operation completes, but the request will  immediately return a 202 Accepted response.

        ### Parameters
        In the query string the ID of the deny list to change the status.
        In the body the JSON object with the following fields:
        - ``status``: The status of the list. It can be ``ACTIVE`` or ``INACTIVE``.
        - ``expiry``: Unix timestamp in seconds when the list will expire. If it does not exist, it will never expire.

        ### Result
        It should always return a 202 Accepted response with an empty body.

        ### Errors

        If the list does not exist, it will return a 404 error.
        If the status is not ``ACTIVE`` or ``INACTIVE``, it will return a 422 error.
        If the expiry is not a valid timestamp, it will return a 422 error.
        If the deny list is not a valid UUID, it will return a 422 error.

        It will return the API Global errors described in the API description.
      operationId: change_status_of_the_denylist_v1_denylist_public__denylist_id__put
      parameters:
        - in: path
          name: denylist_id
          required: true
          schema:
            format: uuid
            title: Denylist Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_change_status_of_the_denylist_v1_denylist_public__denylist_id__put"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Toogle the status of an deny list.
      tags:
        - Denylist data query and management
  "/v1/denylist/public/{denylist_id}/origin":
    put:
      description: |-
        ### What
        Change the status of the origin of a deny list to ``ACTIVE``, ``INACTIVE`` or ``DELETED``.

        An ``ACTIVE`` origin will apply the deny list to the protocol and domain of the origin. An origin can be created and activated simply toogling the ``ACTIVE`` status. As an optional parameter it can be provided an ``ttl`` or Time To Live parameter of the origin in the list in seconds. After the TTL expires, the origin will be removed from the list.  If the TTL is not provided, the origin will never expire.

        An ``INACTIVE`` origin will not apply the deny list to the protocol and domain of the origin.

        A ``DELETED`` origin will be removed from the list. It will not be used by the service anymore. The user can activate it again with the ``ACTIVE`` status.

        This is an asynchronous operation. It can take several seconds until the operation completes, but the request will  immediately return a 202 Accepted response.

        *This operation is not available in the Freemium plan.*

        ### Parameters
        In the query string the ID of the deny list to change the status.
        In the body the JSON object with the following fields:
        - ``origin``: The protocol and domain of the origin. It can be ``http://example.com`` or ``https://example.com``.
        - ``status``: The status of the list. It can be ``ACTIVE``, ``INACTIVE`` or ``DELETED``.

        ### Result
        It should always return a 202 Accepted response with an empty body.

        ### Errors

        If the list does not exist, it will return a 404 error.
        If the status is not ``ACTIVE`` or ``INACTIVE``, it will return a 422 error.
        If the TTL is negative in the past, it will return a 422 error.
        If the deny list is not a valid UUID, it will return a 422 error.
        If the origin is not a valid URL, it will return a 400 error.
        If the denylist is not active, it will returna 409 error.
        If the origin is not found in the set owned by the user, it will return a 404 error.

        It will return the API Global errors described in the API description.
      operationId: change_status_of_the_origin_denylist_v1_denylist_public__denylist_id__origin_put
      parameters:
        - in: path
          name: denylist_id
          required: true
          schema:
            format: uuid
            title: Denylist Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_change_status_of_the_origin_denylist_v1_denylist_public__denylist_id__origin_put"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Toogle the status of the origin in a deny list.
      tags:
        - Denylist data query and management
  /v1/denylist/reported/ip:
    get:
      description: |-
        ### What
        Obtain the list of all the IPv4 or IPv6 addresses that have been automatically reported by the user. A user can report automatically an IP address with the asynchronous API. The reported IP addresses differ from the ones managed with the endpoint ``/v1/denylist/private/ip/%s``. As a rule of thumb,
         the reported IP addresses are the ones submitted by devices like honeypots, firewalls, log engines, etc. The denylisted IP addresses are the ones submitted manually by the user from files or indidual items.

        ### Parameters
        The endpoint accepts the following parameters in the query string:
        - ``dataset``: (Optional) Name of the dataset to filter the query. If not given, then all datasets are queried. If given, then only the changes logged in the given dataset are returned. The list of datasets is obtained from the ``/v1/dataset/ip`` endpoint.
        - ``reported_before``: (Optional) The UNIX timestamp in milliseconds of the earliest reported date to be included in the query. If not given, then the earliest date is current time.
        - ``reported_after``: (Optional) The UNIX timestamp in milliseconds of the oldest reported date to be included in the query. If not given, then the oldest date is the first event logged.
        - ``expires_before``: (Optional) The UNIX timestamp in milliseconds of the earliest expiry date to be included in the query. If not given, then the earliest date is current time.
        - ``expires_after``: (Optional) The UNIX timestamp in milliseconds of the oldest expiry date to be included in the query. If not given, then the oldest date is the first event logged.
        - ``greater_than``: (Optional) Restricts the result displaying only the IP addresses reported more times than the given value. It must be an integer greater than 0.
        - ``less_than``: (Optional) Restricts the result displaying only the IP addresses reported less times than the given value. It must be an integer greater than 0.
        - ``ip_protocol_version``: (Optional) Restricts the result displaying only the IP addresses with the given IP protocol version. Values are: ALL, IPV4, IPV6. If not given, then all IP addresses are returned.
        - ``output_format``: (Optional) The format of the output. Values are: JSON, CSV, AWS-WAF. If not given, then the default format is JSON. AWS-WAF is the format used by AWS WAF to import ipsets in the service. You can find more information about AWS WAF import [here](https://docs.aws.amazon.com/waf/latest/APIReference/API_CreateIPSet.html).

        ### Result
        The result is a JSON object with a list of the following JSON objects:
        - ``self``: the URI to individual status.
        - ``addresses``: a list of JSON objects with the following fields:
            - ``self``: the URI to individual reported IP information.
            - ``last_report``: Unix timestamp in milliseconds when the IP address was last reported.
            - ``expiry``: Unix timestamp in milliseconds when the IP address will expire and be removed.
            - ``total_reports``: Total number of reports for the IP address.
            - ``protocol``: IP protocol version of the IP address. Same value as the ``ip_protocol_version`` parameter if given.
            - ``dataset``: Name of the dataset where the IP address was reported. Must be a value from the ``/v1/dataset/ip`` endpoint.
            - ``tags``: A list of strings with the tags associated to the IP address at the origin device. It helps to classify the origin of the report.

        ### Errors
        - a `400 Bad Request` error if any timestamp is in the future.
        - a `400 Bad Request` error if the dataset is not a string that can have numbers, upper and lower case letters, and underscores.
        - a `404 Not Found` error if the dataset was not found.
        - a `422 Unprocessable Entity` error if some of the parameters are malformed.

        It will also return the API Global errors described in the API description.
      operationId: query_all_the_ip_addresses_reported_by_the_user_v1_denylist_reported_ip_get
      parameters:
        - description: The dataset list type to filter for. Must be uppercase, numbers and underscore
          in: query
          name: dataset
          required: false
          schema:
            description: The dataset list type to filter for. Must be uppercase, numbers and underscore
            pattern: ^([A-Z0-9\_]+)$
            title: Dataset
            type: string
        - description: Restricts the result displaying only the IP addresses reported before `reported_before`. It must be a UNIX timestamp in seconds.
          in: query
          name: reported_before
          required: false
          schema:
            description: Restricts the result displaying only the IP addresses reported before `reported_before`. It must be a UNIX timestamp in seconds.
            title: Reported Before
            type: integer
        - description: Restricts the result displaying only the IP addresses reported after `reported_after`. It must be a UNIX timestamp in seconds.
          in: query
          name: reported_after
          required: false
          schema:
            description: Restricts the result displaying only the IP addresses reported after `reported_after`. It must be a UNIX timestamp in seconds.
            title: Reported After
            type: integer
        - description: Restricts the result displaying only the IP addresses that will expire before `expires_before`. It must be a UNIX timestamp in seconds greater than the current UNIX timestamp.
          in: query
          name: expires_before
          required: false
          schema:
            description: Restricts the result displaying only the IP addresses that will expire before `expires_before`. It must be a UNIX timestamp in seconds greater than the current UNIX timestamp.
            title: Expires Before
            type: integer
        - description: Restricts the result displaying only the IP addresses that will expire after `expires_after`. It must be a UNIX timestamp in seconds greater than the current UNIX timestamp.
          in: query
          name: expires_after
          required: false
          schema:
            description: Restricts the result displaying only the IP addresses that will expire after `expires_after`. It must be a UNIX timestamp in seconds greater than the current UNIX timestamp.
            title: Expires After
            type: integer
        - description: Restricts the result displaying only the IP addresses reported more times than `greater_than`. It must be an integer greater than 0.
          in: query
          name: greater_than
          required: false
          schema:
            description: Restricts the result displaying only the IP addresses reported more times than `greater_than`. It must be an integer greater than 0.
            title: Greater Than
            type: integer
        - description: Restricts the result displaying only the IP addresses reported less times than `less_than`. It must be an integer greater than 1.
          in: query
          name: less_than
          required: false
          schema:
            description: Restricts the result displaying only the IP addresses reported less times than `less_than`. It must be an integer greater than 1.
            title: Less Than
            type: integer
        - description: Restrict the result displaying the IP protocol version requested (IPV4 or IPV6) or both (ALL). Some output formats MUST filter by IP protocol version first.
          in: query
          name: ip_protocol_version
          required: false
          schema:
            default: ALL
            description: Restrict the result displaying the IP protocol version requested (IPV4 or IPV6) or both (ALL). Some output formats MUST filter by IP protocol version first.
            enum:
              - ALL
              - IPV4
              - IPV6
            title: Ip Protocol Version
            type: string
        - description: The output format of the datasets.
          in: query
          name: output_format
          required: false
          schema:
            default: JSON
            description: The output format of the datasets.
            enum:
              - JSON
              - CSV
              - AWS-WAF
            title: Output Format
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/IPListCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the list of automatically reported IP addresses by the user.
      tags:
        - Denylist data query and management
  /v1/denylist/reported/ip/all:
    delete:
      description: |-
        ### What
        Delete all the IP addresses that have been automatically reported by the user. This option cannot be reverted.

        ### Parameters
        No parameters are required.

        ### Result
        A successful result is an empty response with the the HTTP status code ``204 No Content``.

        ### Errors
        It will return the API Global errors described in the API description.
      operationId: delete_all_ip_addresses_reported_by_the_user_v1_denylist_reported_ip_all_delete
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
      security:
        - HTTPBearer: []
      summary: Delete all the automatically reported IP addresses by the user.
      tags:
        - Denylist data query and management
  "/v1/denylist/reported/ip/{ip_address}":
    delete:
      description: |-
        ### What
        Delete an IP address that was automatically reported by the user. This option cannot be reverted.

        ### Parameters
        The endpoint accepts the following parameters in the path:
        - ``ip_address``: (Mandatory) The public IPv4 or IPv6 addresses to be deleted.

        ### Result
        A successful result is an empty response with the the HTTP status code ``204 No Content``.

        ### Errors
        - a `422 Unprocessable Entity` error if the IP address is malformed.

        It will also return the API Global errors described in the API description.
      operationId: delete_an_ip_address_reported_by_the_user_v1_denylist_reported_ip__ip_address__delete
      parameters:
        - in: path
          name: ip_address
          required: true
          schema:
            format: ipvanyaddress
            title: Ip Address
            type: string
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Delete the automatically reported IP address by the user.
      tags:
        - Denylist data query and management
    get:
      description: |-
        ### What
        Obtain the details of an IPv4 or IPv6 addresses that have been automatically reported by the user. A user can report automatically an IP address with the asynchronous API. The reported IP address differs from the ones managed with the endpoint ``/v1/denylist/private/ip/%s``. As a rule of thumb,
         the reported IP addresses are the ones submitted by devices like honeypots, firewalls, log engines, etc. The denylisted IP addresses are the ones submitted manually by the user from files or indidual items.

        ### Parameters
        The endpoint accepts the following parameters in the path:
        - ``ip_address``: (Mandatory) The public IPv4 or IPv6 addresses to be queried.

        ### Result
        The result is a JSON object with the following fields:
        - ``self``: the URI to individual reported IP information.
        - ``last_report``: Unix timestamp in milliseconds when the IP address was last reported.
        - ``expiry``: Unix timestamp in milliseconds when the IP address will expire and be removed.
        - ``total_reports``: Total number of reports for the IP address.
        - ``protocol``: IP protocol version of the IP address. Values can be IPV4 or IPV6.
        - ``dataset``: Name of the dataset where the IP address was reported. Must be a value from the ``/v1/dataset/ip`` endpoint.
        - ``tags``: A list of strings with the tags associated to the IP address at the origin device. It helps to classify the origin of the report.

        ### Errors
        - a `422 Unprocessable Entity` error if the IP address is malformed.

        It will also return the API Global errors described in the API description.
      operationId: query_an_ip_addresses_reported_by_the_user_v1_denylist_reported_ip__ip_address__get
      parameters:
        - in: path
          name: ip_address
          required: true
          schema:
            format: ipvanyaddress
            title: Ip Address
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/IPListOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the details of an automatically reported IP addresses by the user.
      tags:
        - Denylist data query and management
  /v1/geo:
    post:
      description: |-
        ### What
        Get the geo location data of all the IP addresses passed as argument. This information includes:
        - Latitude and longitude
        - Time zone
        - Accuracy radius
        - Postal code
        - City name
        - Region
        - Country
        - Country of the service provider
        - Continent
        - Reverse PTR hostnames

        ### Parameters
        A list of public IPv4 or IPv6 addresses is required in the body of the request.

        ### Result
        The result contains a list of the result for each IP address, with the following data set:

        The result is a JSON object with the following structure:
        - ``self``: the URI of the API call
        - ``accuracy_radius``:  The radius in kilometers around the specified location where the IP address is likely to be.
        - ``asn_country_iso_code``: The ISO code of the country of the Autonomous System (AS) owner of the IP address.
        - ``city_geoname_code``:``: City geoname code. The geoname code by [GeoNames](https://en.wikipedia.org/wiki/GeoNames) is a unique identifier assigned to each geographical point on the globe.
        - ``city_name``:``: City name, in english. The developer can use the geoname code to localize the name of the city.
        - ``continent_code``: The continent code. It can be any of the following: AF, AN, AS, EU, NA, OC, SA.
        - ``country_iso_code``: The country ISO 3166-1 alpha-2 code.
        - ``hostnames``: The list of hostnames associated with the IP address obtained from the reverse DNS lookup.
        - ``latitude``: The latitude of the geolocation.
        - ``longitude``: The longitude of the geolocation.
        - ``postal_code``:``: The postal code of the city.
        - ``region_geoname_code``:``: The geoname code of the region.
        - ``region_name``:``: The region name, in english. The developer can use the geoname code to localize the name of the region.
        - ``time_zone``: The name of the time zone.


        ### Errors
        The endpoint will return the following errors:
        - a `422 Unprocessable Entity` error if the IP address is malformed.

        The private IP addresses will be ignored, if any.

        It will also return the API Global errors described in the API description.
      operationId: geolocate_ip_set_v1_geo_post
      requestBody:
        content:
          application/json:
            schema:
              items:
                format: ipvanyaddress
                type: string
              maxItems: 500
              minItems: 1
              title: Addresses
              type: array
              uniqueItems: true
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GeoIPCollectionOutput"
          description: "The server will return a valid answer in the following cases:"
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the geolocation data of the IP addresses set.
      tags:
        - Geolocation
  /v1/geo/csv:
    post:
      description: |-
        ### What
        Get the geo location data of all the IP addresses uploaded in a text file. This information includes:
        - Latitude and longitude
        - Time zone
        - Accuracy radius
        - Postal code
        - City name
        - Region
        - Country
        - Country of the service provider
        - Continent
        - Reverse PTR hostnames

        ### Parameters
        - A text file with a list of public IPv4 or IPv6 addresses.
        - A header `Content-Type: multipart/form-data` is required.
        - (optional) in the query string the parameeter `strict_parse`: If set to `true`, no malformed IP addresses allowed, returning an error. If set to `false`, malformed IP addresses will be ignored.

        Example:
        ```
        curl -X 'POST' \
          'https://dublin.api.threatjammer.com/v1/geo/csv[?strict_parse=true|false]' \
          -H 'accept: application/json' \
          -H 'Authorization: Bearer YOUR_API_KEY' \
          -H 'Content-Type: multipart/form-data' \
          -F 'csv_file=@YOUR_TEXT_FILE;type=text/csv'
        ```

        ### Result
        The result contains a list of the result for each IP address, with the following data set:

        The result is a JSON object with the following structure:
        - ``self``: the URI of the API call
        - ``accuracy_radius``:  The radius in kilometers around the specified location where the IP address is likely to be.
        - ``asn_country_iso_code``: The ISO code of the country of the Autonomous System (AS) owner of the IP address.
        - ``city_geoname_code``:``: City geoname code. The geoname code by [GeoNames](https://en.wikipedia.org/wiki/GeoNames) is a unique identifier assigned to each geographical point on the globe.
        - ``city_name``:``: City name, in english. The developer can use the geoname code to localize the name of the city.
        - ``continent_code``: The continent code. It can be any of the following: AF, AN, AS, EU, NA, OC, SA.
        - ``country_iso_code``: The country ISO 3166-1 alpha-2 code.
        - ``hostnames``: The list of hostnames associated with the IP address obtained from the reverse DNS lookup.
        - ``latitude``: The latitude of the geolocation.
        - ``longitude``: The longitude of the geolocation.
        - ``postal_code``:``: The postal code of the city.
        - ``region_geoname_code``:``: The geoname code of the region.
        - ``region_name``:``: The region name, in english. The developer can use the geoname code to localize the name of the region.
        - ``time_zone``: The name of the time zone.


        ### Errors
        The endpoint will return the following errors:
        - a `422 Unprocessable Entity` error if the IP address is malformed.

        The private IP addresses will be ignored, if any.

        When the `strict_parse` parameter is set to `true`, the endpoint will return the following errors:
        - a `400 Bad Request`.

        It will also return the API Global errors described in the API description.
      operationId: assess_ip_set_csv_v1_geo_csv_post
      parameters:
        - description: When `true`, if any IP address entry in the file is malformed, the assessment is canceled. If `false`, the malformed IP addresses are ignored. Default is `false`.
          in: query
          name: strict_parse
          required: false
          schema:
            default: false
            description: When `true`, if any IP address entry in the file is malformed, the assessment is canceled. If `false`, the malformed IP addresses are ignored. Default is `false`.
            title: Strict Parse
            type: boolean
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_assess_ip_set_csv_v1_geo_csv_post"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GeoIPCollectionOutput"
          description: "The server will return a valid answer in the following cases:"
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the geolocation data of all the IP addresses uploaded.
      tags:
        - Geolocation
  "/v1/geo/{ip_address}":
    get:
      description: |-
        ### What
        Get the geo location data of the IP address passed as argument. This information includes:
        - Latitude and longitude
        - Time zone
        - Accuracy radius
        - Postal code
        - City name
        - Region
        - Country
        - Country of the service provider
        - Continent
        - Reverse PTR hostnames


        ### Parameters
        The only argument accepted in the query string is a public IPv4 or IPv6 addresses.

        ### Result
        The result contains the following set of data:

        The result is a JSON object with the following structure:
        - ``self``: the URI of the API call
        - ``accuracy_radius``:  The radius in kilometers around the specified location where the IP address is likely to be.
        - ``asn_country_iso_code``: The ISO code of the country of the Autonomous System (AS) owner of the IP address.
        - ``city_geoname_code``:``: City geoname code. The geoname code by [GeoNames](https://en.wikipedia.org/wiki/GeoNames) is a unique identifier assigned to each geographical point on the globe.
        - ``city_name``:``: City name, in english. The developer can use the geoname code to localize the name of the city.
        - ``continent_code``: The continent code. It can be any of the following: AF, AN, AS, EU, NA, OC, SA.
        - ``country_iso_code``: The country ISO 3166-1 alpha-2 code.
        - ``hostnames``: The list of hostnames associated with the IP address obtained from the reverse DNS lookup.
        - ``latitude``: The latitude of the geolocation.
        - ``longitude``: The longitude of the geolocation.
        - ``postal_code``:``: The postal code of the city.
        - ``region_geoname_code``:``: The geoname code of the region.
        - ``region_name``:``: The region name, in english. The developer can use the geoname code to localize the name of the region.
        - ``time_zone``: The name of the time zone.


        ### Errors
        The endpoint will return the following errors:
        - a `400 Bad Request` error if the IP address is not public.
        - a `422 Unprocessable Entity` error if the IP address is malformed.

        It will also return the API Global errors described in the API description.
      operationId: geolocate_ip_v1_geo__ip_address__get
      parameters:
        - in: path
          name: ip_address
          required: true
          schema:
            format: ipvanyaddress
            title: Ip Address
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GeoIPOutput"
          description: "The server will return a valid answer in the following cases:"
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the geo location data of the IP address.
      tags:
        - Geolocation
  "/v1/log/ip/id/{logchange_id}":
    get:
      description: |-
        ### What
        Obtain the full detail of a specific log change.

        ### Parameters
        The endpoint accepts only the following parameters in the path:
        - ``logchange_id``: (Mandatory) A unique integer of the change event log.

        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI of the API call
        - ``cidr``: The CIDR affected by the change.
        - ``score``: The score of the IP address when the event happened. It ranges from 0 to 99.
        - ``risk``: The risk of the IP address when the event happened. The allowed values are: LOW, MEDIUM, HIGH. It's a human readable representation of the score.
        - ``dataset``: The URI of the dataset where the change was logged.
        - ``source``: The URI of the data source where the change was found.
        - ``lapse``: The time elapsed between the event found and the moment the source was queried. The possible values are: 1H, 6H, 12H, 1D, 7D, 30D, 90D, 180D, 365D.
        - ``action``: The action that was performed on the IP address. The allowed values are: ADD, DELETE.
        - ``timestamp``: The UNIX timestamp in milliseconds when the change was logged.


        ### Errors
        The endpoint will return the following errors:
        - a `404 Not Found` error if there is no event in the log with the ``logchange_ID`` given.
        - a `422 Unprocessable Entity` error if the ``logchange_ID`` is malformed.

        It will also return the API Global errors described in the API description.
      operationId: log_change_id_v1_log_ip_id__logchange_id__get
      parameters:
        - in: path
          name: logchange_id
          required: true
          schema:
            title: Logchange Id
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/IPLogOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get a log event.
      tags:
        - Data logging
  "/v1/log/ip/{ip_address}":
    get:
      description: |-
        ### What
        Obtain a list of changes logged in the different datasets of the IP address given.

        ### Parameters
        The endpoint accepts the following parameters in the path:
        - ``ip_address``: (Mandatory) The public IPv4 or IPv6 addresses to be queried.

        The endpoint accepts the following parameters in the query string:
        - ``dataset``: (Optional) Name of the dataset to filter the query. If not given, then all datasets are queried. If given, then only the changes logged in the given dataset are returned. The list of datasets is obtained from the ``/v1/dataset/ip`` endpoint.
        - ``logged_after``: (Optional) The UNIX timestamp in milliseconds of the earliest date to be included in the query. If not given, then the earliest date is the date of the first change logged in the dataset.


        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI of the API call
        - ``logs``: The list of log changes. Each element of the list is a JSON object of a specific log change with the structure described in the endpoint ``/v1/log/ip/id/logchange_id``.
        ### Errors
        The endpoint will return the following errors:
        - a `400 Bad Request` error if the IP address is not public.
        - a `400 Bad Request` error if the timestamp is in the future.
        - a `400 Bad Request` error if the dataset is not a string that can have numbers, upper and lower case letters, and underscores.
        - a `404 Not Found` error if the dataset was not found.
        - a `422 Unprocessable Entity` error if the IP address is malformed.

        It will also return the API Global errors described in the API description.
      operationId: logchanges_ip_v1_log_ip__ip_address__get
      parameters:
        - description: The IPv4 or IPv6 address to asses the risk
          in: path
          name: ip_address
          required: true
          schema:
            description: The IPv4 or IPv6 address to asses the risk
            format: ipvanyaddress
            title: IP Address
            type: string
        - description: The name of the dataset to restrict the query
          in: query
          name: dataset
          required: false
          schema:
            description: The name of the dataset to restrict the query
            pattern: ^([A-Z0-9\_]+)$
            title: Dataset
            type: string
        - description: A UNIX timestamp in milliseconds to restrict the results of the query to entries logged after this value.
          in: query
          name: logged_after
          required: false
          schema:
            description: A UNIX timestamp in milliseconds to restrict the results of the query to entries logged after this value.
            title: Entry logged after timestamp
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/IPLogCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the changes logged in the different datasets of an IP address.
      tags:
        - Data logging
  /v1/origin:
    get:
      description: |-
        ### What
        Obtain the attributes of the origin of the user passed as argument in the selected region. The purpose of this function is to display the information of configuration of the origin and also access to the live data of the origin.

        The origin is a combination of protocol and domain (Ex: https://example.com) and the origin token is a special key used in conjunction with javascript library used for abuse detection. This key is owned by the user and is used to identify the origin of the request.
         Hence, the protocol and domain of the origin must be the one where the javascript is loaded.

        ### Parameters
        In the querystring of the request, add the origin of the user to the `query` parameter with the following format:1. Protocol: Can be ``http`` or ``https``.
        2. Domain: The domain of the origin.

        Then, the origin must be urlencoded. Example:
        ```
        https://example.com
        ```

        ```
        https%3A%2F%2Fexample.com
        ```

        The querystring must be like this:
        ```
        ?query=https%3A%2F%2Fexample.com
        ```

        ### Result
        The result is a JSON object with the following fields:
        - ``self``: the URI to the request to obtain the full details of an origin.
        - ``origin``: the protocol and the domain where the origin token is valid.
        - ``status``: the status of the origin token. The only allowed values are ``ENABLED`` and ``DISABLED``.
        - ``token``: the URI to the request to obtain the token of the origin.
        - ``data``: a JSON object containing all the parameters of the origin as key-value pairs.
        - ``logs``: the URI to the request to obtain the log activity in the origin.
        - ``addresses``: the URI to the request to obtain the list of IP addresses active in the origin.
        - ``cookies``: the URI to the request to obtain the list of cookies active in the origin.
        - ``created_at``: the date and time when the origin token was created in UNIX timestamp in milliseconds.
        - ``updated_at``: the date and time when the origin token was last updated in UNIX timestamp in milliseconds.

        ### Errors
        - a `404 Not Found` error if the origin token is not found.
        - a `400 Bad Request` error if the origin does not have the correct format.

        It will return the API Global errors described in the API description.
      operationId: query_origin_information_v1_origin_get
      parameters:
        - description: The origin site to query
          in: query
          name: query
          required: true
          schema:
            description: The origin site to query
            title: Origin
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OriginOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the information of an origin of the user in the region.
      tags:
        - Origin management in this region
    put:
      description: |-
        ### What
        Modify the configuration metadata of the origin of the user in the selected region.

        The origin is a combination of protocol and domain (Ex: https://example.com) and the origin token is a special key used in conjunction with javascript library used for abuse detection. This key is owned by the user and is used to identify the origin of the request.
         Hence, the protocol and domain of the origin must be the one where the javascript is loaded.

        ### Parameters
        In the body of the request, add the `origin` of the user and the `config` parameter with the following format for the `origin`:1. Protocol: Can be ``http`` or ``https``.
        2. Domain: The domain of the origin.

        The `config` parameter is a JSON object containing the configuration of the origin. It only accepts the existing parameters obtained from the `GET` request of the origin. If the parameter is not present in the `config` object, it will fail to store it. It's not necessary to send all the parameters, only the ones that need to be updated.

        ### Result
        The result is the JSON object with all the new values of the origin configuration.

        ### Errors
        - a `404 Not Found` error if the origin token is not found.
        - a `400 Bad Request` error if the origin does not have the correct format.
        - a `400 Bad Request` error if the `config` parameter is not a JSON object or unknown parameters are sent.

        It will return the API Global errors described in the API description.
      operationId: update_configuration_origin_v1_origin_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_update_configuration_origin_v1_origin_put"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                title: Response Update Configuration Origin V1 Origin Put
                type: object
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Update the configuration of an origin of the user in the region.
      tags:
        - Origin management in this region
  /v1/origin/addresses:
    get:
      description: |-
        ### What

        Obtain the status that trigger the change in the status of the origin of a specific IP address. The status will also describe the current state of the status and the information that triggered the change.

        The origin is a combination of protocol and domain (Ex: https://example.com) and the origin token is a special key used in conjunction with javascript library used for abuse detection. This key is owned by the user and is used to identify the origin of the request.
         Hence, the protocol and domain of the origin must be the one where the javascript is loaded.

        ### Parameters
        In the querystring of the request, add the origin of the user to the `query` parameter with the following format:1. Protocol: Can be ``http`` or ``https``.
        2. Domain: The domain of the origin.

        Then, the origin must be urlencoded. Example:
        ```
        https://example.com
        ```

        ```
        https%3A%2F%2Fexample.com
        ```

        The querystring must be like this:
        ```
        ?query=https%3A%2F%2Fexample.com
        ```

        ### Result
        The result is a JSON object with the following fields:
        - ``self``: the URI to the request to obtain the full details of the status of an origin.
        - ``addresses``: a list of JSON objects with the following fields:
            - ``address``: the IP address of the origin.
            - ``status``: the status of IP address for the given origin.
            - ``log_id``: the ID of the log that triggered the change in the status of the origin.
            - ``expiry``: the date and time when the origin status will expire in UNIX timestamp in milliseconds.
            - ``created_at``: the date and time when the origin status was created in UNIX timestamp in milliseconds.
            - ``updated_at``: the date and time when the origin status was last updated in UNIX timestamp in milliseconds.

        ### Errors
        - a `404 Not Found` error if the origin is not found.
        - a `400 Bad Request` error if the origin does not have the correct format.

        It will return the API Global errors described in the API description.
      operationId: query_origin_address_status_information_v1_origin_addresses_get
      parameters:
        - description: The origin site to query
          in: query
          name: query
          required: true
          schema:
            description: The origin site to query
            title: Origin
            type: string
        - description: The page to be returned
          in: query
          name: page
          required: false
          schema:
            default: 1
            description: The page to be returned
            title: Page number
            type: integer
            x-min: 1
        - description: The number of items per page
          in: query
          name: page_size
          required: false
          schema:
            default: 20
            description: The number of items per page
            title: Page size
            type: integer
            x-max: 100
            x-min: 5
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OriginAddressStatusCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the address status of the origin of the user in the region.
      tags:
        - Origin management in this region
  /v1/origin/all:
    get:
      description: |-
        ### What
        Obtain the attributes of all the origins of the user in the selected region. The purpose of this function is to display the information of configuration of the origins and also access to the live data of the origins.

        The origin is a combination of protocol and domain (Ex: https://example.com) and the origin token is a special key used in conjunction with javascript library used for abuse detection. This key is owned by the user and is used to identify the origin of the request.
         Hence, the protocol and domain of the origin must be the one where the javascript is loaded.

        ### Parameters
        No parameters are required.

        ### Result
        The result is a list of JSON objects with the following fields:
        - ``self``: the URI to the request to obtain all the origins of the user.
        - ``origins``: A list of JSON objects with the following fields:
            - ``self``: the URI to the request to obtain the full details of an origin.
            - ``origin``: the protocol and the domain where the origin token is valid.
            - ``status``: the status of the origin token. The only allowed values are ``ENABLED`` and ``DISABLED``.
            - ``token``: the URI to the request to obtain the token of the origin.
            - ``data``: a JSON object containing all the parameters of the origin as key-value pairs.
            - ``logs``: the URI to the request to obtain the log activity in the origin.
            - ``addresses``: the URI to the request to obtain the list of IP addresses active in the origin.
            - ``cookies``: the URI to the request to obtain the list of cookies active in the origin.
            - ``created_at``: the date and time when the origin token was created in UNIX timestamp in milliseconds.
            - ``updated_at``: the date and time when the origin token was last updated in UNIX timestamp in milliseconds.

        ### Errors
        It will return the API Global errors described in the API description.
      operationId: query_all_origin_information_v1_origin_all_get
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OriginCollectionOutput"
          description: Successful Response
      security:
        - HTTPBearer: []
      summary: Get the information of the origins of the user in the region.
      tags:
        - Origin management in this region
  /v1/origin/client/analysis:
    get:
      description: |-
        ### What
        Obtain the type of clients of trhe traffic in the specified time range and interval. Thequery will return the number of requests and the different type of CLIENTs and CRAWLERs.

        The origin is a combination of protocol and domain (Ex: https://example.com) and the origin token is a special key used in conjunction with javascript library used for abuse detection. This key is owned by the user and is used to identify the origin of the request.
         Hence, the protocol and domain of the origin must be the one where the javascript is loaded.

        ### Parameters
        In the querystring of the request, add the origin of the user to the `query` parameter with the following format:1. Protocol: Can be ``http`` or ``https``.
        2. Domain: The domain of the origin.

        Then, the origin must be urlencoded. Example:
        ```
        https://example.com
        ```

        ```
        https%3A%2F%2Fexample.com
        ```

        The querystring must be like this:
        ```
        ?query=https%3A%2F%2Fexample.com
        ```

        To restrict the query to a specific time range, add the following parameters to the querystring:
        - ``from_timestamp``: the start date and time of the analysis in UNIX timestamp in milliseconds.
        - ``to_timestamp``: (Optional) the end date and time of the analysis in UNIX timestamp in milliseconds.
        - ``interval``: (Optional) the interval of the analysis in minutes. The default value is 60 minutes (HOURLY). Possible values are: ``HOURLY``.

        ### Result
        The result is a JSON object with the following fields:
        - ``self``: the URI to the request to obtain the traffic client analysis for the origin.
        - ``from_timestamp``: the start date and time of the analysis in UNIX timestamp in milliseconds.
        - ``to_timestamp``: the end date and time of the analysis in UNIX timestamp in milliseconds.
        - ``interval``: the interval of the analysis. Possible values are: ``HOURLY``.
        - ``data``: a JSON list with the following elements each one with the following fields:
            - ``timestamp``: the date and time of the analysis in UNIX timestamp in milliseconds.
            - ``total``: the total number of requests.
            - ``client_*``: the number of requests from a specific client. The possible clients are: ``browser``, ``crawler``, ``email``, ``library``, ``mobile_browser``, ``multimedia_player``, ``offline_browser``, ``unrecognized``, ``ua_anonymizer``, ``validator``, ``wap_browser``.
            - ``crawler_*``: the number of requests from a specific crawler. The possible crawlers are:``feed_fetcher``, ``link_checker``, ``marketing``, ``screenshot_creator``, ``search_engine_bot``,``site_monitor``, ``speed_tester``, ``tool``, ``uncategorized``, ``unrecognized``, ``virus_scanner``,``vulnerability_scanner``, ``web_scraper``.

        ### Errors
        - a `404 Not Found` error if the origin token is not found.
        - a `400 Bad Request` error if the origin does not have the correct format.

        It will return the API Global errors described in the API description.
      operationId: query_origin_traffic_client_v1_origin_client_analysis_get
      parameters:
        - description: The origin site to query
          in: query
          name: query
          required: true
          schema:
            description: The origin site to query
            title: Origin
            type: string
        - description: The data inteval to aggregate the result dataset
          in: query
          name: interval
          required: true
          schema:
            description: The data inteval to aggregate the result dataset
            enum:
              - HOURLY
            title: Interval
            type: string
        - description: A UNIX timestamp in milliseconds to restrict the results of the query to entries logged after or equal to this value.
          in: query
          name: from_timestamp
          required: true
          schema:
            description: A UNIX timestamp in milliseconds to restrict the results of the query to entries logged after or equal to this value.
            title: From Timestamp
            type: integer
        - description: A UNIX timestamp in milliseconds to restrict the results of the query to entries logged before this value.
          in: query
          name: to_timestamp
          required: false
          schema:
            description: A UNIX timestamp in milliseconds to restrict the results of the query to entries logged before this value.
            title: To Timestamp
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OriginClientAnalysisCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the type of clients of the trafffic of the origin.
      tags:
        - Origin management in this region
  /v1/origin/cookies:
    get:
      description: |-
        ### What

        Obtain the status that trigger the change in the status of the origin of the cookie ID used to track the users. The status will also describe the current state of the status and the information that triggered the change.

        The origin is a combination of protocol and domain (Ex: https://example.com) and the origin token is a special key used in conjunction with javascript library used for abuse detection. This key is owned by the user and is used to identify the origin of the request.
         Hence, the protocol and domain of the origin must be the one where the javascript is loaded.

        ### Parameters
        In the querystring of the request, add the origin of the user to the `query` parameter with the following format:1. Protocol: Can be ``http`` or ``https``.
        2. Domain: The domain of the origin.

        Then, the origin must be urlencoded. Example:
        ```
        https://example.com
        ```

        ```
        https%3A%2F%2Fexample.com
        ```

        The querystring must be like this:
        ```
        ?query=https%3A%2F%2Fexample.com
        ```

        ### Result
        The result is a JSON object with the following fields:
        - ``self``: the URI to the request to obtain the full details of the status of an origin.
        - ``addresses``: a list of JSON objects with the following fields:
            - ``cookie_id``: the ID of the tracking cookie for the origin.
            - ``status``: the status of tracking cookie ID for the given origin.
            - ``log_id``: the ID of the log that triggered the change in the status of the origin.
            - ``expiry``: the date and time when the origin status will expire in UNIX timestamp in milliseconds.
            - ``created_at``: the date and time when the origin status was created in UNIX timestamp in milliseconds.
            - ``updated_at``: the date and time when the origin status was last updated in UNIX timestamp in milliseconds.

        ### Errors
        - a `404 Not Found` error if the origin is not found.
        - a `400 Bad Request` error if the origin does not have the correct format.

        It will return the API Global errors described in the API description.
      operationId: query_origin_cookie_id_status_information_v1_origin_cookies_get
      parameters:
        - description: The origin site to query
          in: query
          name: query
          required: true
          schema:
            description: The origin site to query
            title: Origin
            type: string
        - description: The page to be returned
          in: query
          name: page
          required: false
          schema:
            default: 1
            description: The page to be returned
            title: Page number
            type: integer
            x-min: 1
        - description: The number of items per page
          in: query
          name: page_size
          required: false
          schema:
            default: 20
            description: The number of items per page
            title: Page size
            type: integer
            x-max: 100
            x-min: 5
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OriginCookieIdStatusCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the tracking cookie ID status of the origin of the user in the region.
      tags:
        - Origin management in this region
  /v1/origin/scripts:
    get:
      description: |-
        ### What
        Obtain the code snippets of the origin of the user passed as argument in the selected region. The purpose of this function is to help the user to integrate the javascript library in their website with a preconfigured script that contains the origin token.

        ### Parameters
        In the querystring of the request, add the origin of the user to the `query` parameter with the following format:1. Protocol: Can be ``http`` or ``https``.
        2. Domain: The domain of the origin.

        Then, the origin must be urlencoded. Example:
        ```
        https://example.com
        ```

        ```
        https%3A%2F%2Fexample.com
        ```

        The querystring must be like this:
        ```
        ?query=https%3A%2F%2Fexample.com
        ```

        ### Result
        The result is a JSON object with the following fields:
        - ``self``: the URI to the request to obtain the full details of an origin.
        - ``detection``: code snippet to integrate into the website described in the origin to detect malicious activity.

        ### Errors
        - a `404 Not Found` error if the origin token is not found.
        - a `400 Bad Request` error if the origin does not have the correct format.

        It will return the API Global errors described in the API description.
      operationId: query_origin_scripts_v1_origin_scripts_get
      parameters:
        - description: The origin site to query
          in: query
          name: query
          required: true
          schema:
            description: The origin site to query
            title: Origin
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OriginScriptsOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the code snippets of an origin of the user in the region.
      tags:
        - Origin management in this region
  /v1/origin/status:
    post:
      description: |-
        ### What

        Obtain the current status of the origin for a given IP address and/or cookie ID. The values can be correlated, but they are not required to be. The status will also describe the following information:
        - `PASS`: The traffic should not be intercepted, but should be analyzed and a positive detection should trigger a change in the status.
        - `BLOCK`: The traffic must be intercepted and redirected to a blocking page. Only a timeout of the IP address or Cookie ID, a solved challenge or a manual status change can change the status.
        - `CHALLENGE`: The traffic must be intercepted and redirected to a page where the user must solve a challenge. If the challenge is succesfully solved the status will change to `PASS`. If the user fails to change the challenge a specific amount of times, the status can change to `BLOCK`.
        - `BYPASS`: The traffic should not be tapped even if it is suspected to be malicious, as long as the timeout has not expired. When the timeout is reached, it should revert to a previous state instead of going to `PASS`.
        - `IGNORE`: Whatever happens to the traffic of the user, it should not be tapped. Once the time expires, it should return to the state PASS.

        The origin is a combination of protocol and domain (Ex: https://example.com) and the origin token is a special key used in conjunction with javascript library used for abuse detection. This key is owned by the user and is used to identify the origin of the request.
         Hence, the protocol and domain of the origin must be the one where the javascript is loaded.

        ### Parameters
        In the querystring of the request, add the origin of the user to the `query` parameter with the following format:1. Protocol: Can be ``http`` or ``https``.
        2. Domain: The domain of the origin.

        Then, the origin must be urlencoded. Example:
        ```
        https://example.com
        ```

        ```
        https%3A%2F%2Fexample.com
        ```

        The querystring must be like this:
        ```
        ?query=https%3A%2F%2Fexample.com
        ```

        The body should have at least one of the following fields:
        - `address`: The IP address of the user to query.
        - `cookie_id`: The ID of the tracking cookie of the user to query.

        ### Result
        The result is a JSON object with the following fields:
        - ``self``: the URI to the request to obtain the full details of the `cookie_id` and `address` status of an origin.
        - ``cookie_id``: a JSON object with the following fields:
            - ``cookie_id``: the ID of the tracking cookie for the origin.
            - ``status``: the URI to the status detail of the cookie ID.
            - ``log_id``: (Optional) the ID of the log that triggered the change in the status of the origin.
            - ``expiry``: (Optional) the date and time when the origin status will expire in UNIX timestamp in milliseconds.
            - ``created_at``: (Optional) the date and time when the origin status was created in UNIX timestamp in milliseconds.
            - ``updated_at``: (Optional) the date and time when the origin status was last updated in UNIX timestamp in milliseconds.
        - ``address``: a JSON object with the following fields:
            - ``address``: the address for the origin.
            - ``status``: the URI to the status detail of the cookie ID.
            - ``log_id``: (Optional) the ID of the log that triggered the change in the status of the origin.
            - ``expiry``: (Optional) the date and time when the origin status will expire in UNIX timestamp in milliseconds.
            - ``created_at``: (Optional) the date and time when the origin status was created in UNIX timestamp in milliseconds.
            - ``updated_at``: (Optional) the date and time when the origin status was last updated in UNIX timestamp in milliseconds.

        ### Errors
        - a `404 Not Found` error if the origin is not found.
        - a `400 Bad Request` error if the origin does not have the correct format.

        It will return the API Global errors described in the API description.
      operationId: query_origin_status_v1_origin_status_post
      parameters:
        - description: The origin site to query
          in: query
          name: query
          required: true
          schema:
            description: The origin site to query
            title: Origin
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_query_origin_status_v1_origin_status_post"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OriginStatusOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the current cookie ID and IP address status of the origin of user in the region.
      tags:
        - Origin management in this region
    put:
      description: |-
        ### What
        Update the status of a given origin event in the platform. The status can be one of the    following values:
        - `PASS`: The event is not considered as a threat.
        - `BLOCK`: The event is considered as a threat and the origin must be blocked.
        - `CHALLENGE`: The event is considered as a threat and the origin must be challenged.
        - `BYPASS`: The event is considered as a threat but the origin must be bypassed.
        - `IGNORE`: The event is considered as a threat but the origin must be ignored.

        To apply the change, it's necessary to send a request to the API with the `log_id` of the    origin status event and the scope of the change. The scope can be one of the following values:
        - `address_and_cookie`: The change will be applied to the origin IP address and the cookie.
        - `address`: The change will be applied to the origin IP address.
        - `cookie`: The change will be applied to the cookie.

        ### Parameters
        The request must send the following parameters in the body of the request:
        - ``log_id``: the log id of the origin status event.
        - ``scope``: the scope of the change. Possible values are: ``address_and_cookie``, ``address``, ``cookie``.
        - ``status``: the new status of the origin. Possible values are: ``pass``, ``block``, ``challenge``, ``bypass``, ``ignore``.

        And in the `query` query string parameter, add the origin website in the format `https://example.com`.

        ### Result
        A 200 OK response without any content.

        ### Errors
        It will return the API Global errors described in the API description.
        If the parameters are invalid, it will return a `400 Bad Request` error.
      operationId: update_origin_status_v1_origin_status_put
      parameters:
        - description: The origin site to query
          in: query
          name: query
          required: true
          schema:
            description: The origin site to query
            title: Origin
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_update_origin_status_v1_origin_status_put"
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Update the status of a given origin event in the platform.
      tags:
        - Origin management in this region
  "/v1/origin/status/detail/{status_id}":
    get:
      description: |-
        ### What
        Obtain the description of a status available in the platform.

        ### Parameters
        A `status_id` parameter in the path of the request:
        - `PASS`
        - `BLOCK`
        - `CHALLENGE`
        - `BYPASS`
        - `IGNORE`

        ### Result
        The result is a JSON object with the following fields:
        - ``self``: the URI to the status detail.
        - ``description``: a human readable description of the status.
        - ``cardinality``: The number describing the cardinality of the status.

        ### Errors
        - a `400 Bad Request` error if the origin status is not any of the available ones.

        It will return the API Global errors described in the API description.
      operationId: query_origin_status_detail_v1_origin_status_detail__status_id__get
      parameters:
        - description: The status id to query the details
          in: path
          name: status_id
          required: true
          schema:
            description: The status id to query the details
            enum:
              - pass
              - block
              - challenge
              - bypass
              - ignore
            title: Status ID
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OriginStatusDetailsOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get detail of a status available in the platform.
      tags:
        - Origin management in this region
  /v1/origin/status/details:
    get:
      description: |-
        ### What
        Obtain the full list and description of the different status available in the platform.

        ### Parameters
        No parameters needed.

        ### Result
        The result is a JSON list with the following fields:
        - ``self``: the URI to the request to obtain the list.
        - ``list``: a JSON list with the following elements each one with the following fields:
            - ``self``: the URI to the status detail.
            - ``description``: a human readable description of the status.
            - ``cardinality``: The number describing the cardinality of the status.

        ### Errors
        It will return the API Global errors described in the API description.
      operationId: query_origin_status_details_v1_origin_status_details_get
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OriginStatusDetailsCollectionOutput"
          description: Successful Response
      security:
        - HTTPBearer: []
      summary: Get the list of different status available in the platform.
      tags:
        - Origin management in this region
  /v1/origin/traffic/analysis:
    get:
      description: |-
        ### What
        Obtain the traffic analysis of the origin in the specified time range and interval. Theanalysis will return the number of requests and the anomalies detected like:

        - number of requests
        - overall score
        - malicious synthetic traffic (bad bot traffic)
        - IP in a denylist
        - IP in a datacenter
        - user uses a headless webdriver
        - Autonomous System (ASN) of the IP is risky
        - The location of the IP address and the ASN is different

        The origin is a combination of protocol and domain (Ex: https://example.com) and the origin token is a special key used in conjunction with javascript library used for abuse detection. This key is owned by the user and is used to identify the origin of the request.
         Hence, the protocol and domain of the origin must be the one where the javascript is loaded.

        ### Parameters
        In the querystring of the request, add the origin of the user to the `query` parameter with the following format:1. Protocol: Can be ``http`` or ``https``.
        2. Domain: The domain of the origin.

        Then, the origin must be urlencoded. Example:
        ```
        https://example.com
        ```

        ```
        https%3A%2F%2Fexample.com
        ```

        The querystring must be like this:
        ```
        ?query=https%3A%2F%2Fexample.com
        ```

        To restrict the analysis to a specific time range, add the following parameters to the querystring:
        - ``from_timestamp``: the start date and time of the analysis in UNIX timestamp in milliseconds.
        - ``to_timestamp``: (Optional) the end date and time of the analysis in UNIX timestamp in milliseconds.
        - ``interval``: (Optional) the interval of the analysis in minutes. The default value is 60 minutes (HOURLY). Possible values are: ``HOURLY``.

        ### Result
        The result is a JSON object with the following fields:
        - ``self``: the URI to the request to obtain the traffic analysis for the origin.
        - ``from_timestamp``: the start date and time of the analysis in UNIX timestamp in milliseconds.
        - ``to_timestamp``: the end date and time of the analysis in UNIX timestamp in milliseconds.
        - ``interval``: the interval of the analysis. Possible values are: ``HOURLY``.
        - ``data``: a JSON list with the following elements each one with the following fields:
            - ``timestamp``: the date and time of the analysis in UNIX timestamp in milliseconds.
            - ``total``: the total number of requests.
            - ``score_high``: the number of requests with a high score (bad traffic).
            - ``bots``: the number of requests from bad bots.
            - ``denylists``: the number of requests from IPs in a denylist.
            - ``datacenters``: the number of requests from IPs in a datacenter.
            - ``webdrivers``: the number of requests from IPs using a headless webdriver.
            - ``asn_risky``: the number of requests from IPs with a risky ASN.
            - ``network_country_mismatches``: the number of requests from IPs with a different location than the ASN.

        ### Errors
        - a `404 Not Found` error if the origin token is not found.
        - a `400 Bad Request` error if the origin does not have the correct format.

        It will return the API Global errors described in the API description.
      operationId: query_origin_traffic_analysis_v1_origin_traffic_analysis_get
      parameters:
        - description: The origin site to query
          in: query
          name: query
          required: true
          schema:
            description: The origin site to query
            title: Origin
            type: string
        - description: The data inteval to aggregate the result dataset
          in: query
          name: interval
          required: true
          schema:
            description: The data inteval to aggregate the result dataset
            enum:
              - HOURLY
            title: Interval
            type: string
        - description: A UNIX timestamp in milliseconds to restrict the results of the query to entries logged after or equal to this value.
          in: query
          name: from_timestamp
          required: true
          schema:
            description: A UNIX timestamp in milliseconds to restrict the results of the query to entries logged after or equal to this value.
            title: From Timestamp
            type: integer
        - description: A UNIX timestamp in milliseconds to restrict the results of the query to entries logged before this value.
          in: query
          name: to_timestamp
          required: false
          schema:
            description: A UNIX timestamp in milliseconds to restrict the results of the query to entries logged before this value.
            title: To Timestamp
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OriginTrafficAnalysisCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the traffic analysis of the origin.
      tags:
        - Origin management in this region
  /v1/origin_token:
    delete:
      description: |-
        ### What
        Deletes the origin token passed as argument of the user in the selected region. Once the token is deleted, it will no longer be valid and the protocol and domain of the origin will no longer be under protection.

        To delete an origin token, the user must be the owner and the token must be ``DISABLED`` first.

        ### Parameters
        The Origin Token is required in the body of the request in the parameter `origin_token_id`.

        ### Result
        If successful, the result will be an empty response with a status code of `204 No Content`.

        ### Errors
        It will return the API Global errors described in the API description.

        It will also return the following errors:
        - a `404 Not Found` error if the origin token is not found.
        - a `409 Conflict` error if the origin token is not disabled.
      operationId: delete_token_v1_origin_token_delete
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_delete_token_v1_origin_token_delete"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Delete an origin token of the user in the region.
      tags:
        - Origin Token management in this region
    post:
      description: |-
        ### What
        Obtain the attributes of the given origin token of the user in the selected region. The purpose of this function is to show what protocol and domain is linked to the token.

        The origin token is a special key used in conjunction with javascript library used for abuse detection. This key is owned by the user and is used to identify the origin of the request.
         Hence, the protocol and domain of the origin must be the one where the javascript is loaded.

        ### Parameters
        The Origin Token is required in the body of the request in the parameter `origin_token_id`.

        ### Result
        The result is a JSON object with the following fields:
        - ``self``: the URI to individual origin token information.
        - ``region_id``: the name of the region where the origin token is valid.
        - ``origin``: the protocol and the domain where the origin token is valid.
        - ``status``: the status of the origin token. The only allowed values are ``ENABLED`` and ``DISABLED``.
        - ``created_at``: the date and time when the origin token was created in UNIX timestamp in milliseconds.
        - ``updated_at``: the date and time when the origin token was last updated in UNIX timestamp in milliseconds.

        ### Errors
        It will return the API Global errors described in the API description.
      operationId: query_origin_token_info_v1_origin_token_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_query_origin_token_info_v1_origin_token_post"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OriginTokenOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the information of an origin token of the user in the region.
      tags:
        - Origin Token management in this region
  /v1/origin_token/all:
    get:
      description: |-
        ### What
        Obtain the attributes of all the origin tokens of the user in the selected region. The purpose of this function is to show what protocol and domain is linked to all the tokens.

        The origin token is a special key used in conjunction with javascript library used for abuse detection. This key is owned by the user and is used to identify the origin of the request.
         Hence, the protocol and domain of the origin must be the one where the javascript is loaded.

        ### Parameters
        No parameters are required.

        ### Result
        The result is a list of JSON objects with the following fields:
        - ``self``: the URI to individual origin token information.
        - ``region_id``: the name of the region where the origin token is valid.
        - ``origin``: the protocol and the domain where the origin token is valid.
        - ``status``: the status of the origin token. The only allowed values are ``ENABLED`` and ``DISABLED``.
        - ``created_at``: the date and time when the origin token was created in UNIX timestamp in milliseconds.
        - ``updated_at``: the date and time when the origin token was last updated in UNIX timestamp in milliseconds.

        ### Errors
        It will return the API Global errors described in the API description.
      operationId: query_all_origin_tokens_in_the_region_v1_origin_token_all_get
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OriginTokenCollectionOutput"
          description: Successful Response
      security:
        - HTTPBearer: []
      summary: Get the information of the origin tokens of the user in the region.
      tags:
        - Origin Token management in this region
  /v1/origin_token/disable:
    put:
      description: |-
        ### What
        Disable an enabled origin token passed as argument of the user in the selected region. When a token is enabled, it will participate in the protection of the origin protocol and domain. If the token is disabled, it will not participate in the protection of the origin protocol and domain.

        To disable an origin token, the user must be the owner. If the token is already disabled, the function will not perform any action. If the token is enabled, it will be disabled.

        ### Parameters
        The Origin Token is required in the body of the request in the parameter `origin_token_id`.

        ### Result
        If successful, the result will be an empty response with a status code of `204 No Content`.

        ### Errors
        It will return the API Global errors described in the API description.

        It will also return the following errors:
        - a `404 Not Found` error if the origin token is not found.
      operationId: disable_origin_token_v1_origin_token_disable_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_disable_origin_token_v1_origin_token_disable_put"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Disable a enabled origin token of the user in the region.
      tags:
        - Origin Token management in this region
  /v1/origin_token/enable:
    put:
      description: |-
        ### What
        Enable a disabled origin token passed as argument of the user in the selected region. When a token is enabled, it will participate in the protection of the origin protocol and domain. If the token is disabled, it will not participate in the protection of the origin protocol and domain.

        To enable an origin token, the user must be the owner. If the token is already enabled, the function will not perform any action. If the token is disabled, it will be enabled.

        ### Parameters
        The Origin Token is required in the body of the request in the parameter `origin_token_id`.

        ### Result
        If successful, the result will be an empty response with a status code of `204 No Content`.

        ### Errors
        It will return the API Global errors described in the API description.

        It will also return the following errors:
        - a `404 Not Found` error if the origin token is not found.
      operationId: enable_origin_token_v1_origin_token_enable_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Body_enable_origin_token_v1_origin_token_enable_put"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema: {}
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Enable a disabled origin token of the user in the region.
      tags:
        - Origin Token management in this region
  /v1/origin_token/new:
    post:
      description: |-
        ### What
        Creates a new origin token for the user passing as argument the origin. The origin parameter is the protocol and the domain where the origin token is valid.

        The origin token is a special key used in conjunction with javascript library used for abuse detection. This key is owned by the user and is used to identify the origin of the request.
         Hence, the protocol and domain of the origin must be the one where the javascript is loaded.

        ### Parameters
        The origin with the protocol and domain is required in the body of the request in the parameter ``origin``. The allowed protocols are ``https://``, and ``http://``.

        ### Result
        The result is a JSON object with the new origin token and the following fields:
        - ``self``: the URI to individual origin token information.
        - ``region_id``: the name of the region where the origin token is valid.
        - ``origin``: the protocol and the domain where the origin token is valid.
        - ``status``: the status of the origin token. The only allowed values are ``ENABLED`` and ``DISABLED``.
        - ``created_at``: the date and time when the origin token was created in UNIX timestamp in milliseconds.
        - ``updated_at``: the date and time when the origin token was last updated in UNIX timestamp in milliseconds.

        ### Errors
        It will return the API Global errors described in the API description.

        It will also return the following errors:
        - a `400 Bad Request` error if the origin does not have the correct format.
        - a `409 Conflict` error if the origin token already exists.
      operationId: create_a_new_origin_token_v1_origin_token_new_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OriginTokenInput"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OriginTokenOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Create an origin token of the user in the region.
      tags:
        - Origin Token management in this region
  /v1/source/ip:
    get:
      description: |-
        ### What
        Obtain the full meta information of all the source lists available for the subscription level of the user. A source list is a collection of resources combined together with other sources to create a dataset.

         A source list has some unique properties. The most relevant ones are the score and risk. The score is a number **between 0 and 99** describing the probability of the IP address being a malicious one, being **0** means that the IP address is not malicious and is not a threat. Being **99** means that the service behind the IP address is probably malicious an certainly a threat.

         Each source list groups several collections of resource by the lapse of time or time range that they are related to according to their age. Each group by time range has a score and a risk.

        ### Parameters
        The endpoint does not accept any parameter. The subscription level is obtained from the token provided in the header.

        ### Result
        The result is a JSON object with a self reference and a list of JSON objects with the following fields:
        - ``self``: the URI to individual source list information.
        - ``dataset``: the URI to the dataset that aggregates the resources of this list.
        - ``name``: the unique name of the source list. Must be uppercase letters, numbers and underscores.
        - ``description``: a human readable long description of the source list.
        - ``source``: Origin of the list.
        - ``url``: The URL where the source list was found.
        - ``refresh``: The refresh period of the source list.
        - ``minimum_score``: The minimum score found in the different source list time ranges. Is in the range 0-99.
        - ``maximum_score``: The maximum score found in the different source list time ranges. Is in the range 0-99.
        - ``minimum_risk``: The minimum human readable risk score found in the different source list time ranges. Can be UNKNOWN, LOW, MEDIUM or HIGH.
        - ``maximum_risk``: The maximum human readable risk score found in the different source list time ranges. Can be UNKNOWN, LOW, MEDIUM or HIGH.
        - ``time_range``: the list of URIs pointing to the different source list time ranges information.
        - ``updated_at``: The UNIX timestamp in milliseconds of last update of the source list.
        - ``subscriptions``: The list of subscription levels that can access this source list.


        ### Errors
        It will return the API Global errors described in the API description.
      operationId: get_all_sources_v1_source_ip_get
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceCollectionOutput"
          description: "The server will return a valid answer in the following cases:"
      security:
        - HTTPBearer: []
      summary: Get the full information of all the source lists for the subscription level given.
      tags:
        - Data sources
  "/v1/source/ip/{source}":
    get:
      description: |-
        ### What
        Obtain the full meta information of the source list given as argument. A source list is a collection of resources combined together with other sources to create a dataset. A source list has some unique properties. The most relevant ones are the score and risk. The score is a number **between 0 and 99** describing the probability of the IP address being a malicious one, being **0** means that the IP address is not malicious and is not a threat. Being **99** means that the service behind the IP address is probably malicious an certainly a threat.

         Each source list groups several collections of resource by the lapse of time or time range that they are related to according to their age. Each group by time range has a score and a risk.

        ### Parameters
        The endpoint accepts only the following parameter in the path:
        - ``source``: (Mandatory) The code name that identifies uniquely the source list in the platform. It must be composed of uppercase letters, numbers and underscores.

        ### Result
        The result is a JSON object with the following fields:
        - ``self``: the URI to individual source list information.
        - ``dataset``: the URI to the dataset that aggregates the resources of this list.
        - ``name``: the unique name of the source list. Must be uppercase letters, numbers and underscores.
        - ``description``: a human readable long description of the source list.
        - ``source``: Origin of the list.
        - ``url``: The URL where the source list was found.
        - ``refresh``: The refresh period of the source list.
        - ``minimum_score``: The minimum score found in the different source list time ranges. Is in the range 0-99.
        - ``maximum_score``: The maximum score found in the different source list time ranges. Is in the range 0-99.
        - ``minimum_risk``: The minimum human readable risk score found in the different source list time ranges. Can be UNKNOWN, LOW, MEDIUM or HIGH.
        - ``maximum_risk``: The maximum human readable risk score found in the different source list time ranges. Can be UNKNOWN, LOW, MEDIUM or HIGH.
        - ``time_range``: the list of URIs pointing to the different source list time ranges information.
        - ``updated_at``: The UNIX timestamp in milliseconds of last update of the source list.
        - ``subscriptions``: The list of subscription levels that can access this source list.

        ### Errors
        - a `404 Not Found` error if the source list code name was not found.
        - a `422 Unprocessable Entity` error if source list code name does not follow the naming convention.

        It will return the API Global errors described in the API description.
      operationId: get_source_info_v1_source_ip__source__get
      parameters:
        - in: path
          name: source
          required: true
          schema:
            pattern: ^([A-Z0-9\_]+)$
            title: Source
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1__models__source__SourceOutput"
          description: "The server will return a valid answer in the following cases:"
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the full information of the source list given as argument.
      tags:
        - Data sources
  "/v1/source/ip/{source}/range/{time_range}":
    get:
      description: |-
        ### What
        Obtain the meta information of the source list and the time range given as arguments. A source list is a collection of resources combined together with other sources to create a dataset. A source list has some unique properties. The most relevant ones are the score and risk. The score is a number **between 0 and 99** describing the probability of the IP address being a malicious one, being **0** means that the IP address is not malicious and is not a threat. Being **99** means that the service behind the IP address is probably malicious an certainly a threat.

         The time ranges or lapse of time of each source are how the resources are stored according to their age. Each group by time range has a score and a risk.

        ### Parameters
        The endpoint accepts the following two parameters in the path:
        - ``source``: (Mandatory) The code name that identifies uniquely the source list in the platform. It must be composed of uppercase letters, numbers and underscores.
        - ``time_range``: (Mandatory) The code name that identifies uniquely the time ranges. Must be: 1H, 6H, 12H, 1D, 7D, 30D, 90D, 180D y 365D.

        ### Result
        The result is a JSON object with the following fields:
        - ``self``: the URI to individual source list and time range information.
        - ``source``: the URI to individual source list information.
        - ``items``: Number of elements in the source list in the time range given.
        - ``lapse``: The lapse of time or time range of the specific source list. Can be 1H, 6H, 12H, 1D, 7D, 30D, 90D, 180D or 365D.
        - ``score``: The score found in the source list time range. Is in the range 0-99.
        - ``risk``: The human readable risk score found in the source list time range. Can be UNKNOWN, LOW, MEDIUM or HIGH.
        - ``updated_at``: The UNIX timestamp in milliseconds of last update of the source list.

        ### Errors
        - a `404 Not Found` error if the source list code name was not found.
        - a `404 Not Found` error if the time range was not found.
        - a `422 Unprocessable Entity` error if source list code name or time ranges does not follow the naming convention.

        It will return the API Global errors described in the API description.
      operationId: get_source_and_timerange_info_v1_source_ip__source__range__time_range__get
      parameters:
        - in: path
          name: source
          required: true
          schema:
            pattern: ^([A-Z0-9\_]+)$
            title: Source
            type: string
        - in: path
          name: time_range
          required: true
          schema:
            enum:
              - 1H
              - 6H
              - 12H
              - 1D
              - 7D
              - 30D
              - 90D
              - 180D
              - 365D
            title: Time Range
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceTimeRangeOutput"
          description: "The server will return a valid answer in the following cases:"
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the information of the source list given for a specific time range.
      tags:
        - Data sources
  /v1/token:
    get:
      description: |-
        ### What
        Obtain the list of all the token attributes of the current user in the selected region. The purpose of this function is to show the current values of the user's quota.

        ### Parameters
        No parameters are required. The token is obtained automatically from the `Bearer` in the header.

        ### Result
        The result is a JSON object with the following fields:
        - ``self``: the URI to individual token information.
        - ``region_id``: the name of the region where the token is valid.
        - ``last_month_bucket_init_value``: the initial value of the monthly bucket.
        - ``last_month_bucket_value``: the current value of consumed quota in the monthly bucket.
        - ``last_month_bucket_refresh``: Unix timestamp in milliseconds of the next monthly bucket reset.
        - ``last_minute_bucket_init_value``: the initial value of the per minute bucket.
        - ``last_minute_bucket_value``: the current value of consumed quota in the per minute bucket.
        - ``last_minute_bucket_refresh``: Unix timestamp in milliseconds of the next per minute bucket reset.
        - ``last_minute_bucket_refill_ratio``: the number of tokens to add every second to the per minute bucket.
        - ``status``: the status of the token. The only allowed value is ``ENABLED``.
        - ``created_at``: the date and time when the token was created in UNIX timestamp in milliseconds.
        - ``updated_at``: the date and time when the token was last updated in UNIX timestamp in milliseconds.

        ### Errors
        It will return the API Global errors described in the API description.
      operationId: query_token_info_v1_token_get
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TokenOutput"
          description: Successful Response
      security:
        - HTTPBearer: []
      summary: Get the information of the user's token in the region.
      tags:
        - Authentication Token management in this region
  /v1/token/activity:
    get:
      description: |-
        ### What
        Obtain the list of all the activity events of the current user in the selected region. The purpose of this function is to show what actions performed a user with the specific token.

        ### Parameters
        The following pagination parameters are required as query string parameters:
        - ``page``: (Optional) the page number to retrieve. The first page is 1. Default is 1.
        - ``page_size``: (Optional) the number of items per page. Default is 20.

        The token is obtained automatically from the `Bearer` in the header.

        ### Result
        The result is a JSON object with the following fields:
        - ``self``: the URI to all activities of the token.
        - ``activities``: a list of activities performed by the user with the token.
            - ``self``: the URI to individual activity information.
            - ``event``: ID of the reference of the event type.
            - ``description``: Human readable description of the event.
            - ``data``: the payload of the event. It can be empty.
            - ``source``: A JSON object with the following fields:
                - ``address``: the IP address of the client.
                - ``ua_string``: the user agent string of the client.
                - ``status_code``: the HTTP status code of the response.
                - ``uri``: the URI of the request.
                - ``body``: the body of the request.
                - ``method``: the HTTP method of the request.
            - ``created_at``: the date and time when the token was created in UNIX timestamp in milliseconds.

        ### Errors
        It will return the API Global errors described in the API description.
      operationId: query_token_activity_v1_token_activity_get
      parameters:
        - description: The page to be returned
          in: query
          name: page
          required: false
          schema:
            default: 1
            description: The page to be returned
            title: Page number
            type: integer
            x-min: 1
        - description: The number of items per page
          in: query
          name: page_size
          required: false
          schema:
            default: 20
            description: The number of items per page
            title: Page size
            type: integer
            x-max: 100
            x-min: 5
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActivityCollectionOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the activity information of the token in the region.
      tags:
        - Authentication Token management in this region
  /v1/ua:
    post:
      description: |-
        ### What
        Get the information found in the list of User Agents passed as argument. This information includes:
        - Type
        - Render Engine
        - Version
        - Vendor
        - Operating System
        - Device
        - How common is the agent worldwide

        ### Parameters
        A list of User Agents are required in the body of the request.

        ### Result
        The result contains a list of the result for each User Agent, with the following data set:

        The result is a JSON object with the following structure:
        - ``self``: the URI of the API call
        - ``string``:  The full user agent string passed as argument.
        - ``classification``: The classification of the user agent. It can be one of the following: ``CRAWLER``, ``CLIENT``, ``UNKNOWN``.
        - ``type``: An URI to the type of user agent used to identify the client (browser, bot, crawler, etc.).
        - ``agent``: Name of the agent and the version, if any.
        - ``engine``: Agent render engine.
        - ``version``: Version of the agent.
        - ``latest``: Latests known version of the agent.
        - ``family``: URI to the family of the agent.
        - ``vendor``: URI to the vendor or company that produces the agent.
        - ``os``: URI to the operating system used by the agent.
        - ``device``: URI to the device used by the agent.
        - ``frequent``: If the agent is frequently used worlwide or not. The values are ``COMMON``, ``RARE``, and ``UNKNOWN``.


        ### Errors
        The endpoint will return the API Global errors described in the API description.
      operationId: parse_user_agents_v1_ua_post
      requestBody:
        content:
          application/json:
            schema:
              items:
                type: string
              maxItems: 100
              minItems: 1
              title: User Agents
              type: array
              uniqueItems: true
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UACollectionOutput"
          description: "The server will return a valid answer in the following cases:"
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the information found in a set of User Agents.
      tags:
        - User Agent
  /v1/ua/csv:
    post:
      description: |-
        ### What
        Get the information found in the list of User Agents uploaded as a CSV file. This information includes:
        - Type
        - Render Engine
        - Version
        - Vendor
        - Operating System
        - Device
        - How common is the agent worldwide

        ### Parameters
        - A text file with a list of User Agents.
        - A header `Content-Type: multipart/form-data` is required.

        Example:
        ```
        curl -X 'POST' \
          'https://dublin.api.threatjammer.com/v1/ua/csv' \
          -H 'accept: application/json' \
          -H 'Authorization: Bearer YOUR_API_KEY' \
          -H 'Content-Type: multipart/form-data' \
          -F 'csv_file=@YOUR_TEXT_FILE;type=text/csv'
        ```

        ### Result
        The result contains a list of the result for each User Agent, with the following data set:

        The result is a JSON object with the following structure:
        - ``self``: the URI of the API call
        - ``string``:  The full user agent string passed as argument.
        - ``classification``: The classification of the user agent. It can be one of the following: ``CRAWLER``, ``CLIENT``, ``UNKNOWN``.
        - ``type``: An URI to the type of user agent used to identify the client (browser, bot, crawler, etc.).
        - ``agent``: Name of the agent and the version, if any.
        - ``engine``: Agent render engine.
        - ``version``: Version of the agent.
        - ``latest``: Latests known version of the agent.
        - ``family``: URI to the family of the agent.
        - ``vendor``: URI to the vendor or company that produces the agent.
        - ``os``: URI to the operating system used by the agent.
        - ``device``: URI to the device used by the agent.
        - ``frequent``: If the agent is frequently used worlwide or not. The values are ``COMMON``, ``RARE``, and ``UNKNOWN``.


        ### Errors
        The endpoint will return the API Global errors described in the API description.
      operationId: parse_user_agents_csv_v1_ua_csv_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/Body_parse_user_agents_csv_v1_ua_csv_post"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UACollectionOutput"
          description: "The server will return a valid answer in the following cases:"
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the information found in the set of User Agents uploaded.
      tags:
        - User Agent
  "/v1/ua/device/{code}":
    get:
      description: |-
        ### What
        Obtain the details of a device of a User Agent.

        ### Parameters
        The endpoint accepts only the following parameter in the path:
        - ``code``: (Mandatory) The code that identifies uniquely the device origin of a User Agent. The value must be an alphanumeric upper case string.


        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI to the device.
        - ``description``: the human readable description of the device.
        - ``code``: the internal code of the device in the system.

        ### Errors
        - a `422 Unprocessable Entity` error if the code is not one of the available.

        It will also return the API Global errors described in the API description.
      operationId: query_device_by_code_v1_ua_device__code__get
      parameters:
        - in: path
          name: code
          required: true
          schema:
            pattern: ^[A-Z0-9_]+
            title: Code
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DeviceOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the information of the device of a user agent.
      tags:
        - User Agent
  "/v1/ua/family/{code}":
    get:
      description: |-
        ### What
        Obtain the details of a family of a User Agent.

        ### Parameters
        The endpoint accepts only the following parameter in the path:
        - ``code``: (Mandatory) The code that identifies uniquely the family of a User Agent. The value must be an alphanumeric upper case string.


        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI to the family.
        - ``description``: the human readable description of the famly.
        - ``code``: the internal code of the family in the system.

        ### Errors
        - a `422 Unprocessable Entity` error if the code is not one of the available.

        It will also return the API Global errors described in the API description.
      operationId: query_family_by_code_v1_ua_family__code__get
      parameters:
        - in: path
          name: code
          required: true
          schema:
            pattern: ^[A-Z0-9_]+
            title: Code
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FamilyOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the information of the family of a user agent.
      tags:
        - User Agent
  "/v1/ua/os/{code}":
    get:
      description: |-
        ### What
        Obtain the details of the Operating System of a User Agent.

        ### Parameters
        The endpoint accepts only the following parameter in the path:
        - ``code``: (Mandatory) The code that identifies uniquely the Operating System at the origin of a User Agent. The value must be an alphanumeric upper case string.


        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI to the OS.
        - ``description``: the human readable description of the OS.
        - ``code``: the internal code of the OS in the system.
        - ``family``: the family of the OS.
        - ``vendor``: the vendor or manufacturer of the OS.

        ### Errors
        - a `422 Unprocessable Entity` error if the code is not one of the available.

        It will also return the API Global errors described in the API description.
      operationId: query_os_by_code_v1_ua_os__code__get
      parameters:
        - in: path
          name: code
          required: true
          schema:
            pattern: ^[A-Z0-9_]+
            title: Code
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OSOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the information of the Operating System of a user agent.
      tags:
        - User Agent
  "/v1/ua/type/{code}":
    get:
      description: |-
        ### What
        Obtain the details of a type of a User Agent.

        ### Parameters
        The endpoint accepts only the following parameter in the path:
        - ``code``: (Mandatory) The code that identifies uniquely the type of a User Agent. The value must be an alphanumeric upper case string.


        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI to the type.
        - ``description``: the human readable description of the type.
        - ``code``: the internal code of the type in the system.
        - ``type``: the type of the User Agent. Can be ``INTERACTIVE``, ``CRAWLER`` or ``UNKNOWN`` if the type is not known.

        ### Errors
        - a `422 Unprocessable Entity` error if the code is not one of the available.

        It will also return the API Global errors described in the API description.
      operationId: query_type_by_code_v1_ua_type__code__get
      parameters:
        - in: path
          name: code
          required: true
          schema:
            pattern: ^[A-Z0-9_]+
            title: Code
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TypeOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the information of the type of a user agent.
      tags:
        - User Agent
  "/v1/ua/vendor/{code}":
    get:
      description: |-
        ### What
        Obtain the details of a vendor of a User Agent.

        ### Parameters
        The endpoint accepts only the following parameter in the path:
        - ``code``: (Mandatory) The code that identifies uniquely the vendor or manufacurer of a User Agent. The value must be an alphanumeric upper case string.


        ### Result
        The result is a JSON object with the following structure:
        - ``self``: the URI to the vendor.
        - ``description``: the human readable description of the vendor.
        - ``code``: the internal code of the vendor in the system.

        ### Errors
        - a `422 Unprocessable Entity` error if the code is not one of the available.

        It will also return the API Global errors described in the API description.
      operationId: query_vendor_by_code_v1_ua_vendor__code__get
      parameters:
        - in: path
          name: code
          required: true
          schema:
            pattern: ^[A-Z0-9_]+
            title: Code
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VendorOutput"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the information of the vendor of a user agent.
      tags:
        - User Agent
  "/v1/ua/{user_agent_urlencoded}":
    get:
      description: |-
        ### What
        Get the information found in the User Agent passed as argument. This information includes:
        - Type
        - Render Engine
        - Version
        - Vendor
        - Operating System
        - Device
        - How common is the agent worldwide


        ### Parameters
        The only argument accepted in the query string is an URL encoded User Agent string.

        ### Result
        The result contains the following set of data:

        The result is a JSON object with the following structure:
        - ``self``: the URI of the API call
        - ``string``:  The full user agent string passed as argument.
        - ``classification``: The classification of the user agent. It can be one of the following: ``CRAWLER``, ``CLIENT``, ``UNKNOWN``.
        - ``type``: An URI to the type of user agent used to identify the client (browser, bot, crawler, etc.).
        - ``agent``: Name of the agent and the version, if any.
        - ``engine``: Agent render engine.
        - ``version``: Version of the agent.
        - ``latest``: Latests known version of the agent.
        - ``family``: URI to the family of the agent.
        - ``vendor``: URI to the vendor or company that produces the agent.
        - ``os``: URI to the operating system used by the agent.
        - ``device``: URI to the device used by the agent.
        - ``frequent``: If the agent is frequently used worlwide or not. The values are ``COMMON``, ``RARE``, and ``UNKNOWN``.


        ### Errors
        The endpoint will return the API Global errors described in the API description.
      operationId: parse_user_agent_v1_ua__user_agent_urlencoded__get
      parameters:
        - in: path
          name: user_agent_urlencoded
          required: true
          schema:
            title: User Agent Urlencoded
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UAOutput"
          description: "The server will return a valid answer in the following cases:"
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      security:
        - HTTPBearer: []
      summary: Get the information found in an User Agent.
      tags:
        - User Agent
components:
  schemas:
    AclGroupOriginCollectionOutput:
      properties:
        lists:
          items:
            $ref: "#/components/schemas/AclGroupOriginOutput"
          title: Lists
          type: array
        self:
          title: Self
          type: string
      required:
        - self
        - lists
      title: AclGroupOriginCollectionOutput
      type: object
    AclGroupOriginOutput:
      properties:
        created_at:
          title: Created At
          type: integer
        origin:
          title: Origin
          type: string
        self:
          title: Self
          type: string
        status:
          enum:
            - INACTIVE
            - ACTIVE
            - EXPIRED
          title: Status
          type: string
        updated_at:
          title: Updated At
          type: integer
      required:
        - self
        - origin
        - status
        - created_at
        - updated_at
      title: AclGroupOriginOutput
      type: object
    AclListCollectionOutput:
      properties:
        asns:
          default: []
          items:
            type: string
          title: Asns
          type: array
        cidrs:
          default: []
          items:
            type: string
          title: Cidrs
          type: array
        continents:
          default: []
          items:
            type: string
          title: Continents
          type: array
        countries:
          default: []
          items:
            type: string
          title: Countries
          type: array
        datacenters:
          default: []
          items:
            type: string
          title: Datacenters
          type: array
        reported:
          items:
            type: string
          title: Reported
          type: array
        self:
          title: Self
          type: string
      required:
        - self
      title: AclListCollectionOutput
      type: object
    ActivityCollectionOutput:
      properties:
        activities:
          items:
            $ref: "#/components/schemas/ActivityOutput"
          title: Activities
          type: array
        page:
          title: Page
          type: integer
        page_size:
          title: Page Size
          type: integer
        self:
          title: Self
          type: string
      required:
        - self
        - page
        - page_size
        - activities
      title: ActivityCollectionOutput
      type: object
    ActivityOutput:
      properties:
        created_at:
          title: Created At
          type: integer
        data:
          title: Data
          type: object
        description:
          title: Description
          type: string
        event:
          title: Event
          type: string
        self:
          title: Self
          type: string
        source:
          $ref: "#/components/schemas/v1__models__token__SourceOutput"
      required:
        - self
        - event
        - description
        - data
        - created_at
        - source
      title: ActivityOutput
      type: object
    AutonomousSystemOutput:
      properties:
        country_code:
          enum:
            - AF
            - AP
            - AX
            - AL
            - DZ
            - AS
            - AD
            - AO
            - AI
            - AQ
            - AG
            - AR
            - AM
            - AW
            - AU
            - AT
            - AZ
            - BS
            - BH
            - BD
            - BB
            - BY
            - BE
            - BZ
            - BJ
            - BM
            - BT
            - BO
            - BQ
            - BA
            - BW
            - BV
            - BR
            - IO
            - BN
            - BG
            - BF
            - BI
            - CV
            - KH
            - CM
            - CA
            - KY
            - CF
            - TD
            - CL
            - CN
            - CX
            - CC
            - CO
            - KM
            - CG
            - CD
            - CK
            - CR
            - CI
            - HR
            - CU
            - CW
            - CY
            - CZ
            - DK
            - DJ
            - DM
            - DO
            - EC
            - EG
            - SV
            - GQ
            - ER
            - EE
            - ET
            - FK
            - FO
            - FJ
            - FI
            - FR
            - GF
            - PF
            - TF
            - GA
            - GM
            - GE
            - DE
            - GH
            - GI
            - GR
            - GL
            - GD
            - GP
            - GU
            - GT
            - GG
            - GN
            - GW
            - GY
            - HT
            - HM
            - VA
            - HN
            - HK
            - HU
            - IS
            - IN
            - ID
            - IR
            - IQ
            - IE
            - IM
            - IL
            - IT
            - JM
            - JP
            - JE
            - JO
            - KZ
            - KE
            - KI
            - KP
            - KR
            - KW
            - KG
            - LA
            - LV
            - LB
            - LS
            - LR
            - LY
            - LI
            - LT
            - LU
            - MO
            - MK
            - MG
            - MW
            - MY
            - MV
            - ML
            - MT
            - MH
            - MQ
            - MR
            - MU
            - YT
            - MX
            - FM
            - MD
            - MC
            - MN
            - ME
            - MS
            - MA
            - MZ
            - MM
            - NA
            - NR
            - NP
            - NL
            - NC
            - NZ
            - NI
            - NE
            - NG
            - NU
            - NF
            - MP
            - NO
            - OM
            - PK
            - PW
            - PS
            - PA
            - PG
            - PY
            - PE
            - PH
            - PN
            - PL
            - PT
            - PR
            - QA
            - RE
            - RO
            - RU
            - RW
            - BL
            - SH
            - KN
            - LC
            - MF
            - PM
            - VC
            - WS
            - SM
            - ST
            - SA
            - SN
            - RS
            - SC
            - SL
            - SG
            - SX
            - SK
            - SI
            - SB
            - SO
            - ZA
            - GS
            - SS
            - ES
            - LK
            - SD
            - SR
            - SJ
            - SZ
            - SE
            - CH
            - SY
            - TW
            - TJ
            - TZ
            - TH
            - TL
            - TG
            - TK
            - TO
            - TT
            - TN
            - TR
            - TM
            - TC
            - TV
            - UG
            - UA
            - AE
            - GB
            - US
            - UM
            - UY
            - UZ
            - VU
            - VE
            - VN
            - VG
            - VI
            - WF
            - EH
            - YE
            - ZM
            - ZW
            - ZZ
            - EU
            - RESERVED BY RFC6793
          title: Country Code
          type: string
        description:
          title: Description
          type: string
        name:
          title: Name
          type: string
        prefixes:
          title: Prefixes
          type: string
        registry:
          title: Registry
          type: string
        registry_date:
          pattern: ^(\d{4})(\d{2})(\d{2})$
          title: Registry Date
          type: string
        risk:
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
          title: Risk
          type: string
        score:
          title: Score
          type: integer
        self:
          title: Self
          type: string
        status:
          title: Status
          type: string
      required:
        - name
        - country_code
        - registry
        - status
        - prefixes
      title: AutonomousSystemOutput
      type: object
    AutonomousSystemPrefixOutput:
      description: AutonomousSystemPrefixResponse class to return the information to the user
      properties:
        asn:
          title: Asn
          type: string
        description:
          title: Description
          type: string
        mantainer:
          title: Mantainer
          type: string
        object_type:
          title: Object Type
          type: string
        registry_date:
          pattern: ^(\d{4})(\d{2})(\d{2})$
          title: Registry Date
          type: string
        registry_status:
          title: Registry Status
          type: string
        risk:
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
          title: Risk
          type: string
        score:
          title: Score
          type: integer
        self:
          title: Self
          type: string
      required:
        - object_type
        - mantainer
        - description
      title: AutonomousSystemPrefixOutput
      type: object
    AutonomousSystemPrefixesOutput:
      properties:
        asn:
          title: Asn
          type: string
        prefixes_v4:
          items:
            $ref: "#/components/schemas/AutonomousSystemPrefixOutput"
          title: Prefixes V4
          type: array
        prefixes_v6:
          items:
            $ref: "#/components/schemas/AutonomousSystemPrefixOutput"
          title: Prefixes V6
          type: array
        self:
          title: Self
          type: string
      required:
        - self
        - prefixes_v4
        - prefixes_v6
      title: AutonomousSystemPrefixesOutput
      type: object
    AutonomousSystemRegistryOutput:
      description: The Registry information
      properties:
        code:
          title: Code
          type: string
        name:
          title: Name
          type: string
        self:
          title: Self
          type: string
      required:
        - code
        - name
        - self
      title: AutonomousSystemRegistryOutput
      type: object
    AutonomousSystemStatusOutput:
      description: The Status information
      properties:
        code:
          title: Code
          type: string
        name:
          title: Name
          type: string
        self:
          title: Self
          type: string
      required:
        - code
        - name
        - self
      title: AutonomousSystemStatusOutput
      type: object
    Body_assess_ip_set_csv_v1_assess_ip_csv_post:
      properties:
        csv_file:
          description: The CSV file with the IP addresses
          format: binary
          title: CSV File upload
          type: string
      required:
        - csv_file
      title: Body_assess_ip_set_csv_v1_assess_ip_csv_post
      type: object
    Body_assess_ip_set_csv_v1_geo_csv_post:
      properties:
        csv_file:
          description: The CSV file with the IP addresses
          format: binary
          title: CSV File upload
          type: string
      required:
        - csv_file
      title: Body_assess_ip_set_csv_v1_geo_csv_post
      type: object
    Body_change_status_of_the_allowlist_v1_allowlist_public__allowlist_id__put:
      properties:
        status:
          description: The status of the list. ACTIVE or INACTIVE
          enum:
            - ACTIVE
            - INACTIVE
          title: Status of the list
          type: string
      required:
        - status
      title: Body_change_status_of_the_allowlist_v1_allowlist_public__allowlist_id__put
      type: object
    Body_change_status_of_the_denylist_v1_denylist_public__denylist_id__put:
      properties:
        status:
          description: The status of the list. ACTIVE or INACTIVE
          enum:
            - ACTIVE
            - INACTIVE
          title: Status of the list
          type: string
      required:
        - status
      title: Body_change_status_of_the_denylist_v1_denylist_public__denylist_id__put
      type: object
    Body_change_status_of_the_origin_allowlist_v1_allowlist_private__allowlist_id__origin_put:
      properties:
        origin:
          description: The protocol and domain of the origin to change the status
          format: uri
          maxLength: 2083
          minLength: 1
          title: Protocol and domain
          type: string
        status:
          description: The status of the list. ACTIVE, INACTIVE, DELETED
          enum:
            - ACTIVE
            - INACTIVE
            - DELETED
          title: Status of the list
          type: string
      required:
        - origin
        - status
      title: Body_change_status_of_the_origin_allowlist_v1_allowlist_private__allowlist_id__origin_put
      type: object
    Body_change_status_of_the_origin_allowlist_v1_allowlist_public__allowlist_id__origin_put:
      properties:
        origin:
          description: The protocol and domain of the origin to change the status
          format: uri
          maxLength: 2083
          minLength: 1
          title: Protocol and domain
          type: string
        status:
          description: The status of the list. ACTIVE, INACTIVE, DELETED
          enum:
            - ACTIVE
            - INACTIVE
            - DELETED
          title: Status of the list
          type: string
      required:
        - origin
        - status
      title: Body_change_status_of_the_origin_allowlist_v1_allowlist_public__allowlist_id__origin_put
      type: object
    Body_change_status_of_the_origin_denylist_v1_denylist_private__denylist_id__origin_put:
      properties:
        origin:
          description: The protocol and domain of the origin to change the status
          format: uri
          maxLength: 2083
          minLength: 1
          title: Protocol and domain
          type: string
        status:
          description: The status of the list. ACTIVE, INACTIVE, DELETED
          enum:
            - ACTIVE
            - INACTIVE
            - DELETED
          title: Status of the list
          type: string
      required:
        - origin
        - status
      title: Body_change_status_of_the_origin_denylist_v1_denylist_private__denylist_id__origin_put
      type: object
    Body_change_status_of_the_origin_denylist_v1_denylist_public__denylist_id__origin_put:
      properties:
        origin:
          description: The protocol and domain of the origin to change the status
          format: uri
          maxLength: 2083
          minLength: 1
          title: Protocol and domain
          type: string
        status:
          description: The status of the list. ACTIVE, INACTIVE, DELETED
          enum:
            - ACTIVE
            - INACTIVE
            - DELETED
          title: Status of the list
          type: string
      required:
        - origin
        - status
      title: Body_change_status_of_the_origin_denylist_v1_denylist_public__denylist_id__origin_put
      type: object
    Body_create_private_allowlist_of_the_user_v1_allowlist_private_post:
      properties:
        payload:
          allOf:
            - $ref: "#/components/schemas/PrivateAclGroupListInput"
          description: The information needed to create a new allowlist
          title: Name of the list
      required:
        - payload
      title: Body_create_private_allowlist_of_the_user_v1_allowlist_private_post
      type: object
    Body_create_private_denylist_of_the_user_v1_denylist_private_post:
      properties:
        payload:
          allOf:
            - $ref: "#/components/schemas/PrivateAclGroupListInput"
          description: The information needed to create a new denylist
          title: Name of the list
      required:
        - payload
      title: Body_create_private_denylist_of_the_user_v1_denylist_private_post
      type: object
    Body_delete_token_v1_origin_token_delete:
      properties:
        origin_token_id:
          title: Origin Token Id
          type: string
      required:
        - origin_token_id
      title: Body_delete_token_v1_origin_token_delete
      type: object
    Body_disable_origin_token_v1_origin_token_disable_put:
      properties:
        origin_token_id:
          title: Origin Token Id
          type: string
      required:
        - origin_token_id
      title: Body_disable_origin_token_v1_origin_token_disable_put
      type: object
    Body_enable_origin_token_v1_origin_token_enable_put:
      properties:
        origin_token_id:
          title: Origin Token Id
          type: string
      required:
        - origin_token_id
      title: Body_enable_origin_token_v1_origin_token_enable_put
      type: object
    Body_parse_user_agents_csv_v1_ua_csv_post:
      properties:
        csv_file:
          description: The CSV file with the User Agents to parse
          format: binary
          title: CSV File upload
          type: string
      required:
        - csv_file
      title: Body_parse_user_agents_csv_v1_ua_csv_post
      type: object
    Body_query_asn_prefix_information_v1_asn_prefix_post:
      properties:
        prefix:
          format: ipvanynetwork
          title: Prefix
          type: string
      required:
        - prefix
      title: Body_query_asn_prefix_information_v1_asn_prefix_post
      type: object
    Body_query_datacenter_prefix_information_v1_datacenter_prefix_post:
      properties:
        prefix:
          format: ipvanynetwork
          title: Prefix
          type: string
      required:
        - prefix
      title: Body_query_datacenter_prefix_information_v1_datacenter_prefix_post
      type: object
    Body_query_origin_status_v1_origin_status_post:
      properties:
        address:
          anyOf:
            - format: ipv4
              type: string
            - format: ipv6
              type: string
          description: The IP address to query the status
          title: IP address
        cookie_id:
          description: The cookie id to query the status
          format: uuid
          title: Cookie ID
          type: string
      title: Body_query_origin_status_v1_origin_status_post
      type: object
    Body_query_origin_token_info_v1_origin_token_post:
      properties:
        origin_token_id:
          title: Origin Token Id
          type: string
      required:
        - origin_token_id
      title: Body_query_origin_token_info_v1_origin_token_post
      type: object
    Body_update_configuration_origin_v1_origin_put:
      properties:
        config:
          description: The configuration information to store in the origin.
          title: Configuration
          type: object
        origin:
          description: The origin site to modify the configruation
          title: Origin
          type: string
      required:
        - origin
      title: Body_update_configuration_origin_v1_origin_put
      type: object
    Body_update_origin_status_v1_origin_status_put:
      properties:
        log_id:
          description: The log id to change the status
          format: uuid
          title: Origin Log ID
          type: string
        scope:
          description: The scope to change the status
          enum:
            - address_and_cookie
            - address
            - cookie
          title: Scope of the change
          type: string
        status:
          description: The status id to change the details
          enum:
            - pass
            - block
            - challenge
            - bypass
            - ignore
          title: Status to change
          type: string
      title: Body_update_origin_status_v1_origin_status_put
      type: object
    Body_update_private_allowlist_of_the_user_v1_allowlist_private__allowlist_id__put:
      properties:
        description:
          description: The human readable full description of the list
          title: Description of the list
          type: string
        name:
          description: The name of the list
          title: Name of the list
          type: string
        tags:
          description: The list of tags to associate with the list
          items:
            pattern: ^[A-Z0-9]+(?:-[A-Z0-9]+)*$
            type: string
          title: Taxonomies of the list
          type: array
        ttl:
          description: Optional. The Time To Live (TTL) of a resource in the list in seconds.
          title: Expiry time
          type: integer
      title: Body_update_private_allowlist_of_the_user_v1_allowlist_private__allowlist_id__put
      type: object
    Body_update_private_content_of_the_allowlist_of_the_user_v1_allowlist_private__allowlist_id__content_put:
      properties:
        append:
          description: The name of the resources to append to the allowlist
          items:
            type: string
          title: List of resources to append
          type: array
        remove:
          description: The name of the resources to remove from the allowlist
          items:
            type: string
          title: List of resources to remove
          type: array
      title: Body_update_private_content_of_the_allowlist_of_the_user_v1_allowlist_private__allowlist_id__content_put
      type: object
    Body_update_private_content_of_the_denylist_of_the_user_v1_denylist_private__denylist_id__content_put:
      properties:
        append:
          description: The name of the resources to append to the denylist
          items:
            type: string
          title: List of resources to append
          type: array
        remove:
          description: The name of the resources to remove from the denylist
          items:
            type: string
          title: List of resources to remove
          type: array
      title: Body_update_private_content_of_the_denylist_of_the_user_v1_denylist_private__denylist_id__content_put
      type: object
    Body_update_private_denylist_of_the_user_v1_denylist_private__denylist_id__put:
      properties:
        description:
          description: The human readable full description of the list
          title: Description of the list
          type: string
        name:
          description: The name of the list
          title: Name of the list
          type: string
        tags:
          description: The list of tags to associate with the list
          items:
            pattern: ^[A-Z0-9]+(?:-[A-Z0-9]+)*$
            type: string
          title: Taxonomies of the list
          type: array
        ttl:
          description: Optional. The Time To Live (TTL) of a resource in the list in seconds.
          title: Expiry time
          type: integer
      title: Body_update_private_denylist_of_the_user_v1_denylist_private__denylist_id__put
      type: object
    DatacenterOutput:
      properties:
        asn:
          title: Asn
          type: string
        description:
          title: Description
          type: string
        name:
          title: Name
          type: string
        prefixes:
          title: Prefixes
          type: string
        risk:
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
          title: Risk
          type: string
        score:
          title: Score
          type: integer
        self:
          title: Self
          type: string
        source:
          title: Source
          type: string
        status:
          default: enabled
          enum:
            - disabled
            - enabled
          title: Status
          type: string
      required:
        - self
        - name
        - source
        - asn
        - prefixes
      title: DatacenterOutput
      type: object
    DatacenterPrefixOutput:
      properties:
        datacenter:
          title: Datacenter
          type: string
        ip_abuse_total:
          default: 0
          title: Ip Abuse Total
          type: integer
        max_score:
          default: 0
          title: Max Score
          type: integer
        min_score:
          default: 0
          title: Min Score
          type: integer
        risk:
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
          title: Risk
          type: string
        score:
          title: Score
          type: integer
        self:
          title: Self
          type: string
      required:
        - datacenter
      title: DatacenterPrefixOutput
      type: object
    DatacenterPrefixesOutput:
      properties:
        prefixes_v4:
          items:
            $ref: "#/components/schemas/DatacenterPrefixOutput"
          title: Prefixes V4
          type: array
        prefixes_v6:
          items:
            $ref: "#/components/schemas/DatacenterPrefixOutput"
          title: Prefixes V6
          type: array
        self:
          title: Self
          type: string
      required:
        - self
        - prefixes_v4
        - prefixes_v6
      title: DatacenterPrefixesOutput
      type: object
    DatasetTypeCollectionOutput:
      properties:
        self:
          title: Self
          type: string
        types:
          items:
            $ref: "#/components/schemas/DatasetTypeOutput"
          title: Types
          type: array
      required:
        - self
        - types
      title: DatasetTypeCollectionOutput
      type: object
    DatasetTypeOutput:
      description: The Status information
      properties:
        description:
          title: Description
          type: string
        items:
          title: Items
          type: integer
        name:
          title: Name
          type: string
        self:
          title: Self
          type: string
        status:
          enum:
            - ENABLED
            - DISABLED
          title: Status
          type: string
        type:
          enum:
            - ip
            - domain
          title: Type
          type: string
      required:
        - self
        - type
        - name
        - description
        - status
        - items
      title: DatasetTypeOutput
      type: object
    DeviceOutput:
      properties:
        code:
          title: Code
          type: string
        description:
          title: Description
          type: string
      required:
        - code
        - description
      title: DeviceOutput
      type: object
    FamilyOutput:
      properties:
        code:
          title: Code
          type: string
        description:
          title: Description
          type: string
      required:
        - code
        - description
      title: FamilyOutput
      type: object
    GeoIPCollectionOutput:
      properties:
        results:
          items:
            $ref: "#/components/schemas/GeoIPOutput"
          title: Results
          type: array
        self:
          title: Self
          type: string
      required:
        - self
        - results
      title: GeoIPCollectionOutput
      type: object
    GeoIPOutput:
      properties:
        accuracy_radius:
          title: Accuracy Radius
          type: number
        asn_country_iso_code:
          title: Asn Country Iso Code
          type: string
        city_geoname_code:
          title: City Geoname Code
          type: integer
        city_name:
          title: City Name
          type: string
        continent_code:
          title: Continent Code
          type: string
        country_iso_code:
          title: Country Iso Code
          type: string
        hostnames:
          items:
            type: string
          title: Hostnames
          type: array
        latitude:
          title: Latitude
          type: number
        longitude:
          title: Longitude
          type: number
        postal_code:
          title: Postal Code
          type: string
        region_geoname_code:
          title: Region Geoname Code
          type: integer
        region_name:
          title: Region Name
          type: string
        self:
          title: Self
          type: string
        time_zone:
          title: Time Zone
          type: string
      required:
        - hostnames
        - latitude
        - longitude
        - time_zone
        - accuracy_radius
        - postal_code
        - city_name
        - city_geoname_code
        - region_name
        - region_geoname_code
        - country_iso_code
        - asn_country_iso_code
        - continent_code
      title: GeoIPOutput
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: "#/components/schemas/ValidationError"
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    IPAssessmentCollectionOutput:
      properties:
        results:
          items:
            $ref: "#/components/schemas/IPAssessmentOutput"
          title: Results
          type: array
        self:
          title: Self
          type: string
      required:
        - self
        - results
      title: IPAssessmentCollectionOutput
      type: object
    IPAssessmentOutput:
      properties:
        allowlisted:
          title: Allowlisted
          type: string
        asn:
          title: Asn
          type: string
        asn_prefix:
          title: Asn Prefix
          type: string
        datacenter:
          title: Datacenter
          type: string
        datacenter_prefix:
          title: Datacenter Prefix
          type: string
        datasets:
          items:
            type: string
          title: Datasets
          type: array
        denylisted:
          title: Denylisted
          type: string
        first_appearance:
          items:
            type: string
          title: First Appearance
          type: array
        last_appearance:
          items:
            type: string
          title: Last Appearance
          type: array
        reason:
          title: Reason
          type: string
        risk:
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
          title: Risk
          type: string
        score:
          title: Score
          type: integer
        self:
          title: Self
          type: string
        sources:
          items:
            type: string
          title: Sources
          type: array
      required:
        - risk
        - datasets
        - sources
        - first_appearance
        - last_appearance
        - asn
        - asn_prefix
        - reason
        - denylisted
        - allowlisted
        - datacenter
        - datacenter_prefix
      title: IPAssessmentOutput
      type: object
    IPListCollectionOutput:
      properties:
        addresses:
          items:
            $ref: "#/components/schemas/IPListOutput"
          title: Addresses
          type: array
        self:
          title: Self
          type: string
      required:
        - self
        - addresses
      title: IPListCollectionOutput
      type: object
    IPListOutput:
      properties:
        dataset:
          title: Dataset
          type: string
        expiry:
          title: Expiry
          type: integer
        last_report:
          title: Last Report
          type: integer
        protocol:
          enum:
            - ALL
            - IPV4
            - IPV6
          title: Protocol
          type: string
        self:
          title: Self
          type: string
        tags:
          items:
            pattern: ^[A-Z0-9]+(?:-[A-Z0-9]+)*$
            type: string
          title: Tags
          type: array
        total_reports:
          title: Total Reports
          type: integer
      required:
        - self
        - last_report
        - total_reports
        - dataset
        - expiry
        - protocol
      title: IPListOutput
      type: object
    IPLogCollectionOutput:
      properties:
        logs:
          items:
            $ref: "#/components/schemas/IPLogOutput"
          title: Logs
          type: array
        self:
          title: Self
          type: string
      required:
        - logs
        - debug
      title: IPLogCollectionOutput
      type: object
    IPLogOutput:
      properties:
        action:
          enum:
            - ADD
            - DELETE
          title: Action
          type: string
        cidr:
          title: Cidr
          type: string
        dataset:
          title: Dataset
          type: string
        lapse:
          enum:
            - 1H
            - 6H
            - 12H
            - 1D
            - 7D
            - 30D
            - 90D
            - 180D
            - 365D
          title: Lapse
          type: string
        risk:
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
          title: Risk
          type: string
        score:
          title: Score
          type: integer
        self:
          title: Self
          type: string
        source:
          title: Source
          type: string
        timestamp:
          title: Timestamp
          type: integer
      required:
        - risk
        - dataset
        - source
        - lapse
        - action
        - timestamp
        - debug
      title: IPLogOutput
      type: object
    OSOutput:
      properties:
        code:
          title: Code
          type: string
        description:
          title: Description
          type: string
        family:
          title: Family
          type: string
        vendor:
          title: Vendor
          type: string
      required:
        - code
        - description
        - family
        - vendor
      title: OSOutput
      type: object
    OriginAddressStatusCollectionOutput:
      properties:
        addresses:
          items:
            $ref: "#/components/schemas/OriginAddressStatusOutput"
          title: Addresses
          type: array
        page:
          title: Page
          type: integer
        page_size:
          title: Page Size
          type: integer
        self:
          title: Self
          type: string
      required:
        - self
        - page
        - page_size
        - addresses
      title: OriginAddressStatusCollectionOutput
      type: object
    OriginAddressStatusOutput:
      properties:
        address:
          title: Address
          type: string
        created_at:
          title: Created At
          type: integer
        expiry:
          title: Expiry
          type: integer
        log_id:
          title: Log Id
          type: string
        status:
          title: Status
          type: string
        updated_at:
          title: Updated At
          type: integer
      required:
        - status
        - address
      title: OriginAddressStatusOutput
      type: object
    OriginClientAnalysisCollectionOutput:
      properties:
        data:
          items:
            $ref: "#/components/schemas/OriginClientAnalysisOutput"
          title: Data
          type: array
        from_timestamp:
          title: From Timestamp
          type: integer
        interval:
          title: Interval
          type: string
        self:
          title: Self
          type: string
        to_timestamp:
          title: To Timestamp
          type: integer
      required:
        - self
        - interval
        - from_timestamp
        - to_timestamp
        - data
      title: OriginClientAnalysisCollectionOutput
      type: object
    OriginClientAnalysisOutput:
      properties:
        client_browser:
          title: Client Browser
          type: integer
        client_crawler:
          title: Client Crawler
          type: integer
        client_email:
          title: Client Email
          type: integer
        client_library:
          title: Client Library
          type: integer
        client_mobile_browser:
          title: Client Mobile Browser
          type: integer
        client_multimedia_player:
          title: Client Multimedia Player
          type: integer
        client_offline_browser:
          title: Client Offline Browser
          type: integer
        client_total:
          title: Client Total
          type: integer
        client_ua_anonymizer:
          title: Client Ua Anonymizer
          type: integer
        client_unrecognized:
          title: Client Unrecognized
          type: integer
        client_validator:
          title: Client Validator
          type: integer
        client_wap_browser:
          title: Client Wap Browser
          type: integer
        crawler_feed_fetcher:
          title: Crawler Feed Fetcher
          type: integer
        crawler_link_checker:
          title: Crawler Link Checker
          type: integer
        crawler_marketing:
          title: Crawler Marketing
          type: integer
        crawler_screenshot_creator:
          title: Crawler Screenshot Creator
          type: integer
        crawler_search_engine_bot:
          title: Crawler Search Engine Bot
          type: integer
        crawler_site_monitor:
          title: Crawler Site Monitor
          type: integer
        crawler_speed_tester:
          title: Crawler Speed Tester
          type: integer
        crawler_tool:
          title: Crawler Tool
          type: integer
        crawler_total:
          title: Crawler Total
          type: integer
        crawler_uncategorised:
          title: Crawler Uncategorised
          type: integer
        crawler_unrecognized:
          title: Crawler Unrecognized
          type: integer
        crawler_virus_scanner:
          title: Crawler Virus Scanner
          type: integer
        crawler_vulnerability_scanner:
          title: Crawler Vulnerability Scanner
          type: integer
        crawler_web_scraper:
          title: Crawler Web Scraper
          type: integer
        timestamp:
          title: Timestamp
          type: integer
        total:
          title: Total
          type: integer
      required:
        - timestamp
        - total
        - client_total
        - crawler_total
        - client_browser
        - client_crawler
        - client_email
        - client_library
        - client_mobile_browser
        - client_multimedia_player
        - client_offline_browser
        - client_unrecognized
        - client_ua_anonymizer
        - client_validator
        - client_wap_browser
        - crawler_feed_fetcher
        - crawler_link_checker
        - crawler_marketing
        - crawler_screenshot_creator
        - crawler_search_engine_bot
        - crawler_site_monitor
        - crawler_speed_tester
        - crawler_tool
        - crawler_uncategorised
        - crawler_unrecognized
        - crawler_virus_scanner
        - crawler_vulnerability_scanner
        - crawler_web_scraper
      title: OriginClientAnalysisOutput
      type: object
    OriginCollectionOutput:
      properties:
        origins:
          items:
            $ref: "#/components/schemas/OriginOutput"
          title: Origins
          type: array
        self:
          title: Self
          type: string
      required:
        - self
        - origins
      title: OriginCollectionOutput
      type: object
    OriginCookieIdStatusCollectionOutput:
      properties:
        cookie_ids:
          items:
            $ref: "#/components/schemas/OriginCookieIdStatusOutput"
          title: Cookie Ids
          type: array
        page:
          title: Page
          type: integer
        page_size:
          title: Page Size
          type: integer
        self:
          title: Self
          type: string
      required:
        - self
        - page
        - page_size
        - cookie_ids
      title: OriginCookieIdStatusCollectionOutput
      type: object
    OriginCookieIdStatusOutput:
      properties:
        cookie_id:
          title: Cookie Id
          type: string
        created_at:
          title: Created At
          type: integer
        expiry:
          title: Expiry
          type: integer
        log_id:
          title: Log Id
          type: string
        status:
          title: Status
          type: string
        updated_at:
          title: Updated At
          type: integer
      required:
        - status
        - cookie_id
      title: OriginCookieIdStatusOutput
      type: object
    OriginOutput:
      properties:
        actions:
          title: Actions
          type: string
        addresses:
          title: Addresses
          type: string
        config:
          title: Config
          type: object
        cookies:
          title: Cookies
          type: string
        created_at:
          title: Created At
          type: integer
        logs:
          title: Logs
          type: string
        origin:
          title: Origin
          type: string
        scripts:
          title: Scripts
          type: string
        self:
          title: Self
          type: string
        status:
          enum:
            - ENABLED
            - DISABLED
          title: Status
          type: string
        token:
          title: Token
          type: string
        updated_at:
          title: Updated At
          type: integer
      required:
        - self
        - origin
        - status
        - token
        - config
        - logs
        - addresses
        - cookies
        - actions
        - scripts
        - created_at
        - updated_at
      title: OriginOutput
      type: object
    OriginScriptsOutput:
      properties:
        detection:
          title: Detection
          type: string
        self:
          title: Self
          type: string
      required:
        - self
        - detection
      title: OriginScriptsOutput
      type: object
    OriginStatusDetailsCollectionOutput:
      properties:
        list:
          items:
            $ref: "#/components/schemas/OriginStatusDetailsOutput"
          title: List
          type: array
        self:
          title: Self
          type: string
      required:
        - self
        - list
      title: OriginStatusDetailsCollectionOutput
      type: object
    OriginStatusDetailsOutput:
      properties:
        cardinality:
          title: Cardinality
          type: integer
        description:
          title: Description
          type: string
        self:
          title: Self
          type: string
        status:
          title: Status
          type: string
      required:
        - self
        - status
        - description
        - cardinality
      title: OriginStatusDetailsOutput
      type: object
    OriginStatusOutput:
      properties:
        address:
          $ref: "#/components/schemas/OriginAddressStatusOutput"
        cookie_id:
          $ref: "#/components/schemas/OriginCookieIdStatusOutput"
        self:
          title: Self
          type: string
      required:
        - self
      title: OriginStatusOutput
      type: object
    OriginTokenCollectionOutput:
      properties:
        self:
          title: Self
          type: string
        tokens:
          items:
            $ref: "#/components/schemas/OriginTokenOutput"
          title: Tokens
          type: array
      required:
        - self
        - tokens
      title: OriginTokenCollectionOutput
      type: object
    OriginTokenInput:
      properties:
        origin:
          title: Origin
          type: string
      required:
        - origin
      title: OriginTokenInput
      type: object
    OriginTokenOutput:
      properties:
        created_at:
          title: Created At
          type: integer
        origin:
          title: Origin
          type: string
        region_id:
          title: Region Id
          type: string
        self:
          title: Self
          type: string
        status:
          enum:
            - ENABLED
            - DISABLED
          title: Status
          type: string
        updated_at:
          title: Updated At
          type: integer
      required:
        - self
        - region_id
        - origin
        - status
        - created_at
        - updated_at
      title: OriginTokenOutput
      type: object
    OriginTrafficAnalysisCollectionOutput:
      properties:
        data:
          items:
            $ref: "#/components/schemas/OriginTrafficAnalysisOutput"
          title: Data
          type: array
        from_timestamp:
          title: From Timestamp
          type: integer
        interval:
          title: Interval
          type: string
        self:
          title: Self
          type: string
        to_timestamp:
          title: To Timestamp
          type: integer
      required:
        - self
        - interval
        - from_timestamp
        - to_timestamp
        - data
      title: OriginTrafficAnalysisCollectionOutput
      type: object
    OriginTrafficAnalysisOutput:
      properties:
        asn_risky:
          title: Asn Risky
          type: integer
        bots:
          title: Bots
          type: integer
        datacenters:
          title: Datacenters
          type: integer
        denylists:
          title: Denylists
          type: integer
        network_country_mismatches:
          title: Network Country Mismatches
          type: integer
        score_high:
          title: Score High
          type: integer
        timestamp:
          title: Timestamp
          type: integer
        total:
          title: Total
          type: integer
        webdrivers:
          title: Webdrivers
          type: integer
      required:
        - timestamp
        - total
        - score_high
        - bots
        - denylists
        - datacenters
        - webdrivers
        - asn_risky
        - network_country_mismatches
      title: OriginTrafficAnalysisOutput
      type: object
    PrivateAclGroupListCollectionOutput:
      properties:
        lists:
          items:
            $ref: "#/components/schemas/PrivateAclGroupListOutput"
          title: Lists
          type: array
        self:
          title: Self
          type: string
      required:
        - self
        - lists
      title: PrivateAclGroupListCollectionOutput
      type: object
    PrivateAclGroupListInput:
      properties:
        description:
          title: Description
          type: string
        name:
          title: Name
          type: string
        resource_type:
          enum:
            - UNKNOWN
            - CIDR
            - COUNTRY
            - CONTINENT
            - AS
            - DATACENTER
            - USERAGENT
          title: Resource Type
          type: string
        tags:
          items:
            pattern: ^[A-Z0-9]+(?:-[A-Z0-9]+)*$
            type: string
          title: Tags
          type: array
        ttl:
          title: Ttl
          type: integer
      required:
        - name
        - description
        - resource_type
        - tags
      title: PrivateAclGroupListInput
      type: object
    PrivateAclGroupListOutput:
      properties:
        content:
          title: Content
          type: string
        created_at:
          title: Created At
          type: integer
        description:
          title: Description
          type: string
        list_type:
          enum:
            - UNKNOWN
            - ALLOW
            - DENY
          title: List Type
          type: string
        name:
          title: Name
          type: string
        origins:
          $ref: "#/components/schemas/AclGroupOriginCollectionOutput"
        resource_type:
          enum:
            - UNKNOWN
            - CIDR
            - COUNTRY
            - CONTINENT
            - AS
            - DATACENTER
            - USERAGENT
          title: Resource Type
          type: string
        self:
          title: Self
          type: string
        tags:
          items:
            pattern: ^[A-Z0-9]+(?:-[A-Z0-9]+)*$
            type: string
          title: Tags
          type: array
        ttl:
          title: Ttl
          type: integer
        updated_at:
          title: Updated At
          type: integer
      required:
        - self
        - name
        - description
        - resource_type
        - list_type
        - tags
        - created_at
        - updated_at
        - content
      title: PrivateAclGroupListOutput
      type: object
    PrivateAclListCollectionOutput:
      properties:
        asns:
          items:
            type: integer
          title: Asns
          type: array
        cidrs:
          items:
            anyOf:
              - format: ipv4network
                type: string
              - format: ipv6network
                type: string
          title: Cidrs
          type: array
        continents:
          items:
            enum:
              - AF
              - AN
              - AS
              - EU
              - NA
              - OC
              - SA
            type: string
          title: Continents
          type: array
        countries:
          items:
            enum:
              - AW
              - AF
              - AO
              - AI
              - AX
              - AL
              - AD
              - AE
              - AR
              - AM
              - AS
              - AQ
              - TF
              - AG
              - AU
              - AT
              - AZ
              - BI
              - BE
              - BJ
              - BQ
              - BF
              - BD
              - BG
              - BH
              - BS
              - BA
              - BL
              - BY
              - BZ
              - BM
              - BO
              - BR
              - BB
              - BN
              - BT
              - BV
              - BW
              - CF
              - CA
              - CC
              - CH
              - CL
              - CN
              - CI
              - CM
              - CD
              - CG
              - CK
              - CO
              - KM
              - CV
              - CR
              - CU
              - CW
              - CX
              - KY
              - CY
              - CZ
              - DE
              - DJ
              - DM
              - DK
              - DO
              - DZ
              - EC
              - EG
              - ER
              - EH
              - ES
              - EE
              - ET
              - FI
              - FJ
              - FK
              - FR
              - FO
              - FM
              - GA
              - GB
              - GE
              - GG
              - GH
              - GI
              - GN
              - GP
              - GM
              - GW
              - GQ
              - GR
              - GD
              - GL
              - GT
              - GF
              - GU
              - GY
              - HK
              - HM
              - HN
              - HR
              - HT
              - HU
              - ID
              - IM
              - IN
              - IO
              - IE
              - IR
              - IQ
              - IS
              - IL
              - IT
              - JM
              - JE
              - JO
              - JP
              - KZ
              - KE
              - KG
              - KH
              - KI
              - KN
              - KR
              - KW
              - LA
              - LB
              - LR
              - LY
              - LC
              - LI
              - LK
              - LS
              - LT
              - LU
              - LV
              - MO
              - MF
              - MA
              - MC
              - MD
              - MG
              - MV
              - MX
              - MH
              - MK
              - ML
              - MT
              - MM
              - ME
              - MN
              - MP
              - MZ
              - MR
              - MS
              - MQ
              - MU
              - MW
              - MY
              - YT
              - NA
              - NC
              - NE
              - NF
              - NG
              - NI
              - NU
              - NL
              - NO
              - NP
              - NR
              - NZ
              - OM
              - PK
              - PA
              - PN
              - PE
              - PH
              - PW
              - PG
              - PL
              - PR
              - KP
              - PT
              - PY
              - PS
              - PF
              - QA
              - RE
              - RO
              - RU
              - RW
              - SA
              - SD
              - SN
              - SG
              - GS
              - SH
              - SJ
              - SB
              - SL
              - SV
              - SM
              - SO
              - PM
              - RS
              - SS
              - ST
              - SR
              - SK
              - SI
              - SE
              - SZ
              - SX
              - SC
              - SY
              - TC
              - TD
              - TG
              - TH
              - TJ
              - TK
              - TM
              - TL
              - TO
              - TT
              - TN
              - TR
              - TV
              - TW
              - TZ
              - UG
              - UA
              - UM
              - UY
              - US
              - UZ
              - VA
              - VC
              - VE
              - VG
              - VI
              - VN
              - VU
              - WF
              - WS
              - YE
              - ZA
              - ZM
              - ZW
            type: string
          title: Countries
          type: array
        datacenters:
          items:
            type: string
          title: Datacenters
          type: array
        self:
          title: Self
          type: string
        user_agents:
          items:
            type: string
          title: User Agents
          type: array
      required:
        - self
      title: PrivateAclListCollectionOutput
      type: object
    PublicAclGroupListCollectionOutput:
      properties:
        lists:
          items:
            $ref: "#/components/schemas/PublicAclGroupListOutput"
          title: Lists
          type: array
        self:
          title: Self
          type: string
      required:
        - self
        - lists
      title: PublicAclGroupListCollectionOutput
      type: object
    PublicAclGroupListOutput:
      properties:
        created_at:
          title: Created At
          type: integer
        description:
          title: Description
          type: string
        list_type:
          enum:
            - UNKNOWN
            - ALLOW
            - DENY
          title: List Type
          type: string
        name:
          title: Name
          type: string
        origins:
          $ref: "#/components/schemas/AclGroupOriginCollectionOutput"
        resource_type:
          enum:
            - UNKNOWN
            - CIDR
            - COUNTRY
            - CONTINENT
            - AS
            - DATACENTER
            - USERAGENT
          title: Resource Type
          type: string
        self:
          title: Self
          type: string
        status:
          enum:
            - INACTIVE
            - ACTIVE
            - EXPIRED
          title: Status
          type: string
        tags:
          items:
            pattern: ^[A-Z0-9]+(?:-[A-Z0-9]+)*$
            type: string
          title: Tags
          type: array
        ttl:
          title: Ttl
          type: integer
        updated_at:
          title: Updated At
          type: integer
      required:
        - self
        - name
        - description
        - resource_type
        - list_type
        - tags
        - created_at
        - updated_at
      title: PublicAclGroupListOutput
      type: object
    SourceCollectionOutput:
      properties:
        self:
          title: Self
          type: string
        sources:
          items:
            $ref: "#/components/schemas/v1__models__source__SourceOutput"
          title: Sources
          type: array
      required:
        - self
        - sources
      title: SourceCollectionOutput
      type: object
    SourceTimeRangeOutput:
      properties:
        items:
          title: Items
          type: integer
        lapse:
          enum:
            - 1H
            - 6H
            - 12H
            - 1D
            - 7D
            - 30D
            - 90D
            - 180D
            - 365D
          title: Lapse
          type: string
        risk:
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
          title: Risk
          type: string
        score:
          title: Score
          type: integer
        self:
          title: Self
          type: string
        source:
          title: Source
          type: string
        updated_at:
          title: Updated At
          type: integer
      required:
        - self
        - source
        - lapse
        - items
        - score
        - risk
        - updated_at
      title: SourceTimeRangeOutput
      type: object
    TokenOutput:
      properties:
        created_at:
          title: Created At
          type: integer
        last_minute_bucket_init_value:
          title: Last Minute Bucket Init Value
          type: integer
        last_minute_bucket_refill_ratio:
          title: Last Minute Bucket Refill Ratio
          type: integer
        last_minute_bucket_refresh:
          title: Last Minute Bucket Refresh
          type: integer
        last_minute_bucket_value:
          title: Last Minute Bucket Value
          type: integer
        last_month_bucket_init_value:
          title: Last Month Bucket Init Value
          type: integer
        last_month_bucket_refresh:
          title: Last Month Bucket Refresh
          type: integer
        last_month_bucket_value:
          title: Last Month Bucket Value
          type: integer
        region_id:
          title: Region Id
          type: string
        self:
          title: Self
          type: string
        status:
          enum:
            - ENABLED
            - DISABLED
          title: Status
          type: string
        updated_at:
          title: Updated At
          type: integer
      required:
        - self
        - region_id
        - last_month_bucket_init_value
        - last_month_bucket_value
        - last_month_bucket_refresh
        - last_minute_bucket_init_value
        - last_minute_bucket_refill_ratio
        - last_minute_bucket_value
        - last_minute_bucket_refresh
        - status
        - created_at
        - updated_at
      title: TokenOutput
      type: object
    TypeOutput:
      properties:
        code:
          title: Code
          type: string
        description:
          title: Description
          type: string
        type:
          enum:
            - INTERACTIVE
            - CRAWLER
            - UNKNOWN
          title: Type
          type: string
      required:
        - code
        - description
        - type
      title: TypeOutput
      type: object
    UACollectionOutput:
      properties:
        results:
          items:
            $ref: "#/components/schemas/UAOutput"
          title: Results
          type: array
        self:
          title: Self
          type: string
      required:
        - self
        - results
      title: UACollectionOutput
      type: object
    UAOutput:
      properties:
        agent:
          title: Agent
          type: string
        classification:
          enum:
            - CRAWLER
            - CLIENT
            - UNKNOWN
          title: Classification
          type: string
        device:
          title: Device
          type: string
        engine:
          title: Engine
          type: string
        family:
          title: Family
          type: string
        frequent:
          enum:
            - COMMON
            - RARE
            - VERY_RARE
            - UNKNOWN
          title: Frequent
          type: string
        latest:
          title: Latest
          type: string
        os:
          title: Os
          type: string
        self:
          title: Self
          type: string
        string:
          title: String
          type: string
        type:
          title: Type
          type: string
        vendor:
          title: Vendor
          type: string
        version:
          title: Version
          type: string
      required:
        - string
        - classification
        - type
        - agent
        - engine
        - version
        - latest
        - family
        - vendor
        - os
        - device
        - frequent
      title: UAOutput
      type: object
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object
    VendorOutput:
      properties:
        code:
          title: Code
          type: string
        description:
          title: Description
          type: string
      required:
        - code
        - description
      title: VendorOutput
      type: object
    v1__models__source__SourceOutput:
      properties:
        dataset:
          title: Dataset
          type: string
        description:
          title: Description
          type: string
        maximum_risk:
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
          title: Maximum Risk
          type: string
        maximum_score:
          title: Maximum Score
          type: integer
        minimum_risk:
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
          title: Minimum Risk
          type: string
        minimum_score:
          title: Minimum Score
          type: integer
        name:
          title: Name
          type: string
        refresh:
          enum:
            - 1H
            - 6H
            - 12H
            - 1D
            - 7D
            - 30D
            - 90D
            - 180D
            - 365D
          title: Refresh
          type: string
        self:
          title: Self
          type: string
        source:
          title: Source
          type: string
        subscriptions:
          items:
            enum:
              - FREE
              - BASIC
              - PRO
              - ENTERPRISE
            type: string
          title: Subscriptions
          type: array
        time_ranges:
          items:
            type: string
          title: Time Ranges
          type: array
        updated_at:
          title: Updated At
          type: integer
        url:
          title: Url
          type: string
      required:
        - self
        - dataset
        - name
        - description
        - source
        - url
        - refresh
        - minimum_score
        - maximum_score
        - minimum_risk
        - maximum_risk
        - time_ranges
        - updated_at
        - subscriptions
      title: SourceOutput
      type: object
    v1__models__token__SourceOutput:
      properties:
        address:
          title: Address
          type: string
        body:
          title: Body
          type: string
        method:
          title: Method
          type: string
        status_code:
          title: Status Code
          type: integer
        ua_string:
          title: Ua String
          type: string
        uri:
          title: Uri
          type: string
      required:
        - address
        - ua_string
        - status_code
        - uri
        - body
        - method
      title: SourceOutput
      type: object
  securitySchemes:
    HTTPBearer:
      scheme: bearer
      type: http
