servers:
- url: https://api.azion.com/v4
openapi: 3.0.0
info:
  title: azion-api
  version: 4.0.0
  description: The AZION v4 REST API.
  contact:
    name: Azion Support
    url: https://www.azion.com/en/contact/
    email: support@azion.com
paths:
  /workspace/applications:
    get:
      operationId: list_applications
      description: List all Applications owned by your account.
      summary: List Applications
      parameters:
      - in: query
        name: active
        schema:
          type: boolean
        description: Filter by active status.
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: last_editor
        schema:
          type: string
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (less than or equal).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Applications
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedApplicationList'
          description: List of applications retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_application
      description: Create a new Application in your account.
      summary: Create an Application
      tags:
      - Applications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse'
          description: Application created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/applications/{application_id}:
    get:
      operationId: retrieve_application
      description: Retrieve details of a specific Application in your account.
      summary: Retrieve details of an Application
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      tags:
      - Applications
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse'
          description: Application details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_application
      description: Update an existing Application. This replaces the entire Application
        with the new data provided.
      summary: Update an Application
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      tags:
      - Applications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse'
          description: Application updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_application
      description: Update one or more fields of an existing Application without affecting
        other fields.
      summary: Partially update an Application
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      tags:
      - Applications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedApplicationRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse'
          description: Application partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_application
      description: Delete a specific Application in your account.
      summary: Delete an Application
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      tags:
      - Applications
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Application deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/applications/{application_id}/clone:
    post:
      operationId: clone_application
      description: Create a new Application by performing a deep copy of an existing
        Application, including its Cache Settings, Origins, Error Responses, Function
        Instances, and Rules Engine.
      summary: Clone an Application
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      tags:
      - Applications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloneApplicationRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse'
          description: Application cloned successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/applications/{application_id}/cache_settings:
    get:
      operationId: list_cache_settings
      description: List all Cache Settings owned by your account.
      summary: List all Applications Cache Settings
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Applications - Cache Settings
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCacheSettingList'
          description: List of cache settings retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_cache_setting
      description: Create a new Cache Setting in your account.
      summary: Create an Applications Cache Setting
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      tags:
      - Applications - Cache Settings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CacheSettingRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CacheSettingResponse'
          description: Cache setting created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/applications/{application_id}/cache_settings/{cache_setting_id}:
    get:
      operationId: retrieve_cache_setting
      description: Retrieve details of a specific Cache Setting in your account.
      summary: Retrieve details of an Applications Cache Setting
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: cache_setting_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the cache setting.
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      tags:
      - Applications - Cache Settings
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CacheSettingResponse'
          description: Cache setting details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_cache_setting
      description: Update an existing Cache Setting. This replaces the entire Cache
        Setting with the new data provided.
      summary: Update an Applications Cache Setting
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: cache_setting_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the cache setting.
        required: true
      tags:
      - Applications - Cache Settings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CacheSettingRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CacheSettingResponse'
          description: Cache setting updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_cache_setting
      description: Update one or more fields of an existing Cache Setting without
        affecting other fields.
      summary: Partially update an Applications Cache Setting
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: cache_setting_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the cache setting.
        required: true
      tags:
      - Applications - Cache Settings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCacheSettingRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CacheSettingResponse'
          description: Cache setting partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_cache_setting
      description: Delete a specific Cache Setting in your account.
      summary: Delete an Applications Cache Setting
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: cache_setting_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the cache setting.
        required: true
      tags:
      - Applications - Cache Settings
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Cache setting deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/applications/{application_id}/device_groups:
    get:
      operationId: list_device_groups
      description: List all Device Groups owned by your account.
      summary: List Applications Device Groups
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      - in: query
        name: user_agent
        schema:
          type: string
        description: Filter by user agent (case-insensitive, partial match).
      tags:
      - Applications - Device Groups
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDeviceGroupList'
          description: List of device groups retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_device_group
      description: Create a new Device Group in your account.
      summary: Create an Applications Device Group
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      tags:
      - Applications - Device Groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceGroupRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceGroupResponse'
          description: Device group created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/applications/{application_id}/device_groups/{device_group_id}:
    get:
      operationId: retrieve_device_group
      description: Retrieve details of a specific Device Group in your account.
      summary: Retrieve details of a Device Group
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: device_group_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the device group.
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      tags:
      - Applications - Device Groups
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceGroupResponse'
          description: Device group details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_device_group
      description: Update an existing Device Group. This replaces the entire Device
        Group with the new data provided.
      summary: Update an Applications Device Group
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: device_group_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the device group.
        required: true
      tags:
      - Applications - Device Groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceGroupRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceGroupResponse'
          description: Device group updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_device_group
      description: Update one or more fields of an existing Device Group without affecting
        other fields.
      summary: Partially update an Applications Device Group
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: device_group_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the device group.
        required: true
      tags:
      - Applications - Device Groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedDeviceGroupRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceGroupResponse'
          description: Device group partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_device_group
      description: Delete a specific Device Group in your account.
      summary: Delete an Applications Device Group
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: device_group_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the device group.
        required: true
      tags:
      - Applications - Device Groups
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Device group deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/applications/{application_id}/functions:
    get:
      operationId: list_application_function_instances
      description: List all Function Instances for a specific Application owned by
        your account.
      summary: List Function Instances
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: last_editor
        schema:
          type: string
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (less than or equal).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Applications - Function
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedFunctionInstanceList'
          description: List of application function instances retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_application_function_instance
      description: Create a new Function Instance for a specific Application in your
        account.
      summary: Create an Application Function Instance
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      tags:
      - Applications - Function
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FunctionInstanceRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FunctionInstanceResponse'
          description: Application function instance created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/applications/{application_id}/functions/{function_id}:
    get:
      operationId: retrieve_application_function_instance
      description: Retrieve details of a specific Application Function Instance in
        your account.
      summary: Retrieve details of an Application Function Instance
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: function_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the function instance.
        required: true
      tags:
      - Applications - Function
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FunctionInstanceResponse'
          description: Application function instance details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_application_function_instance
      description: Update an existing Application Function Instance. This replaces
        the entire Function Instance with the new data provided.
      summary: Update an Application Function Instance
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: function_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the function instance.
        required: true
      tags:
      - Applications - Function
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FunctionInstanceRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FunctionInstanceResponse'
          description: Application function instance updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_application_function_instance
      description: Update one or more fields of an existing Application Function Instance
        without affecting other fields.
      summary: Partially update an Application Function Instance
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: function_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the function instance.
        required: true
      tags:
      - Applications - Function
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedFunctionInstanceRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FunctionInstanceResponse'
          description: Application function instance partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_application_function_instance
      description: Delete a specific Application Function Instance in your account.
      summary: Delete an Application Function Instance
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: function_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the function instance.
        required: true
      tags:
      - Applications - Function
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Application function instance deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/applications/{application_id}/request_rules:
    get:
      operationId: list_application_request_rules
      description: List all Rules for a specific Application owned by your account.
      summary: List Application Request Rules
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: query
        name: description
        schema:
          type: string
        description: Filter by description (case-insensitive, partial match).
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: last_editor
        schema:
          type: string
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (less than or equal).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - in: query
        name: order__gte
        schema:
          type: integer
          format: int64
        description: Filter by order (greater than or equal).
      - in: query
        name: order__lte
        schema:
          type: integer
          format: int64
        description: Filter by order (less than or equal).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Applications - Request Rules
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedRequestPhaseRuleList'
          description: List of application request rules retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_application_request_rule
      description: Create a new Rule for a specific Application in your account.
      summary: Create an Application Request Rule
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      tags:
      - Applications - Request Rules
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestPhaseRuleRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestPhaseRuleResponse'
          description: Application request rule created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/applications/{application_id}/request_rules/{request_rule_id}:
    get:
      operationId: retrieve_application_request_rule
      description: Retrieve details of a specific Rule in your account.
      summary: Retrieve details of an Application Request Rule
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: request_rule_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the request rule.
        required: true
      tags:
      - Applications - Request Rules
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponsePhaseRuleResponse'
          description: Application request rule details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_application_request_rule
      description: Update an existing Rule. This replaces the entire Rule with the
        new data provided.
      summary: Update an Application Request Rule
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: request_rule_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the request rule.
        required: true
      tags:
      - Applications - Request Rules
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestPhaseRuleRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestPhaseRuleResponse'
          description: Application request rule updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_application_request_rule
      description: Update one or more fields of an existing Application Rule  without
        affecting other fields.
      summary: Partially update an Application Request Rule
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: request_rule_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the request rule.
        required: true
      tags:
      - Applications - Request Rules
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRequestPhaseRule'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestPhaseRuleResponse'
          description: Application request rule partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_application_request_rule
      description: Delete a specific Rule in your account.
      summary: Delete an Application Request Rule
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: request_rule_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the request rule.
        required: true
      tags:
      - Applications - Request Rules
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Application request rule deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/applications/{application_id}/request_rules/order:
    put:
      operationId: update_application_request_rules_order
      description: Reorder all Rules for a specific Application owned by your account.
      summary: Ordering Application Request Rules
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Applications - Request Rules
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationRequestPhaseRuleEngineOrder'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedRequestPhaseRuleList'
          description: Application request rules order updated successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/applications/{application_id}/response_rules:
    get:
      operationId: list_application_response_rules
      description: List all Rules for a specific Application owned by your account.
      summary: List Application Response Rules
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: query
        name: description
        schema:
          type: string
        description: Filter by description (case-insensitive, partial match).
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: last_editor
        schema:
          type: string
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (less than or equal).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - in: query
        name: order__gte
        schema:
          type: integer
          format: int64
        description: Filter by order (greater than or equal).
      - in: query
        name: order__lte
        schema:
          type: integer
          format: int64
        description: Filter by order (less than or equal).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Applications - Response Rules
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponsePhaseRuleList'
          description: List of application response rules retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_application_response_rule
      description: Create a new Rule for a specific Application in your account.
      summary: Create an Application Response Rule
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      tags:
      - Applications - Response Rules
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResponsePhaseRuleRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponsePhaseRuleResponse'
          description: Application response rule created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/applications/{application_id}/response_rules/{response_rule_id}:
    get:
      operationId: retrieve_application_response_rule
      description: Retrieve details of a specific Rule in your account.
      summary: Retrieve details of an Application Response Rule
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: response_rule_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the response rule.
        required: true
      tags:
      - Applications - Response Rules
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponsePhaseRuleResponse'
          description: Application response rule details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_application_response_rule
      description: Update an existing Rule. This replaces the entire Rule with the
        new data provided.
      summary: Update an Application Response Rule
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: response_rule_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the response rule.
        required: true
      tags:
      - Applications - Response Rules
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResponsePhaseRuleRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponsePhaseRuleResponse'
          description: Application response rule updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_application_response_rule
      description: Update one or more fields of an existing Application Rule  without
        affecting other fields.
      summary: Partially update an Application Response Rule
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: response_rule_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the response rule.
        required: true
      tags:
      - Applications - Response Rules
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedResponsePhaseRuleRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponsePhaseRuleResponse'
          description: Application response rule partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_application_response_rule
      description: Delete a specific Rule in your account.
      summary: Delete an Application Response Rule
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - in: path
        name: response_rule_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the response rule.
        required: true
      tags:
      - Applications - Response Rules
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Application response rule deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/applications/{application_id}/response_rules/order:
    put:
      operationId: update_application_response_rules_order
      description: Reorder all Rules for a specific Application owned by your account.
      summary: Ordering Application Response Rules
      parameters:
      - in: path
        name: application_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the application.
        required: true
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Applications - Response Rules
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationResponsePhaseRuleEngineOrderRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponsePhaseRuleList'
          description: Application response rules order updated successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /account/auth/login:
    post:
      operationId: auth_user_login
      description: "This endpoint performs user authentication and issues the user's\
        \ JWT tokens. The response depends on whether multi-factor authentication\
        \ (MFA) is enabled for the user:\n - If the user does not have MFA enabled,\
        \ the API returns a TokenPair object containing the access_token and refresh_token,\
        \ allowing immediate authentication.\n - If the user has MFA enabled, the\
        \ response returns an MFAToken object. This temporary token must be used in\
        \ the MFA verification endpoint to complete authentication. After successful\
        \ verification of the second factor, the TokenPair is issued."
      summary: User Login – Generate JWT Tokens
      tags:
      - Auth - Login
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoginRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseLogin'
          description: User authenticated successfully. Returns JWT tokens or MFA
            token if MFA is enabled.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security: []
  /account/auth/login/method:
    get:
      operationId: auth_user_login_method
      description: 'Returns the login type configured for the user. This indicates
        whether the user authenticates directly via Azion credentials (login) or via
        a federated Identity Provider (federated) linked to their account.

        This endpoint allows clients to determine whether to proceed with Azion''s
        native login flow or redirect the user to the Identity Provider (IdP) for
        authentication.'
      summary: Check User Authentication Method
      parameters:
      - in: query
        name: email
        schema:
          type: string
          format: email
        description: Email address of the user
      - $ref: '#/components/parameters/FieldsParam'
      tags:
      - Auth - Login
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserLoginMethodResponse'
              examples:
                ExampleResponseForLoginMethod.:
                  value:
                    method: login
                    url: http://localhost:9999/login
                  summary: Example response for login method.
                ExampleResponseForFederatedLoginMethod.:
                  value:
                    method: federated
                    url: http://localhost:8000/login
                  summary: Example response for federated login method.
          description: User authentication method retrieved successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security: []
  /account/auth/mfa/totp:
    get:
      operationId: list_totp_devices
      description: List all totp devices for user account and descendant accounts.
      summary: List of TOTP devices
      parameters:
      - in: query
        name: confirmed
        schema:
          type: boolean
        description: Filter by confirmed status.
      - in: query
        name: email
        schema:
          type: string
        description: Filter by user's email (case-insensitive, partial match).
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: string
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by user's first name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Auth - MFA TOTP Device
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedTOTPDeviceList'
          description: List of TOTP devices retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_totp_device
      description: Create a new TOTP device for your account.
      summary: Create a TOTP device
      tags:
      - Auth - MFA TOTP Device
      security:
      - JwtMfaAuthentication: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TOTPDeviceResponse'
          description: TOTP device created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties: {}
        required: false
  /account/auth/token:
    post:
      operationId: auth_user_refresh_token
      description: Refresh JWT access token, via a POST request.
      summary: Refresh user JWT access token
      tags:
      - Auth - Refresh Access Token
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenRequest'
      security:
      - JwtRefreshAuthentication: []
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenResponse'
          description: Refresh token generated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /account/auth/revoke:
    post:
      operationId: auth_user_revoke
      description: Revoke refresh token via a POST request.
      summary: Revoke user JWT refresh token
      tags:
      - Auth - Revoke
      requestBody:
        content:
          application/json:
            schema: {}
      security:
      - JwtRefreshAuthentication: []
      - {}
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StateExecutedResponse'
              examples:
                Executed:
                  value:
                    state: executed
          description: Revoke successfully executed.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/connectors:
    get:
      operationId: list_connectors
      description: List all Connectors owned by your account.
      summary: List Connectors
      parameters:
      - in: query
        name: active
        schema:
          type: boolean
        description: Filter by active status.
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: last_editor
        schema:
          type: string
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (less than or equal).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      - in: query
        name: type__in
        schema:
          type: string
        description: Filter by type (accepts comma-separated values).
      tags:
      - Connectors
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedConnectorList'
          description: List of connectors retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_connector
      description: Create a new Connector in your account.
      summary: Create a Connector
      tags:
      - Connectors
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectorRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorResponse'
          description: Connector created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/connectors/{connector_id}:
    get:
      operationId: retrieve_connector
      description: Retrieve details of a specific Connector in your account.
      summary: Retrieve details of a Connector
      parameters:
      - in: path
        name: connector_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the connector.
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      tags:
      - Connectors
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorResponse'
          description: Connector details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_connector
      description: Update an existing Connector. This replaces the entire Connector
        with the new data provided.
      summary: Update a Connector
      parameters:
      - in: path
        name: connector_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the connector.
        required: true
      tags:
      - Connectors
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectorRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorResponse'
          description: Connector updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_connector
      description: Update one or more fields of an existing Connector without affecting
        other fields.
      summary: Partially update a Connector
      parameters:
      - in: path
        name: connector_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the connector.
        required: true
      tags:
      - Connectors
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedConnectorRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorResponse'
          description: Connector partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_connector
      description: Delete a specific Connector in your account.
      summary: Delete a Connector
      parameters:
      - in: path
        name: connector_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the connector.
        required: true
      tags:
      - Connectors
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Connector deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/custom_pages:
    get:
      operationId: list_custom_pages
      description: List all Custom Pages owned by your account.
      summary: List Custom Pages
      parameters:
      - in: query
        name: active
        schema:
          type: boolean
        description: Filter by active status.
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: last_editor
        schema:
          type: string
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (less than or equal).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Custom Pages
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCustomPageList'
          description: List of custom pages retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_custom_page
      description: Create a new Custom Page in your account.
      summary: Create a Custom Page
      tags:
      - Custom Pages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomPageRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomPageResponse'
          description: Custom page created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/custom_pages/{custom_page_id}:
    get:
      operationId: retrieve_custom_page
      description: Retrieve details of a specific Custom Page in your account.
      summary: Retrieve details of a Custom Page
      parameters:
      - in: path
        name: custom_page_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the custom page.
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      tags:
      - Custom Pages
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomPageResponse'
          description: Custom page details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_custom_page
      description: Update an existing Custom Page. This replaces the entire Custom
        Page with the new data provided.
      summary: Update a Custom Page
      parameters:
      - in: path
        name: custom_page_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the custom page.
        required: true
      tags:
      - Custom Pages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomPageRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomPageResponse'
          description: Custom page updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_custom_page
      description: Update one or more fields of an existing Custom Page without affecting
        other fields.
      summary: Partially update a Custom Page
      parameters:
      - in: path
        name: custom_page_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the custom page.
        required: true
      tags:
      - Custom Pages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCustomPageRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomPageResponse'
          description: Custom page partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_custom_page
      description: Delete a specific Custom Page in your account.
      summary: Delete a Custom Page
      parameters:
      - in: path
        name: custom_page_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the custom page.
        required: true
      tags:
      - Custom Pages
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Custom page deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/dns/zones/{zone_id}/dnssec:
    get:
      operationId: retrieve_dnssec
      description: Retrieve details of a specific DNSSEC from a DNS Zone in your account.
      summary: Retrieve details of a DNSSEC
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: zone_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Zone.
        required: true
      tags:
      - DNS - DNSSEC
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DNSSECResponse'
          description: DNSSEC details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_dnssec
      description: Update an existing a DNSSEC. This replaces the entire DNSSEC with
        the new data provided.
      summary: Update a DNSSEC
      parameters:
      - in: path
        name: zone_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Zone.
        required: true
      tags:
      - DNS - DNSSEC
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DNSSECRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DNSSECResponse'
          description: DNSSEC updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_dnssec
      description: Update one or more fields of an existing DNSSEC without affecting
        other fields.
      summary: Partially update a DNSSEC
      parameters:
      - in: path
        name: zone_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Zone.
        required: true
      tags:
      - DNS - DNSSEC
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedDNSSECRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DNSSECResponse'
          description: DNSSEC partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/dns/zones/{zone_id}/records:
    get:
      operationId: list_dns_records
      description: List all DNS Records from a DNS Zone owned by your account.
      summary: List DNS Records
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      - in: path
        name: zone_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Zone.
        required: true
      tags:
      - DNS - Records
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedRecordList'
          description: List of DNS records retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_dns_record
      description: Create a new DNS Record in a DNS Zone for your account.
      summary: Create a DNS Record
      parameters:
      - in: path
        name: zone_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Zone.
        required: true
      tags:
      - DNS - Records
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordResponse'
          description: DNS record created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/dns/zones/{zone_id}/records/{record_id}:
    get:
      operationId: retrieve_dns_record
      description: Retrieve details of a specific DNS Record from a DNS Zone in your
        account.
      summary: Retrieve details of a DNS Record
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: record_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Record.
        required: true
      - in: path
        name: zone_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Zone.
        required: true
      tags:
      - DNS - Records
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordResponse'
          description: DNS record details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_dns_record
      description: Update an existing a DNS Record. This replaces the entire DNS Record
        with the new data provided.
      summary: Update a DNS Record
      parameters:
      - in: path
        name: record_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Record.
        required: true
      - in: path
        name: zone_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Zone.
        required: true
      tags:
      - DNS - Records
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordResponse'
          description: DNS record updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_dns_record
      description: Update one or more fields of an existing DNS Record without affecting
        other fields.
      summary: Partially update a DNS Record
      parameters:
      - in: path
        name: record_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Record.
        required: true
      - in: path
        name: zone_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Zone.
        required: true
      tags:
      - DNS - Records
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRecordRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordResponse'
          description: DNS record partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_dns_record
      description: Delete a specific DNS Record from a DNS Zone in your account.
      summary: Delete a DNS Record
      parameters:
      - in: path
        name: record_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Record.
        required: true
      - in: path
        name: zone_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Zone.
        required: true
      tags:
      - DNS - Records
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: DNS record deletion accepted and processing asynchronously.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/dns/zones:
    get:
      operationId: list_dns_zones
      description: List all DNS Zones owned by your account.
      summary: List DNS Zones
      parameters:
      - in: query
        name: active
        schema:
          type: boolean
        description: Filter by active status.
      - in: query
        name: domain
        schema:
          type: string
        description: Filter by domain (exact match).
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (exact match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - DNS - Zones
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedZoneList'
          description: List of DNS zones retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_dns_zone
      description: Create a new DNS Zone for your account.
      summary: Create a DNS Zone
      tags:
      - DNS - Zones
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ZoneRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZoneResponse'
          description: DNS zone created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/dns/zones/{zone_id}:
    get:
      operationId: retrieve_dns_zone
      description: Retrieve details of a specific DNS Zone in your account.
      summary: Retrieve details of a DNS Zone
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: zone_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Zone.
        required: true
      tags:
      - DNS - Zones
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZoneResponse'
          description: DNS zone details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_dns_zone
      description: Update an existing a DNS Zone. This replaces the entire DNS Zone
        with the new data provided.
      summary: Update a DNS Zone
      parameters:
      - in: path
        name: zone_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Zone.
        required: true
      tags:
      - DNS - Zones
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateZoneRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZoneResponse'
          description: DNS zone updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_dns_zone
      description: Update one or more fields of an existing DNS Zone without affecting
        other fields.
      summary: Partially update a DNS Zone
      parameters:
      - in: path
        name: zone_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Zone.
        required: true
      tags:
      - DNS - Zones
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUpdateZoneRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZoneResponse'
          description: DNS zone partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_dns_zone
      description: Delete a specific DNS Zone in your account.
      summary: Delete a DNS Zone
      parameters:
      - in: path
        name: zone_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the DNS Zone.
        required: true
      tags:
      - DNS - Zones
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: DNS zone deletion accepted and processing asynchronously.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/stream/data_sources:
    get:
      operationId: list_data_sources
      description: List all Data Sources.
      summary: List of Data Sources
      parameters:
      - in: query
        name: active
        schema:
          type: boolean
        description: Filter by active status.
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      - in: query
        name: slug
        schema:
          type: string
        description: Filter by slug (case-insensitive, exact match).
      tags:
      - Data Stream - Data Sources
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDataSourceList'
          description: Ok
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/stream/streams:
    get:
      operationId: list_data_streams
      description: List all Data Streams owned by your account.
      summary: List Data Streams
      parameters:
      - in: query
        name: active
        schema:
          type: boolean
        description: Filter by active status.
      - in: query
        name: created__gte
        schema:
          type: string
          format: date-time
        description: Filter by created date (greater than or equal).
      - in: query
        name: created__lte
        schema:
          type: string
          format: date-time
        description: Filter by created date (less than or equal).
      - in: query
        name: data_set_id
        schema:
          type: integer
          format: int64
        description: Filter by data set id (accepts comma-separated values).
      - in: query
        name: data_source
        schema:
          type: string
        description: Filter by data source (accepts comma-separated values).
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: last_editor
        schema:
          type: string
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (less than or equal).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Data Stream - Streams
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDataStreamList'
          description: Ok
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_data_stream
      description: Create a new Data Stream in your account.
      summary: Create a Data Stream
      tags:
      - Data Stream - Streams
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataStreamRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataStreamResponse'
          description: Created
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/stream/streams/{stream_id}:
    get:
      operationId: retrieve_data_stream
      description: Retrieve details from a specific Data Stream in your account.
      summary: Retrieve details of a Data Stream
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: stream_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the data stream.
        required: true
      tags:
      - Data Stream - Streams
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataStreamResponse'
          description: Ok
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_data_stream
      description: Update an existing Data Stream.
      summary: Update a Data Stream
      parameters:
      - in: path
        name: stream_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the data stream.
        required: true
      tags:
      - Data Stream - Streams
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataStreamRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataStreamResponse'
          description: Ok
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_data_stream
      description: Update one or more fields of an existing Data Stream.
      summary: Partially update a Data Stream
      parameters:
      - in: path
        name: stream_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the data stream.
        required: true
      tags:
      - Data Stream - Streams
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedDataStreamRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataStreamResponse'
          description: Ok
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_data_stream
      description: Delete a specific Data Stream in your account.
      summary: Delete a Data Stream
      parameters:
      - in: path
        name: stream_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the data stream.
        required: true
      tags:
      - Data Stream - Streams
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Ok
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/stream/templates:
    get:
      operationId: list_templates
      description: List all Templates owned by your account.
      summary: List Templates
      parameters:
      - in: query
        name: active
        schema:
          type: boolean
        description: Filter by active status.
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
        description: Filter by created date (greater than or equal).
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
        description: Filter by created date (less than or equal).
      - in: query
        name: custom
        schema:
          type: boolean
        description: Filter by custom status (true for custom templates, false for
          default templates).
      - in: query
        name: data_set
        schema:
          type: string
        description: Filter by data set (case-insensitive, partial match).
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: last_editor
        schema:
          type: string
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (less than or equal).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Data Stream - Templates
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedTemplateList'
          description: Ok
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_template
      description: Create a new custom Template in your account.
      summary: Create a Template
      tags:
      - Data Stream - Templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplateResponse'
          description: Created
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/stream/templates/{template_id}:
    get:
      operationId: retrieve_template
      description: Retrieve details from a specific Template in your account.
      summary: Retrieve details of a Template
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: template_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the template.
        required: true
      tags:
      - Data Stream - Templates
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplateResponse'
          description: Ok
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_template
      description: Update an existing custom Template.
      summary: Update a Template
      parameters:
      - in: path
        name: template_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the template.
        required: true
      tags:
      - Data Stream - Templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplateResponse'
          description: Ok
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_template
      description: Update one or more fields of an existing custom Template.
      summary: Partially update a Template
      parameters:
      - in: path
        name: template_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the template.
        required: true
      tags:
      - Data Stream - Templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedTemplateRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplateResponse'
          description: Ok
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_template
      description: Delete a specific custom Template in your account.
      summary: Delete a Template
      parameters:
      - in: path
        name: template_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the template.
        required: true
      tags:
      - Data Stream - Templates
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Ok
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/tls/crls:
    get:
      operationId: list_certificate_revocation_lists
      description: List all certificate revocation lists (CRL) owned by your account.
      summary: List certificate revocation lists (CRL)
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by CRL ID (accepts comma-separated values).
      - in: query
        name: issuer
        schema:
          type: string
          pattern: ^.*$
        description: Filter by issuer (case-insensitive, partial match).
      - in: query
        name: last_modified
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by exact last modified date and time.
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by last modified date (less than or equal).
      - in: query
        name: last_update
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by exact last update date and time.
      - in: query
        name: last_update__gte
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by last update date (greater than or equal).
      - in: query
        name: last_update__lte
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by last update date (less than or equal).
      - in: query
        name: name
        schema:
          type: string
          pattern: ^.*$
        description: Filter by CRL name (case-insensitive, partial match).
      - in: query
        name: next_update
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by exact next update date and time.
      - in: query
        name: next_update__gte
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by next update date (greater than or equal).
      - in: query
        name: next_update__lte
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by next update date (less than or equal).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Digital Certificates - Certificate Revocation Lists
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCertificateRevocationList'
          description: List of certificate revocation lists retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_certificate_revocation_list
      description: Create a new certificate revocation lists (CRL) for your account.
      summary: Create a certificate revocation lists (CRL)
      tags:
      - Digital Certificates - Certificate Revocation Lists
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CertificateRevocationList'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificateRevocationListResponse'
          description: Certificate revocation list created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/tls/crls/{crl_id}:
    get:
      operationId: retrieve_certificate_revocation_list
      description: Retrieve details from a specific certificate revocation lists (CRL)
        in your account.
      summary: Retrieve details from a certificate revocation lists (CRL)
      parameters:
      - in: path
        name: crl_id
        schema:
          type: integer
          format: int64
        description: The unique identifier of the certificate revocation list
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      tags:
      - Digital Certificates - Certificate Revocation Lists
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificateRevocationListResponse'
          description: Certificate revocation list details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_certificate_revocation_list
      description: Update an existing certificate revocation lists (CRL).  This replaces
        the entire certificate with the new data provided.
      summary: Update a certificate revocation lists (CRL)
      parameters:
      - in: path
        name: crl_id
        schema:
          type: integer
          format: int64
        description: The unique identifier of the certificate revocation list
        required: true
      tags:
      - Digital Certificates - Certificate Revocation Lists
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CertificateRevocationList'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificateRevocationListResponse'
          description: Certificate revocation list updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_certificate_revocation_list
      description: Update one or more fields of an existing certificate revocation
        lists (CRL) without affecting other fields.
      summary: Update a certificate revocation lists (CRL)
      parameters:
      - in: path
        name: crl_id
        schema:
          type: integer
          format: int64
        description: The unique identifier of the certificate revocation list
        required: true
      tags:
      - Digital Certificates - Certificate Revocation Lists
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCertificateRevocationList'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificateRevocationListResponse'
          description: Certificate revocation list partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_certificate_revocation_list
      description: Delete a specific certificate revocation list in your account.
      summary: Delete a certificate revocation list
      parameters:
      - in: path
        name: crl_id
        schema:
          type: integer
          format: int64
        description: The unique identifier of the certificate revocation list
        required: true
      tags:
      - Digital Certificates - Certificate Revocation Lists
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Certificate revocation list deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/tls/csr:
    post:
      operationId: create_certificate_signing_request
      description: Create a new certificate signing request (CSR) for your account.
      summary: Create a certificate signing request (CSR)
      tags:
      - Digital Certificates - Certificate Signing Requests
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CertificateSigningRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificateResponse'
          description: Certificate signing request created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/tls/certificates:
    get:
      operationId: list_certificates
      description: List all certificates owned by your account.
      summary: List certificates
      parameters:
      - in: query
        name: certificate_type
        schema:
          type: string
          pattern: ^.*$
        description: Filter by certificate type (accepts comma-separated values).
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by certificate ID (accepts comma-separated values).
      - in: query
        name: issuer
        schema:
          type: string
          pattern: ^.*$
        description: Filter by issuer (case-insensitive, partial match).
      - in: query
        name: last_modified
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by exact last modified date and time.
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by last modified date (less than or equal).
      - in: query
        name: managed
        schema:
          type: boolean
        description: Filter by managed status.
      - in: query
        name: name
        schema:
          type: string
          pattern: ^.*$
        description: Filter by certificate name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - in: query
        name: renewed_at
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by exact renewed date and time.
      - in: query
        name: renewed_at__gte
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by renewed date (greater than or equal).
      - in: query
        name: renewed_at__lte
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by renewed date (less than or equal).
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Digital Certificates - Certificates
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCertificateList'
          description: List of certificates retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_certificate
      description: Create a new certificate for your account.
      summary: Create a certificate
      tags:
      - Digital Certificates - Certificates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Certificate'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificateResponse'
          description: Certificate created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/tls/certificates/{certificate_id}:
    get:
      operationId: retrieve_certificate
      description: Retrieve details from a specific certificate in your account.
      summary: Retrieve details from a certificate
      parameters:
      - in: path
        name: certificate_id
        schema:
          type: integer
          format: int64
        description: The unique identifier of the certificate
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      tags:
      - Digital Certificates - Certificates
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificateResponse'
          description: Certificate details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_certificate
      description: Update an existing certificate. This replaces the entire certificate
        with the new data provided.
      summary: Update a certificate
      parameters:
      - in: path
        name: certificate_id
        schema:
          type: integer
          format: int64
        description: The unique identifier of the certificate
        required: true
      tags:
      - Digital Certificates - Certificates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Certificate'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificateResponse'
          description: Ok
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_certificate
      description: Update one or more fields of an existing certificate without affecting
        other fields.
      summary: Partially update a certificate
      parameters:
      - in: path
        name: certificate_id
        schema:
          type: integer
          format: int64
        description: The unique identifier of the certificate
        required: true
      tags:
      - Digital Certificates - Certificates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCertificate'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificateResponse'
          description: Ok
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_certificate
      description: Delete a specific certificate in your account.
      summary: Delete a certificate
      parameters:
      - in: path
        name: certificate_id
        schema:
          type: integer
          format: int64
        description: The unique identifier of the certificate
        required: true
      tags:
      - Digital Certificates - Certificates
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Certificate deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/tls/certificates/request:
    post:
      operationId: request_certificate
      description: Request a new certificate for your account.
      summary: Request a certificate
      tags:
      - Digital Certificates - Request a Certificate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CertificateRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificateResponse'
          description: Certificate request submitted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/firewalls:
    get:
      operationId: list_firewalls
      description: List all Firewalls owned by your account.
      summary: List Firewalls
      parameters:
      - in: query
        name: active
        schema:
          type: boolean
        description: Filter by active status.
      - in: query
        name: debug
        schema:
          type: boolean
        description: Filter by debug rules status.
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: last_editor
        schema:
          type: string
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (less than or equal).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Firewalls
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedFirewallList'
          description: List of firewalls retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_firewall
      description: Create a new Firewall for your account.
      summary: Create a Firewall
      tags:
      - Firewalls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FirewallRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallResponse'
          description: Firewall created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/firewalls/{firewall_id}:
    get:
      operationId: retrieve_firewall
      description: Retrieve details from a specific Firewall in your account.
      summary: Retrieve details from a Firewall
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      tags:
      - Firewalls
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallResponse'
          description: Firewall details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_firewall
      description: Update an existing Firewall. This replaces the entire Firewall
        with the new data provided.
      summary: Update a Firewall
      parameters:
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      tags:
      - Firewalls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FirewallRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallResponse'
          description: Firewall updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_firewall
      description: Update one or more fields of an existing Firewall without affecting
        other fields.
      summary: Partially update a Firewall
      parameters:
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      tags:
      - Firewalls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedFirewallRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallResponse'
          description: Firewall partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_firewall
      description: Delete a specific Firewall in your account.
      summary: Delete a Firewall
      parameters:
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      tags:
      - Firewalls
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Firewall deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/firewalls/{firewall_id}/clone:
    post:
      operationId: clone_firewall
      description: Create a new Firewall by performing a deep copy of an existing
        Firewall, including its Function Instances and Rules Engine.
      summary: Clone a Firewall
      parameters:
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      tags:
      - Firewalls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloneFirewallRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallResponse'
          description: Firewall cloned successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/firewalls/{firewall_id}/functions:
    get:
      operationId: list_firewall_function
      description: List all Function Instances for a specific Firewall owned by your
        account.
      summary: List Firewall Function
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: last_editor
        schema:
          type: string
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (less than or equal).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Firewalls - Function
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedFirewallFunctionInstanceList'
          description: List of firewall function instances retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_firewall_function
      description: Create a new Function Instance for a specific Firewall in your
        account.
      summary: Create an Firewall Function
      parameters:
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      tags:
      - Firewalls - Function
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FirewallFunctionInstanceRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallFunctionInstanceResponse'
          description: Firewall function instance created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/firewalls/{firewall_id}/functions/{function_id}:
    get:
      operationId: retrieve_firewall_function
      description: Retrieve details of a specific Firewall Function Instance in your
        account.
      summary: Retrieve details of an Firewall Function
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      - in: path
        name: function_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the function instance.
        required: true
      tags:
      - Firewalls - Function
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallFunctionInstanceResponse'
          description: Firewall function instance details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_firewall_function
      description: Update an existing Firewall Function Instance. This replaces the
        entire Function Instance with the new data provided.
      summary: Update an Firewall Function
      parameters:
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      - in: path
        name: function_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the function instance.
        required: true
      tags:
      - Firewalls - Function
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FirewallFunctionInstanceRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallFunctionInstanceResponse'
          description: Firewall function instance updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_firewall_function
      description: Update one or more fields of an existing Firewall Function Instance
        without affecting other fields.
      summary: Partially update an Firewall Function
      parameters:
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      - in: path
        name: function_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the function instance.
        required: true
      tags:
      - Firewalls - Function
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedFirewallFunctionInstanceRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallFunctionInstanceResponse'
          description: Firewall function instance partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_firewall_function
      description: Delete a specific Firewall Function Instance in your account.
      summary: Delete an Firewall Function
      parameters:
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      - in: path
        name: function_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the function instance.
        required: true
      tags:
      - Firewalls - Function
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Firewall function instance deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/firewalls/{firewall_id}/request_rules:
    get:
      operationId: list_firewall_rules
      description: List all Rules for a specific Firewall owned by your account.
      summary: List Firewall Rules
      parameters:
      - in: query
        name: description
        schema:
          type: string
        description: Filter by description (case-insensitive, partial match).
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: last_editor
        schema:
          type: string
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (less than or equal).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - in: query
        name: order__gte
        schema:
          type: integer
          format: int64
        description: Filter by order (greater than or equal).
      - in: query
        name: order__lte
        schema:
          type: integer
          format: int64
        description: Filter by order (less than or equal).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Firewalls - Rules Engine
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedFirewallRuleList'
          description: List of firewall rules retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_firewall_rule
      description: Create a new Rule for a specific Firewall in your account.
      summary: Create an Firewall Rule
      parameters:
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      tags:
      - Firewalls - Rules Engine
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FirewallRuleRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallRuleResponse'
          description: Firewall rule created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/firewalls/{firewall_id}/request_rules/{request_rule_id}:
    get:
      operationId: retrieve_firewall_rule
      description: Retrieve details of a specific Rule in your account.
      summary: Retrieve details of an Firewall Rule
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      - in: path
        name: request_rule_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the request rule.
        required: true
      tags:
      - Firewalls - Rules Engine
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallRuleResponse'
          description: Firewall rule details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_firewall_rule
      description: Update an existing Rule. This replaces the entire Rule with the
        new data provided.
      summary: Update an Firewall Rule
      parameters:
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      - in: path
        name: request_rule_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the request rule.
        required: true
      tags:
      - Firewalls - Rules Engine
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FirewallRuleRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallRuleResponse'
          description: Firewall rule updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_firewall_rule
      description: Update one or more fields of an existing Firewall Rule without
        affecting other fields.
      summary: Partially update an Firewall Rule
      parameters:
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      - in: path
        name: request_rule_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the request rule.
        required: true
      tags:
      - Firewalls - Rules Engine
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedFirewallRuleRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallRuleResponse'
          description: Firewall rule partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_firewall_rule
      description: Delete a specific Rule in your account.
      summary: Delete an Firewall Rule
      parameters:
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      - in: path
        name: request_rule_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the request rule.
        required: true
      tags:
      - Firewalls - Rules Engine
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Firewall rule deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/firewalls/{firewall_id}/request_rules/order:
    put:
      operationId: order_firewall_rules
      description: Reorder all Rules for a specific Firewall owned by your account.
      summary: Ordering Firewall Rules
      parameters:
      - in: path
        name: firewall_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the firewall.
        required: true
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Firewalls - Rules Engine
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FirewallRuleEngineOrderRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedFirewallRuleList'
          description: Firewall rules order updated successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/functions:
    get:
      operationId: list_functions
      description: List all Functions owned by your account.
      summary: List Functions
      parameters:
      - in: query
        name: active
        schema:
          type: boolean
        description: Filter by active status.
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: language__in
        schema:
          type: string
        description: Filter by language (accepts comma-separated values).
      - in: query
        name: last_editor
        schema:
          type: string
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (less than or equal).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - in: query
        name: runtime_environment__in
        schema:
          type: string
        description: Filter by runtime environment (accepts comma-separated values).
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Functions
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedEdgeFunctionList'
          description: List of functions retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_function
      description: Create a new Function in your account.
      summary: Create an Function
      tags:
      - Functions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FunctionsRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FunctionResponse'
          description: Function created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/functions/{function_id}:
    get:
      operationId: retrieve_function
      description: Retrieve details of a specific Function in your account.
      summary: Retrieve details of an Function
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: function_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the function.
        required: true
      tags:
      - Functions
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FunctionResponse'
          description: Function details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_function
      description: Update an existing Function. This replaces the entire Function
        with the new data provided.
      summary: Update an Function
      parameters:
      - in: path
        name: function_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the function.
        required: true
      tags:
      - Functions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FunctionsRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FunctionResponse'
          description: Function updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_function
      description: Update one or more fields of an existing Function without affecting
        other fields.
      summary: Partially update an Function
      parameters:
      - in: path
        name: function_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the function.
        required: true
      tags:
      - Functions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedFunctionsRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FunctionResponse'
          description: Function partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_function
      description: Delete a specific Function in your account.
      summary: Delete an Function
      parameters:
      - in: path
        name: function_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the function.
        required: true
      tags:
      - Functions
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Function deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/network_lists:
    get:
      operationId: list_network_lists
      description: List all Network Lists owned by your account.
      summary: List Network Lists
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: last_editor
        schema:
          type: string
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (less than or equal).
      - in: query
        name: list_type__in
        schema:
          type: string
        description: Filter by list type (accepts comma-separated values).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Network Lists
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedNetworkListSummaryList'
          description: List of network lists retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_network_list
      description: Create a new Network List in your account.
      summary: Create a Network List
      tags:
      - Network Lists
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkListRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetworkListResponse'
          description: Network list created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/network_lists/{network_list_id}:
    get:
      operationId: retrieve_network_list
      description: Retrieve details of a specific Network List in your account.
      summary: Retrieve details of a Network List
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: ipv4
        schema:
          type: boolean
        description: Filter by IPv4. Only applicable for network lists of type 'ip_cidr'.
      - in: query
        name: ipv6
        schema:
          type: boolean
        description: Filter by IPv6. Only applicable for network lists of type 'ip_cidr'.
      - in: path
        name: network_list_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the network list.
        required: true
      tags:
      - Network Lists
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetworkListResponse'
          description: Network list details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_network_list
      description: Update an existing Network List. This replaces the entire Network
        List with the new data provided.
      summary: Update a Network List
      parameters:
      - in: path
        name: network_list_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the network list.
        required: true
      tags:
      - Network Lists
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkListRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetworkListResponse'
          description: Network list updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_network_list
      description: Update one or more fields of an existing Network List without affecting
        other fields.
      summary: Partially update a Network List
      parameters:
      - in: path
        name: network_list_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the network list.
        required: true
      tags:
      - Network Lists
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedNetworkListRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetworkListResponse'
          description: Network list partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_network_list
      description: Delete a specific Network List in your account.
      summary: Delete a Network List
      parameters:
      - in: path
        name: network_list_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the network list.
        required: true
      tags:
      - Network Lists
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Network list deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/purge/{purge_type}:
    post:
      operationId: create_purge_request
      description: Create a new Purge Request in your account.
      summary: Create a Purge Request
      parameters:
      - in: path
        name: purge_type
        schema:
          type: string
          enum:
          - cachekey
          - url
          - wildcard
          x-extensible-enum:
          - cachekey
          - url
          - wildcard
        description: 'type of purge: URL, Wildcard or Cachekey'
        required: true
      tags:
      - Purge
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PurgeRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurgeResponse'
          description: Purge request created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/sql/databases:
    get:
      operationId: list_databases
      description: List all databases owned by your account.
      summary: List databases
      parameters:
      - in: query
        name: active
        schema:
          type: boolean
        description: Filter by active status.
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
        description: Filter by created_at (greater than or equal).
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
        description: Filter by created_at (less than or equal).
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: last_editor
        schema:
          type: string
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      - in: query
        name: status
        schema:
          type: string
        description: Filter by status (accepts comma-separated values).
      - in: query
        name: updated_at__gte
        schema:
          type: string
          format: date-time
        description: Filter by updated_at (greater than or equal).
      - in: query
        name: updated_at__lte
        schema:
          type: string
          format: date-time
        description: Filter by updated_at (less than or equal).
      tags:
      - SQL
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDatabaseDetailList'
          description: List of databases retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_database
      description: Create a new database for your account.
      summary: Create a database
      tags:
      - SQL
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DatabaseRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatabaseDetailResponse'
          description: Database created successfully.
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatabaseDetailResponse'
          description: Database creation request accepted and is being processed asynchronously.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Error-10073:
                  value:
                    errors:
                    - status: '422'
                      code: '10073'
                      title: Unprocessable Entity
                      detail: Unprocessable entity.
                  summary: Unprocessable Entity
                  description: Unprocessable entity.
          description: Unprocessable Entity
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/sql/databases/{database_id}:
    get:
      operationId: retrieve_database
      description: Retrieve details from a specific database in your account.
      summary: Retrieve details from a database
      parameters:
      - in: path
        name: database_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying this database.
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      tags:
      - SQL
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatabaseDetailResponse'
          description: Database details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_database
      description: Schedule the deletion of a specific database in your account.
      summary: Delete a database
      parameters:
      - in: path
        name: database_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying this database.
        required: true
      tags:
      - SQL
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Database deleted successfully.
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Database deletion request accepted and is being processed asynchronously.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/sql/databases/{database_id}/query:
    post:
      operationId: execute_query
      description: Execute a query into a database for your account.
      summary: Execute a query into a database
      parameters:
      - in: path
        name: database_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying this database.
        required: true
      tags:
      - SQL
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SQLStatementsRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SQLResultResponse'
          description: SQL query executed successfully.
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SQLResultResponse'
          description: SQL query execution request accepted and is being processed
            asynchronously.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Error-10073:
                  value:
                    errors:
                    - status: '422'
                      code: '10073'
                      title: Unprocessable Entity
                      detail: Unprocessable entity.
                  summary: Unprocessable Entity
                  description: Unprocessable entity.
          description: Unprocessable Entity
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/storage/buckets:
    get:
      operationId: list_buckets
      description: List all buckets.
      summary: List buckets
      parameters:
      - in: query
        name: bucket
        schema:
          type: string
          pattern: ^.*$
        description: Filter by bucket (exact match).
      - in: query
        name: created
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by creation date (exact match).
      - in: query
        name: created__gte
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by creation date (greater than or equal).
      - in: query
        name: created__lte
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by creation date (less than or equal).
      - in: query
        name: description
        schema:
          type: string
          pattern: ^.*$
        description: Filter by description (case-insensitive, partial match).
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: last_editor
        schema:
          type: string
          pattern: ^.*$
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: last_modified
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by last modified date (exact match).
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
          pattern: ^.*$
        description: Filter by last modified date (less than or equal).
      - in: query
        name: name
        schema:
          type: string
          pattern: ^.*$
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      - in: query
        name: status
        schema:
          type: string
          pattern: ^.*$
        description: Filter by status (accepts comma-separated values).
      - in: query
        name: workloads_access
        schema:
          type: string
          pattern: ^.*$
        description: Filter by workloads access (accepts comma-separated values).
      tags:
      - Storage - Buckets
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBucketList'
          description: List of buckets retrieved successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_bucket
      description: Create a new bucket.
      summary: Create a new bucket
      tags:
      - Storage - Buckets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BucketCreateRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BucketCreateResponse'
          description: Bucket created successfully.
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BucketCreateResponse'
          description: Bucket creation request accepted and is being processed.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/storage/buckets/{bucket_name}:
    get:
      operationId: retrieve_bucket
      description: Retrieve details from a specific bucket.
      summary: Retrieve a bucket
      parameters:
      - in: path
        name: bucket_name
        schema:
          type: string
          pattern: ^.*$
        description: The name of the bucket
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      tags:
      - Storage - Buckets
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BucketCreateResponse'
          description: Bucket details retrieved successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: update_bucket
      description: Update bucket information (bucket name cannot be changed)
      summary: Update bucket info
      parameters:
      - in: path
        name: bucket_name
        schema:
          type: string
          pattern: ^.*$
        description: The name of the bucket
        required: true
      tags:
      - Storage - Buckets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedBucketRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BucketCreateResponse'
          description: Bucket updated successfully.
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BucketCreateResponse'
          description: Bucket update request accepted and is being processed.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_bucket
      description: Delete a specific bucket.
      summary: Delete a bucket
      parameters:
      - in: path
        name: bucket_name
        schema:
          type: string
          pattern: ^.*$
        description: The name of the bucket
        required: true
      tags:
      - Storage - Buckets
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Bucket deleted successfully.
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Bucket deletion request accepted and is being processed.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/storage/buckets/{bucket_name}/objects:
    get:
      operationId: list_objects
      description: List objects from bucket
      summary: List objects from bucket
      parameters:
      - in: query
        name: all_levels
        schema:
          type: boolean
          default: true
        description: 'If true, lists objects recursively. If false, lists only the
          first level using Delimiter=''/'' (default: true).'
      - in: path
        name: bucket_name
        schema:
          type: string
          pattern: ^.*$
        description: The name of the bucket
        required: true
      - in: query
        name: continuation_token
        schema:
          type: string
          pattern: ^.*$
        description: A continuation token for the next page of records.
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: max_object_count
        schema:
          type: integer
          format: int64
        description: Number of results to be returned on the page. Limited to 1000
          objects.
      - in: query
        name: prefix
        schema:
          type: string
          default: ''
          pattern: ^.*$
        description: 'Filter objects by key prefix. If empty, lists from the bucket
          root (default: empty).'
      tags:
      - Storage - Objects
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBucketObject'
          description: List of bucket objects retrieved successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/storage/buckets/{bucket_name}/objects/{object_key}:
    get:
      operationId: download_object
      description: Download the object key from bucket.
      summary: Download object
      parameters:
      - in: path
        name: bucket_name
        schema:
          type: string
          pattern: ^.*$
        description: The name of the bucket
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: object_key
        schema:
          type: string
          pattern: ^.*$
        description: The key/path of the object within the bucket
        required: true
      tags:
      - Storage - Objects
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
                pattern: ^.*$
          description: Object downloaded successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_object_key
      description: Create a new object key in the bucket. The object's Content-Type
        is defined by the Content-Type header. If this header is not included, the
        Content-Type will be automatically detected.
      summary: Create new object key.
      parameters:
      - in: path
        name: bucket_name
        schema:
          type: string
          pattern: ^.*$
        description: The name of the bucket
        required: true
      - in: path
        name: object_key
        schema:
          type: string
          pattern: ^.*$
        description: The key/path of the object within the bucket
        required: true
      - in: header
        name: Storage-Content-Type
        schema:
          type: string
        description: The MIME type of the object being uploaded (Renamed from Content-Type
          to avoid SDK conflicts)
        required: false
      tags:
      - Storage - Objects
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
              pattern: ^.*$
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessObjectOperation'
          description: Object created successfully.
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessObjectOperationAsync'
          description: Object creation request accepted and is being processed.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_object_key
      description: Update the object key from bucket. The object's Content-Type is
        defined by the Content-Type header. If this header is not included, the Content-Type
        will be automatically detected.
      summary: Update the object key.
      parameters:
      - in: path
        name: bucket_name
        schema:
          type: string
          pattern: ^.*$
        description: The name of the bucket
        required: true
      - in: path
        name: object_key
        schema:
          type: string
          pattern: ^.*$
        description: The key/path of the object within the bucket
        required: true
      - in: header
        name: Storage-Content-Type
        schema:
          type: string
        description: The MIME type of the object being uploaded (Renamed from Content-Type
          to avoid SDK conflicts)
        required: false
      tags:
      - Storage - Objects
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
              pattern: ^.*$
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessObjectOperation'
          description: Object updated successfully.
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessObjectOperationAsync'
          description: Object update request accepted and is being processed.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_object_key
      description: Upon a successful deletion request, the object will be permanently
        deleted after a 24-hour grace period.
      summary: Delete object key
      parameters:
      - in: path
        name: bucket_name
        schema:
          type: string
          pattern: ^.*$
        description: The name of the bucket
        required: true
      - in: path
        name: object_key
        schema:
          type: string
          pattern: ^.*$
        description: The key/path of the object within the bucket
        required: true
      tags:
      - Storage - Objects
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Object deleted successfully.
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Object deletion request accepted and is being processed.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/storage/buckets/{bucket_name}/objects/{object_key}/copy/{new_object_key}:
    post:
      operationId: copy_object_key
      description: Copy an object to a new key within the same bucket.
      summary: Copy object to new key
      parameters:
      - in: path
        name: bucket_name
        schema:
          type: string
          pattern: ^.*$
        description: The name of the bucket
        required: true
      - in: path
        name: new_object_key
        schema:
          type: string
          pattern: ^.*$
        description: The key/path of the destination object within the bucket
        required: true
      - in: path
        name: object_key
        schema:
          type: string
          pattern: ^.*$
        description: The key/path of the source object within the bucket
        required: true
      tags:
      - Storage - Objects
      requestBody:
        content:
          application/json:
            schema: {}
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                description: Object copied successfully
          description: ''
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/wafs:
    get:
      operationId: list_wafs
      description: List all WAFs owned by your account.
      summary: List Web Application Firewalls (WAFs)
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - WAFs
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedWAFList'
          description: List of WAFs retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_waf
      description: Create a new WAF for your account.
      summary: Create a Web Application Firewall (WAF)
      tags:
      - WAFs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WAFRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WAFResponse'
          description: WAF created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/wafs/{waf_id}:
    get:
      operationId: retrieve_waf
      description: Retrieve details from a specific WAF in your account.
      summary: Retrieve details from a Web Application Firewall (WAF)
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: waf_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the WAF.
        required: true
      tags:
      - WAFs
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WAFResponse'
          description: WAF details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_waf
      description: Update an existing WAF. This replaces the entire WAF with the new
        data provided.
      summary: Update a Web Application Firewall (WAF)
      parameters:
      - in: path
        name: waf_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the WAF.
        required: true
      tags:
      - WAFs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WAFRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WAFResponse'
          description: WAF updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_waf
      description: Update one or more fields of an existing WAF without affecting
        other fields.
      summary: Partially update a Web Application Firewall (WAF)
      parameters:
      - in: path
        name: waf_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the WAF.
        required: true
      tags:
      - WAFs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedWAFRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WAFResponse'
          description: WAF partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_waf
      description: Delete a specific WAF in your account.
      summary: Delete a Web Application Firewall (WAF)
      parameters:
      - in: path
        name: waf_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the WAF.
        required: true
      tags:
      - WAFs
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: WAF deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/wafs/{waf_id}/clone:
    post:
      operationId: clone_waf
      description: Create a new WAF by performing a deep copy of an existing WAF,
        including its Exceptions.
      summary: Clone a Web Application Firewall (WAF)
      parameters:
      - in: path
        name: waf_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the WAF.
        required: true
      tags:
      - WAFs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloneWAFRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WAFResponse'
          description: WAF cloned successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/wafs/{waf_id}/exceptions:
    get:
      operationId: list_waf_exceptions
      description: List all Exceptions associated with a specific WAF owned by your
        account.
      summary: List Exceptions for a Web Application Firewall (WAF)
      parameters:
      - in: query
        name: created_at__gte
        schema:
          type: string
          format: date-time
        description: Filter by creation date (greater than or equal).
      - in: query
        name: created_at__lte
        schema:
          type: string
          format: date-time
        description: Filter by creation date (less than or equal).
      - in: query
        name: description
        schema:
          type: string
        description: Filter by description (case-insensitive, partial match).
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: last_editor
        schema:
          type: string
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (less than or equal).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - in: query
        name: path
        schema:
          type: string
        description: Filter by path (case-insensitive, partial match).
      - $ref: '#/components/parameters/SearchParam'
      - in: path
        name: waf_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the WAF.
        required: true
      tags:
      - WAFs - Exceptions
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedWAFRuleList'
          description: List of WAF rules retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_waf_exception
      description: Create a new Exception for a specific WAF in your account.
      summary: Create an Exception for a Web Application Firewall (WAF)
      parameters:
      - in: path
        name: waf_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the WAF.
        required: true
      tags:
      - WAFs - Exceptions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WAFRuleRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WAFRuleResponse'
          description: WAF rule created successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/wafs/{waf_id}/exceptions/{exception_id}:
    get:
      operationId: retrieve_waf_exception
      description: Retrieve details of a specific Exception from a WAF in your account.
      summary: Retrieve details of an Exception from a Web Application Firewall (WAF)
      parameters:
      - in: path
        name: exception_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the WAF exception.
        required: true
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: waf_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the WAF.
        required: true
      tags:
      - WAFs - Exceptions
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WAFRuleResponse'
          description: WAF rule details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_waf_exception
      description: Update an existing Exception for a WAF. This replaces the entire
        rule with the new data provided.
      summary: Update an Exception for a Web Application Firewall (WAF)
      parameters:
      - in: path
        name: exception_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the WAF exception.
        required: true
      - in: path
        name: waf_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the WAF.
        required: true
      tags:
      - WAFs - Exceptions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WAFRuleRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WAFRuleResponse'
          description: WAF rule updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_waf_exception
      description: Update one or more fields of an existing exception for a WAF without
        affecting other fields.
      summary: Partially update an Exception for a Web Application Firewall (WAF)
      parameters:
      - in: path
        name: exception_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the WAF exception.
        required: true
      - in: path
        name: waf_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the WAF.
        required: true
      tags:
      - WAFs - Exceptions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedWAFRuleRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WAFRuleResponse'
          description: WAF rule partially updated successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_waf_exception
      description: Remove a specific Exception from a WAF in your account.
      summary: Delete an Exception from a Web Application Firewall (WAF)
      parameters:
      - in: path
        name: exception_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the WAF exception.
        required: true
      - in: path
        name: waf_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the WAF.
        required: true
      tags:
      - WAFs - Exceptions
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: WAF rule deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/workloads:
    get:
      operationId: list_workloads
      description: List all Workloads owned by your account.
      summary: List Workloads
      parameters:
      - in: query
        name: active
        schema:
          type: boolean
        description: Filter by active status.
      - in: query
        name: digital_certificate_id
        schema:
          type: integer
          format: int64
        description: Filter by digital certificate id (accepts comma-separated values).
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: id
        schema:
          type: integer
          format: int64
        description: Filter by id (accepts comma-separated values).
      - in: query
        name: infrastructure
        schema:
          type: string
        description: Filter by infrastructure (accepts comma-separated values).
      - in: query
        name: last_editor
        schema:
          type: string
        description: Filter by last editor (case-insensitive, partial match).
      - in: query
        name: last_modified__gte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (greater than or equal).
      - in: query
        name: last_modified__lte
        schema:
          type: string
          format: date-time
        description: Filter by last modified date (less than or equal).
      - in: query
        name: map_name
        schema:
          type: string
        description: Filter by map name (case-insensitive, partial match).
      - in: query
        name: mtls_trusted_ca_certificate_id
        schema:
          type: integer
          format: int64
        description: Filter by mTLS trusted CA certificate id (accepts comma-separated
          values).
      - in: query
        name: name
        schema:
          type: string
        description: Filter by name (case-insensitive, partial match).
      - $ref: '#/components/parameters/OrderingParam'
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      - $ref: '#/components/parameters/SearchParam'
      tags:
      - Workloads
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedWorkloadList'
          description: List of workloads retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: create_workload
      description: Create a new Workload in your account.
      summary: Create an Workload
      tags:
      - Workloads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkloadRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadResponse'
          description: Workload created successfully.
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadResponse'
          description: Workload creation accepted and processing asynchronously.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /workspace/workloads/{workload_id}:
    get:
      operationId: retrieve_workload
      description: Retrieve details of a specific Workload in your account.
      summary: Retrieve details of an Workload
      parameters:
      - $ref: '#/components/parameters/FieldsParam'
      - in: path
        name: workload_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the workload.
        required: true
      tags:
      - Workloads
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadResponse'
          description: Workload details retrieved successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: update_workload
      description: Update an existing Workload. This replaces the entire Workload
        with the new data provided.
      summary: Update an Workload
      parameters:
      - in: path
        name: workload_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the workload.
        required: true
      tags:
      - Workloads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkloadRequest'
        required: true
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadResponse'
          description: Workload updated successfully.
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadResponse'
          description: Workload update accepted and processing asynchronously.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      operationId: partial_update_workload
      description: Update one or more fields of an existing Workload without affecting
        other fields.
      summary: Partially update an Workload
      parameters:
      - in: path
        name: workload_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the workload.
        required: true
      tags:
      - Workloads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedWorkloadRequest'
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadResponse'
          description: Workload partially updated successfully.
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadResponse'
          description: Workload partial update accepted and processing asynchronously.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: delete_workload
      description: Delete a specific Workload in your account.
      summary: Delete an Workload
      parameters:
      - in: path
        name: workload_id
        schema:
          type: integer
          format: int64
        description: A unique integer value identifying the workload.
        required: true
      tags:
      - Workloads
      security:
      - TokenAuth: []
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Workload deleted successfully.
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponse'
          description: Workload deletion accepted and processing asynchronously.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    DeleteResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
      additionalProperties: false
      title: DeleteResponse
    LoginRequest:
      type: object
      properties:
        email:
          type: string
          format: email
          writeOnly: true
          minLength: 1
        password:
          type: string
          writeOnly: true
          minLength: 1
          maxLength: 128
          pattern: ^.+$
          description: User password
        account_id:
          type: integer
          writeOnly: true
          nullable: true
          format: int64
      required:
      - email
      - password
      additionalProperties: false
    LoginResponse:
      oneOf:
      - $ref: '#/components/schemas/TokenPair'
      - $ref: '#/components/schemas/MFAToken'
      discriminator:
        propertyName: response_type
        mapping:
          TokenPair: '#/components/schemas/TokenPair'
          MFAToken: '#/components/schemas/MFAToken'
      additionalProperties: false
    MFAToken:
      type: object
      description: 'Used when user has MFA enabled. Returns a temporary MFA token
        that must be

        verified with a TOTP code before receiving full access tokens.'
      properties:
        access_token:
          type: string
          readOnly: true
          description: 'The access_token is a short-lived token (e.g., 10 minutes)
            used for API authentication in the Authorization: Bearer <access_token>
            header.'
        two_factor_required:
          type: boolean
          readOnly: true
          description: Specifies the type of two-factor authentication configured.
            Currently supports 'TOTP' (Time-based One-Time Password).
        two_factor_type:
          type: string
          readOnly: true
          description: Indicates whether the user has an active TOTP device configured.
            If false, the user must register a device before using MFA authentication.
        has_active_device:
          type: boolean
          readOnly: true
          description: Indicates whether the user already has an active TOTP device
            configured. If false, the user needs to set up a new device before using
            MFA authentication.
        response_type:
          type: string
          enum:
          - MFAToken
          description: Discriminator field for LoginResponse
          x-extensible-enum:
          - MFAToken
      required:
      - access_token
      - has_active_device
      - two_factor_required
      - two_factor_type
      - response_type
      additionalProperties: false
    ResponseLogin:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/LoginResponse'
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
      required:
      - data
      additionalProperties: false
    StateExecutedResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          description: State of the operation (lowercase with underscores)
          maxLength: 50
          minLength: 1
          pattern: ^[a-z_]+$
      additionalProperties: false
    TOTPDevice:
      type: object
      properties:
        url:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 255
          minLength: 0
      required:
      - url
      additionalProperties: false
    TOTPDeviceList:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          description: User's full name (alphanumeric, spaces, hyphens, dots)
          maxLength: 255
          minLength: 1
          pattern: ^[\w\s\-\.]+$
        email:
          type: string
          format: email
          description: User's email address
          maxLength: 255
          minLength: 5
        confirmed:
          type: boolean
          description: Is this device ready for use?
        user_id:
          type: integer
          description: The user that this device belongs to.
          readOnly: true
          format: int64
      required:
      - email
      - id
      - name
      - user_id
      additionalProperties: false
    TOTPDeviceResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/TOTPDevice'
      required:
      - data
      additionalProperties: false
    Token:
      type: object
      properties:
        access_token:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 255
          minLength: 0
      required:
      - access_token
      additionalProperties: false
    TokenPair:
      type: object
      description: 'Used when user does not have MFA enabled or after successful MFA
        verification.

        Returns both access and refresh tokens for API authentication.'
      properties:
        access_token:
          type: string
          readOnly: true
          description: 'The access_token is a short-lived token (e.g., 10 minutes)
            used for API authentication in the Authorization: Bearer <access_token>
            header.'
        refresh_token:
          type: string
          readOnly: true
          description: A long-lived JWT token used to refresh the access_token without
            requiring the user to authenticate again.
        response_type:
          type: string
          enum:
          - TokenPair
          description: Discriminator field for LoginResponse
          x-extensible-enum:
          - TokenPair
      required:
      - access_token
      - refresh_token
      - response_type
      additionalProperties: false
    TokenRequest:
      type: object
      properties:
        account_id:
          type: integer
          writeOnly: true
          nullable: true
          format: int64
      additionalProperties: false
    TokenResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/Token'
      required:
      - data
      additionalProperties: false
    UserLoginMethodResponse:
      type: object
      properties:
        method:
          type: string
          minLength: 1
          maxLength: 50
          pattern: ^[a-z_]+$
          description: Login method type (lowercase with underscores)
        url:
          type: string
          format: uri
      required:
      - method
      - url
      additionalProperties: false
    PaginatedTOTPDeviceList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/TOTPDeviceList'
      additionalProperties: false
    AWSKinesisFirehoseEndpoint:
      type: object
      properties:
        access_key:
          type: string
          maxLength: 150
          minLength: 1
          pattern: ^.*$
        stream_name:
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^.*$
        region:
          type: string
          maxLength: 50
          minLength: 1
          pattern: ^.*$
        secret_key:
          type: string
          maxLength: 150
          minLength: 1
          pattern: ^.*$
        type:
          type: string
          enum:
          - aws_kinesis_firehose
          description: Type identifier for this endpoint (aws_kinesis_firehose)
          pattern: ^.*$
          x-extensible-enum:
          - aws_kinesis_firehose
      required:
      - type
      - access_key
      - region
      - secret_key
      - stream_name
      title: AWSKinesisFirehoseEndpoint
      additionalProperties: false
    AWSKinesisFirehoseEndpointRequest:
      type: object
      properties:
        access_key:
          type: string
          minLength: 1
          maxLength: 150
          pattern: ^.*$
        stream_name:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^.*$
        region:
          type: string
          minLength: 1
          maxLength: 50
          pattern: ^.*$
        secret_key:
          type: string
          minLength: 1
          maxLength: 150
          pattern: ^.*$
        type:
          type: string
          enum:
          - aws_kinesis_firehose
          description: Type identifier for this endpoint (aws_kinesis_firehose)
          pattern: ^.*$
          x-extensible-enum:
          - aws_kinesis_firehose
      required:
      - type
      - access_key
      - region
      - secret_key
      - stream_name
      title: AWSKinesisFirehoseEndpointRequest
      additionalProperties: false
    AzureBlobStorageEndpoint:
      type: object
      properties:
        storage_account:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^.*$
        container_name:
          type: string
          maxLength: 150
          minLength: 1
          pattern: ^.*$
        blob_sas_token:
          type: string
          maxLength: 250
          minLength: 1
          pattern: ^.*$
        type:
          type: string
          enum:
          - azure_blob_storage
          description: Type identifier for this endpoint (azure_blob_storage)
          pattern: ^.*$
          x-extensible-enum:
          - azure_blob_storage
      required:
      - type
      - blob_sas_token
      - container_name
      - storage_account
      title: AzureBlobStorageEndpoint
      additionalProperties: false
    AzureBlobStorageEndpointRequest:
      type: object
      properties:
        storage_account:
          type: string
          minLength: 1
          maxLength: 100
          pattern: ^.*$
        container_name:
          type: string
          minLength: 1
          maxLength: 150
          pattern: ^.*$
        blob_sas_token:
          type: string
          minLength: 1
          maxLength: 250
          pattern: ^.*$
        type:
          type: string
          enum:
          - azure_blob_storage
          description: Type identifier for this endpoint (azure_blob_storage)
          pattern: ^.*$
          x-extensible-enum:
          - azure_blob_storage
      required:
      - type
      - blob_sas_token
      - container_name
      - storage_account
      title: AzureBlobStorageEndpointRequest
      additionalProperties: false
    AzureMonitorEndpoint:
      type: object
      properties:
        log_type:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^.*$
        shared_key:
          type: string
          maxLength: 150
          minLength: 1
          pattern: ^.*$
        time_generated_field:
          type: string
          nullable: true
          maxLength: 50
          minLength: 1
          pattern: ^.*$
        workspace_id:
          type: string
          maxLength: 150
          minLength: 1
          pattern: ^.*$
        type:
          type: string
          enum:
          - azure_monitor
          description: Type identifier for this endpoint (azure_monitor)
          pattern: ^.*$
          x-extensible-enum:
          - azure_monitor
      required:
      - type
      - log_type
      - shared_key
      - workspace_id
      title: AzureMonitorEndpoint
      additionalProperties: false
    AzureMonitorEndpointRequest:
      type: object
      properties:
        log_type:
          type: string
          minLength: 1
          maxLength: 100
          pattern: ^.*$
        shared_key:
          type: string
          minLength: 1
          maxLength: 150
          pattern: ^.*$
        time_generated_field:
          type: string
          nullable: true
          minLength: 1
          maxLength: 50
          pattern: ^.*$
        workspace_id:
          type: string
          minLength: 1
          maxLength: 150
          pattern: ^.*$
        type:
          type: string
          enum:
          - azure_monitor
          description: Type identifier for this endpoint (azure_monitor)
          pattern: ^.*$
          x-extensible-enum:
          - azure_monitor
      required:
      - type
      - log_type
      - shared_key
      - workspace_id
      title: AzureMonitorEndpointRequest
      additionalProperties: false
    BigQueryEndpoint:
      type: object
      properties:
        dataset_id:
          type: string
          maxLength: 1024
          minLength: 1
          pattern: ^.*$
        project_id:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^.*$
        table_id:
          type: string
          maxLength: 1024
          minLength: 1
          pattern: ^.*$
        service_account_key:
          type: string
          maxLength: 65535
          minLength: 1
          pattern: ^.*$
        type:
          type: string
          enum:
          - big_query
          description: Type identifier for this endpoint (big_query)
          pattern: ^.*$
          x-extensible-enum:
          - big_query
      required:
      - type
      - dataset_id
      - project_id
      - service_account_key
      - table_id
      title: BigQueryEndpoint
      additionalProperties: false
    BigQueryEndpointRequest:
      type: object
      properties:
        dataset_id:
          type: string
          minLength: 1
          maxLength: 1024
          pattern: ^.*$
        project_id:
          type: string
          minLength: 1
          maxLength: 100
          pattern: ^.*$
        table_id:
          type: string
          minLength: 1
          maxLength: 1024
          pattern: ^.*$
        service_account_key:
          type: string
          minLength: 1
          maxLength: 65535
          pattern: ^.*$
        type:
          type: string
          enum:
          - big_query
          description: Type identifier for this endpoint (big_query)
          pattern: ^.*$
          x-extensible-enum:
          - big_query
      required:
      - type
      - dataset_id
      - project_id
      - service_account_key
      - table_id
      title: BigQueryEndpointRequest
      additionalProperties: false
    ContentTypeEnum:
      enum:
      - plain/text
      - application/gzip
      type: string
      description: '* `plain/text` - plain/text

        * `application/gzip` - application/gzip'
      title: ContentTypeEnum
      x-extensible-enum:
      - plain/text
      - application/gzip
    DataSource:
      type: object
      properties:
        slug:
          type: string
          readOnly: true
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          readOnly: true
          title: DataSource Name
          pattern: ^.*$
        active:
          type: boolean
          readOnly: true
          title: Is Active
      required:
      - active
      - name
      - slug
      title: DataSource
      additionalProperties: false
    DataSourceEnum:
      enum:
      - workloads
      - waf
      - functions_console
      - activity_history
      - http
      - cells_console
      - rtm_activity
      type: string
      description: '* `workloads` - Workloads

        * `waf` - WAF Events

        * `functions_console` - Functions Console

        * `activity_history` - Activity History

        * `http` - Applications

        * `cells_console` - Functions

        * `rtm_activity` - Activity History'
      title: DataSourceEnum
      x-extensible-enum:
      - workloads
      - waf
      - functions_console
      - activity_history
      - http
      - cells_console
      - rtm_activity
    DataStream:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 100
          minLength: 1
        last_editor:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 100
          minLength: 1
        created:
          type: string
          format: date-time
          readOnly: true
          pattern: ^.*$
        last_modified:
          type: string
          format: date-time
          readOnly: true
          pattern: ^.*$
        product_version:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 50
          minLength: 1
        active:
          type: boolean
          default: true
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/Input'
        transform:
          type: array
          items:
            $ref: '#/components/schemas/Transform'
        outputs:
          type: array
          items:
            $ref: '#/components/schemas/OutputBase'
      required:
      - created
      - id
      - inputs
      - last_editor
      - last_modified
      - name
      - outputs
      - product_version
      - transform
      title: DataStream
      additionalProperties: false
    DataStreamRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 100
        active:
          type: boolean
          default: true
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/InputRequest'
        transform:
          type: array
          items:
            $ref: '#/components/schemas/TransformRequest'
        outputs:
          type: array
          items:
            $ref: '#/components/schemas/OutputRequestBase'
      required:
      - inputs
      - name
      - outputs
      - transform
      title: DataStreamRequest
      additionalProperties: false
    DataStreamResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/DataStream'
      required:
      - data
      title: DataStreamResponse
      additionalProperties: false
    DatadogEndpoint:
      type: object
      properties:
        url:
          type: string
          format: uri
          pattern: ^.*$
        api_key:
          type: string
          maxLength: 255
          minLength: 1
          pattern: ^.*$
        type:
          type: string
          enum:
          - datadog
          description: Type identifier for this endpoint (datadog)
          pattern: ^.*$
          x-extensible-enum:
          - datadog
      required:
      - type
      - api_key
      - url
      title: DatadogEndpoint
      additionalProperties: false
    DatadogEndpointRequest:
      type: object
      properties:
        url:
          type: string
          format: uri
          minLength: 1
          pattern: ^.*$
        api_key:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^.*$
        type:
          type: string
          enum:
          - datadog
          description: Type identifier for this endpoint (datadog)
          pattern: ^.*$
          x-extensible-enum:
          - datadog
      required:
      - type
      - api_key
      - url
      title: DatadogEndpointRequest
      additionalProperties: false
    ElasticsearchEndpoint:
      type: object
      properties:
        url:
          type: string
          format: uri
          pattern: ^.*$
        api_key:
          type: string
          maxLength: 255
          minLength: 1
          pattern: ^.*$
        type:
          type: string
          enum:
          - elasticsearch
          description: Type identifier for this endpoint (elasticsearch)
          pattern: ^.*$
          x-extensible-enum:
          - elasticsearch
      required:
      - type
      - api_key
      - url
      title: ElasticsearchEndpoint
      additionalProperties: false
    ElasticsearchEndpointRequest:
      type: object
      properties:
        url:
          type: string
          format: uri
          minLength: 1
          pattern: ^.*$
        api_key:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^.*$
        type:
          type: string
          enum:
          - elasticsearch
          description: Type identifier for this endpoint (elasticsearch)
          pattern: ^.*$
          x-extensible-enum:
          - elasticsearch
      required:
      - type
      - api_key
      - url
      title: ElasticsearchEndpointRequest
      additionalProperties: false
    HttpPostEndpoint:
      type: object
      properties:
        url:
          type: string
          format: uri
          pattern: ^.*$
        log_line_separator:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^.*$
        payload_format:
          type: string
          maxLength: 250
          minLength: 1
          pattern: ^.*$
        max_size:
          type: integer
          maximum: 2147483647
          minimum: 1000000
          nullable: true
          format: int64
        headers:
          type: object
          additionalProperties:
            type: string
            pattern: .*
            maxLength: 1024
            minLength: 1
        type:
          type: string
          enum:
          - standard
          description: Type identifier for this endpoint (standard)
          pattern: ^.*$
          x-extensible-enum:
          - standard
      required:
      - type
      - headers
      - url
      title: HttpPostEndpoint
      additionalProperties: false
    HttpPostEndpointRequest:
      type: object
      properties:
        url:
          type: string
          format: uri
          minLength: 1
          pattern: ^.*$
        log_line_separator:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^.*$
        payload_format:
          type: string
          minLength: 1
          maxLength: 250
          pattern: ^.*$
        max_size:
          type: integer
          maximum: 2147483647
          minimum: 1000000
          nullable: true
          format: int64
        headers:
          type: object
          additionalProperties:
            type: string
            minLength: 1
            pattern: .*
            maxLength: 1024
        type:
          type: string
          enum:
          - standard
          description: Type identifier for this endpoint (standard)
          pattern: ^.*$
          x-extensible-enum:
          - standard
      required:
      - type
      - headers
      - url
      title: HttpPostEndpointRequest
      additionalProperties: false
    InputDataSource:
      type: object
      properties:
        data_source:
          $ref: '#/components/schemas/DataSourceEnum'
      required:
      - data_source
      title: InputDataSource
      additionalProperties: false
    InputDataSourceAttributes:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/InputDataSourceAttributesTypeEnum'
        attributes:
          $ref: '#/components/schemas/InputDataSource'
      required:
      - attributes
      - type
      title: InputDataSourceAttributes
      additionalProperties: false
    InputDataSourceAttributesRequest:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/InputDataSourceAttributesTypeEnum'
        attributes:
          $ref: '#/components/schemas/InputDataSourceRequest'
      required:
      - attributes
      - type
      title: InputDataSourceAttributesRequest
      additionalProperties: false
    InputDataSourceAttributesTypeEnum:
      enum:
      - raw_logs
      type: string
      description: '* `raw_logs` - Raw Logs'
      title: InputDataSourceAttributesTypeEnum
      x-extensible-enum:
      - raw_logs
    InputDataSourceRequest:
      type: object
      properties:
        data_source:
          $ref: '#/components/schemas/DataSourceEnum'
      required:
      - data_source
      title: InputDataSourceRequest
      additionalProperties: false
    KafkaEndpoint:
      type: object
      properties:
        bootstrap_servers:
          type: string
          maxLength: 150
          minLength: 1
          pattern: ^.*$
        kafka_topic:
          type: string
          maxLength: 150
          minLength: 1
          pattern: ^.*$
        use_tls:
          type: boolean
        type:
          type: string
          enum:
          - kafka
          description: Type identifier for this endpoint (kafka)
          pattern: ^.*$
          x-extensible-enum:
          - kafka
      required:
      - type
      - bootstrap_servers
      - kafka_topic
      - use_tls
      title: KafkaEndpoint
      additionalProperties: false
    KafkaEndpointRequest:
      type: object
      properties:
        bootstrap_servers:
          type: string
          minLength: 1
          maxLength: 150
          pattern: ^.*$
        kafka_topic:
          type: string
          minLength: 1
          maxLength: 150
          pattern: ^.*$
        use_tls:
          type: boolean
        type:
          type: string
          enum:
          - kafka
          description: Type identifier for this endpoint (kafka)
          pattern: ^.*$
          x-extensible-enum:
          - kafka
      required:
      - type
      - bootstrap_servers
      - kafka_topic
      - use_tls
      title: KafkaEndpointRequest
      additionalProperties: false
    OutputTypeEnum:
      enum:
      - standard
      - kafka
      - s3
      - big_query
      - elasticsearch
      - splunk
      - aws_kinesis_firehose
      - datadog
      - qradar
      - azure_monitor
      - azure_blob_storage
      type: string
      description: '* `standard` - Standard HTTP/HTTPS POST

        * `kafka` - Apache Kafka

        * `s3` - Simple Storage Service (S3)

        * `big_query` - Google BigQuery

        * `elasticsearch` - Elasticsearch

        * `splunk` - Splunk

        * `aws_kinesis_firehose` - AWS Kinesis Data Firehose

        * `datadog` - Datadog

        * `qradar` - IBM QRadar

        * `azure_monitor` - Azure Monitor

        * `azure_blob_storage` - Azure Blob Storage'
      title: OutputTypeEnum
      x-extensible-enum:
      - standard
      - kafka
      - s3
      - big_query
      - elasticsearch
      - splunk
      - aws_kinesis_firehose
      - datadog
      - qradar
      - azure_monitor
      - azure_blob_storage
    PaginatedDataSourceList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
          pattern: ^.*$
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
          pattern: ^.*$
        results:
          type: array
          items:
            $ref: '#/components/schemas/DataSource'
      title: PaginatedDataSourceList
      additionalProperties: false
    PaginatedDataStreamList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
          pattern: ^.*$
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
          pattern: ^.*$
        results:
          type: array
          items:
            $ref: '#/components/schemas/DataStream'
      title: PaginatedDataStreamList
      additionalProperties: false
    PaginatedTemplateList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
          pattern: ^.*$
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
          pattern: ^.*$
        results:
          type: array
          items:
            $ref: '#/components/schemas/Template'
      title: PaginatedTemplateList
      additionalProperties: false
    PatchedDataStreamRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 100
        active:
          type: boolean
          default: true
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/InputRequest'
        transform:
          type: array
          items:
            $ref: '#/components/schemas/TransformRequest'
      title: PatchedDataStreamRequest
      additionalProperties: false
    PatchedTemplateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 100
        active:
          type: boolean
          default: true
        data_set:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 65535
      title: PatchedTemplateRequest
      additionalProperties: false
    QRadarEndpoint:
      type: object
      properties:
        url:
          type: string
          format: uri
          pattern: ^.*$
        type:
          type: string
          enum:
          - qradar
          description: Type identifier for this endpoint (qradar)
          pattern: ^.*$
          x-extensible-enum:
          - qradar
      required:
      - type
      - url
      title: QRadarEndpoint
      additionalProperties: false
    QRadarEndpointRequest:
      type: object
      properties:
        url:
          type: string
          format: uri
          minLength: 1
          pattern: ^.*$
        type:
          type: string
          enum:
          - qradar
          description: Type identifier for this endpoint (qradar)
          pattern: ^.*$
          x-extensible-enum:
          - qradar
      required:
      - type
      - url
      title: QRadarEndpointRequest
      additionalProperties: false
    S3Endpoint:
      type: object
      properties:
        access_key:
          type: string
          maxLength: 150
          minLength: 1
          pattern: ^.*$
        secret_key:
          type: string
          maxLength: 150
          minLength: 1
          pattern: ^.*$
        region:
          type: string
          maxLength: 50
          minLength: 1
          pattern: ^.*$
        object_key_prefix:
          type: string
          nullable: true
          maxLength: 150
          minLength: 1
          pattern: ^.*$
        bucket_name:
          type: string
          maxLength: 150
          minLength: 1
          pattern: ^.*$
        content_type:
          $ref: '#/components/schemas/ContentTypeEnum'
        host_url:
          type: string
          format: uri
          maxLength: 200
          pattern: ^.*$
        type:
          type: string
          enum:
          - s3
          description: Type identifier for this endpoint (s3)
          pattern: ^.*$
          x-extensible-enum:
          - s3
      required:
      - type
      - access_key
      - bucket_name
      - content_type
      - host_url
      - region
      - secret_key
      title: S3Endpoint
      additionalProperties: false
    S3EndpointRequest:
      type: object
      properties:
        access_key:
          type: string
          minLength: 1
          maxLength: 150
          pattern: ^.*$
        secret_key:
          type: string
          minLength: 1
          maxLength: 150
          pattern: ^.*$
        region:
          type: string
          minLength: 1
          maxLength: 50
          pattern: ^.*$
        object_key_prefix:
          type: string
          nullable: true
          minLength: 1
          maxLength: 150
          pattern: ^.*$
        bucket_name:
          type: string
          minLength: 1
          maxLength: 150
          pattern: ^.*$
        content_type:
          $ref: '#/components/schemas/ContentTypeEnum'
        host_url:
          type: string
          format: uri
          minLength: 1
          maxLength: 200
          pattern: ^.*$
        type:
          type: string
          enum:
          - s3
          description: Type identifier for this endpoint (s3)
          pattern: ^.*$
          x-extensible-enum:
          - s3
      required:
      - type
      - access_key
      - bucket_name
      - content_type
      - host_url
      - region
      - secret_key
      title: S3EndpointRequest
      additionalProperties: false
    SplunkEndpoint:
      type: object
      properties:
        url:
          type: string
          format: uri
          pattern: ^.*$
        api_key:
          type: string
          maxLength: 255
          minLength: 1
          pattern: ^.*$
        type:
          type: string
          enum:
          - splunk
          description: Type identifier for this endpoint (splunk)
          pattern: ^.*$
          x-extensible-enum:
          - splunk
      required:
      - type
      - api_key
      - url
      title: SplunkEndpoint
      additionalProperties: false
    SplunkEndpointRequest:
      type: object
      properties:
        url:
          type: string
          format: uri
          minLength: 1
          pattern: ^.*$
        api_key:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^.*$
        type:
          type: string
          enum:
          - splunk
          description: Type identifier for this endpoint (splunk)
          pattern: ^.*$
          x-extensible-enum:
          - splunk
      required:
      - type
      - api_key
      - url
      title: SplunkEndpointRequest
      additionalProperties: false
    Template:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 100
          minLength: 1
        last_editor:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 100
          minLength: 1
        created_at:
          type: string
          format: date-time
          readOnly: true
          pattern: ^.*$
        last_modified:
          type: string
          format: date-time
          readOnly: true
          pattern: ^.*$
        custom:
          type: boolean
          readOnly: true
        active:
          type: boolean
          default: true
        data_set:
          type: string
          pattern: .*
          maxLength: 65535
          minLength: 1
      required:
      - created_at
      - custom
      - data_set
      - id
      - last_editor
      - last_modified
      - name
      title: Template
      additionalProperties: false
    TemplateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 100
        active:
          type: boolean
          default: true
        data_set:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 65535
      required:
      - data_set
      - name
      title: TemplateRequest
      additionalProperties: false
    TemplateResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/Template'
      required:
      - data
      title: TemplateResponse
      additionalProperties: false
    TransformFilterWorkloads:
      type: object
      description: Serializer for filter_workloads transform attributes.
      properties:
        workloads:
          type: array
          items:
            type: integer
            minimum: 1
            format: int64
          maxItems: 600
          minItems: 1
      required:
      - workloads
      title: TransformFilterWorkloads
      additionalProperties: false
    TransformFilterWorkloadsAttributes:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TransformFilterWorkloadsAttributesTypeEnum'
        attributes:
          $ref: '#/components/schemas/TransformFilterWorkloads'
      required:
      - attributes
      - type
      title: TransformFilterWorkloadsAttributes
      additionalProperties: false
    TransformFilterWorkloadsAttributesRequest:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TransformFilterWorkloadsAttributesTypeEnum'
        attributes:
          $ref: '#/components/schemas/TransformFilterWorkloadsRequest'
      required:
      - attributes
      - type
      title: TransformFilterWorkloadsAttributesRequest
      additionalProperties: false
    TransformFilterWorkloadsAttributesTypeEnum:
      enum:
      - filter_workloads
      type: string
      description: '* `filter_workloads` - Filter Workloads'
      title: TransformFilterWorkloadsAttributesTypeEnum
      x-extensible-enum:
      - filter_workloads
    TransformFilterWorkloadsRequest:
      type: object
      description: Serializer for filter_workloads transform attributes.
      properties:
        workloads:
          type: array
          items:
            type: integer
            minimum: 1
            format: int64
          maxItems: 600
          minItems: 1
      required:
      - workloads
      title: TransformFilterWorkloadsRequest
      additionalProperties: false
    TransformRenderTemplate:
      type: object
      description: Serializer for render_template transform attributes.
      properties:
        template:
          type: integer
          maximum: 2147483647
          minimum: 1
          format: int64
      required:
      - template
      title: TransformRenderTemplate
      additionalProperties: false
    TransformRenderTemplateAttributes:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TransformRenderTemplateAttributesTypeEnum'
        attributes:
          $ref: '#/components/schemas/TransformRenderTemplate'
      required:
      - attributes
      - type
      title: TransformRenderTemplateAttributes
      additionalProperties: false
    TransformRenderTemplateAttributesRequest:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TransformRenderTemplateAttributesTypeEnum'
        attributes:
          $ref: '#/components/schemas/TransformRenderTemplateRequest'
      required:
      - attributes
      - type
      title: TransformRenderTemplateAttributesRequest
      additionalProperties: false
    TransformRenderTemplateAttributesTypeEnum:
      enum:
      - render_template
      type: string
      description: '* `render_template` - Render Template'
      title: TransformRenderTemplateAttributesTypeEnum
      x-extensible-enum:
      - render_template
    TransformRenderTemplateRequest:
      type: object
      description: Serializer for render_template transform attributes.
      properties:
        template:
          type: integer
          maximum: 2147483647
          minimum: 1
          format: int64
      required:
      - template
      title: TransformRenderTemplateRequest
      additionalProperties: false
    TransformSampling:
      type: object
      description: Serializer for sampling transform attributes.
      properties:
        rate:
          type: integer
          maximum: 100
          minimum: 1
          format: int64
      required:
      - rate
      title: TransformSampling
      additionalProperties: false
    TransformSamplingAttributes:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TransformSamplingAttributesTypeEnum'
        attributes:
          $ref: '#/components/schemas/TransformSampling'
      required:
      - attributes
      - type
      title: TransformSamplingAttributes
      additionalProperties: false
    TransformSamplingAttributesRequest:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TransformSamplingAttributesTypeEnum'
        attributes:
          $ref: '#/components/schemas/TransformSamplingRequest'
      required:
      - attributes
      - type
      title: TransformSamplingAttributesRequest
      additionalProperties: false
    TransformSamplingAttributesTypeEnum:
      enum:
      - sampling
      type: string
      description: '* `sampling` - Sampling'
      title: TransformSamplingAttributesTypeEnum
      x-extensible-enum:
      - sampling
    TransformSamplingRequest:
      type: object
      description: Serializer for sampling transform attributes.
      properties:
        rate:
          type: integer
          maximum: 100
          minimum: 1
          format: int64
      required:
      - rate
      title: TransformSamplingRequest
      additionalProperties: false
    OutputBase:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/OutputTypeEnum'
        attributes:
          $ref: '#/components/schemas/Output'
      required:
      - attributes
      - type
      title: OutputBase
      additionalProperties: false
    Output:
      oneOf:
      - $ref: '#/components/schemas/HttpPostEndpoint'
      - $ref: '#/components/schemas/KafkaEndpoint'
      - $ref: '#/components/schemas/S3Endpoint'
      - $ref: '#/components/schemas/BigQueryEndpoint'
      - $ref: '#/components/schemas/ElasticsearchEndpoint'
      - $ref: '#/components/schemas/AWSKinesisFirehoseEndpoint'
      - $ref: '#/components/schemas/DatadogEndpoint'
      - $ref: '#/components/schemas/QRadarEndpoint'
      - $ref: '#/components/schemas/AzureMonitorEndpoint'
      - $ref: '#/components/schemas/AzureBlobStorageEndpoint'
      - $ref: '#/components/schemas/SplunkEndpoint'
      discriminator:
        propertyName: type
        mapping:
          standard: '#/components/schemas/HttpPostEndpoint'
          kafka: '#/components/schemas/KafkaEndpoint'
          s3: '#/components/schemas/S3Endpoint'
          big_query: '#/components/schemas/BigQueryEndpoint'
          elasticsearch: '#/components/schemas/ElasticsearchEndpoint'
          aws_kinesis_firehose: '#/components/schemas/AWSKinesisFirehoseEndpoint'
          datadog: '#/components/schemas/DatadogEndpoint'
          qradar: '#/components/schemas/QRadarEndpoint'
          azure_monitor: '#/components/schemas/AzureMonitorEndpoint'
          azure_blob_storage: '#/components/schemas/AzureBlobStorageEndpoint'
          splunk: '#/components/schemas/SplunkEndpoint'
      title: Output
      additionalProperties: false
    OutputRequestBase:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/OutputTypeEnum'
        attributes:
          $ref: '#/components/schemas/OutputRequest'
      required:
      - attributes
      - type
      title: OutputRequestBase
      additionalProperties: false
    OutputRequest:
      oneOf:
      - $ref: '#/components/schemas/HttpPostEndpointRequest'
      - $ref: '#/components/schemas/KafkaEndpointRequest'
      - $ref: '#/components/schemas/S3EndpointRequest'
      - $ref: '#/components/schemas/BigQueryEndpointRequest'
      - $ref: '#/components/schemas/ElasticsearchEndpointRequest'
      - $ref: '#/components/schemas/AWSKinesisFirehoseEndpointRequest'
      - $ref: '#/components/schemas/DatadogEndpointRequest'
      - $ref: '#/components/schemas/QRadarEndpointRequest'
      - $ref: '#/components/schemas/AzureMonitorEndpointRequest'
      - $ref: '#/components/schemas/AzureBlobStorageEndpointRequest'
      - $ref: '#/components/schemas/SplunkEndpointRequest'
      discriminator:
        propertyName: type
        mapping:
          standard: '#/components/schemas/HttpPostEndpointRequest'
          kafka: '#/components/schemas/KafkaEndpointRequest'
          s3: '#/components/schemas/S3EndpointRequest'
          big_query: '#/components/schemas/BigQueryEndpointRequest'
          elasticsearch: '#/components/schemas/ElasticsearchEndpointRequest'
          aws_kinesis_firehose: '#/components/schemas/AWSKinesisFirehoseEndpointRequest'
          datadog: '#/components/schemas/DatadogEndpointRequest'
          qradar: '#/components/schemas/QRadarEndpointRequest'
          azure_monitor: '#/components/schemas/AzureMonitorEndpointRequest'
          azure_blob_storage: '#/components/schemas/AzureBlobStorageEndpointRequest'
          splunk: '#/components/schemas/SplunkEndpointRequest'
      title: OutputRequest
      additionalProperties: false
    Input:
      oneOf:
      - $ref: '#/components/schemas/InputInputDataSourceAttributes'
      discriminator:
        propertyName: type
        mapping:
          raw_logs: '#/components/schemas/InputInputDataSourceAttributes'
      title: Input
      additionalProperties: false
    InputInputDataSourceAttributes:
      allOf:
      - $ref: '#/components/schemas/InputShared'
      - $ref: '#/components/schemas/InputDataSourceAttributes'
      title: InputInputDataSourceAttributes
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
          - raw_logs
          description: Type identifier for this endpoint (raw_logs)
          pattern: ^.*$
          x-extensible-enum:
          - raw_logs
      required:
      - type
    InputInputDataSourceAttributesRequest:
      allOf:
      - $ref: '#/components/schemas/InputShared'
      - $ref: '#/components/schemas/InputDataSourceAttributesRequest'
      title: InputInputDataSourceAttributesRequest
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
          - raw_logs
          description: Type identifier for this endpoint (raw_logs)
          pattern: ^.*$
          x-extensible-enum:
          - raw_logs
      required:
      - type
    InputRequest:
      oneOf:
      - $ref: '#/components/schemas/InputInputDataSourceAttributesRequest'
      discriminator:
        propertyName: type
        mapping:
          raw_logs: '#/components/schemas/InputInputDataSourceAttributesRequest'
      title: InputRequest
      additionalProperties: false
    InputShared:
      type: object
      properties:
        type:
          type: string
          pattern: ^.*$
          minLength: 1
          maxLength: 255
      required:
      - type
      title: InputShared
      additionalProperties: false
    Transform:
      oneOf:
      - $ref: '#/components/schemas/TransformTransformSamplingAttributes'
      - $ref: '#/components/schemas/TransformTransformFilterWorkloadsAttributes'
      - $ref: '#/components/schemas/TransformTransformRenderTemplateAttributes'
      discriminator:
        propertyName: type
        mapping:
          sampling: '#/components/schemas/TransformTransformSamplingAttributes'
          filter_workloads: '#/components/schemas/TransformTransformFilterWorkloadsAttributes'
          render_template: '#/components/schemas/TransformTransformRenderTemplateAttributes'
      title: Transform
      additionalProperties: false
    TransformRequest:
      oneOf:
      - $ref: '#/components/schemas/TransformTransformSamplingAttributesRequest'
      - $ref: '#/components/schemas/TransformTransformFilterWorkloadsAttributesRequest'
      - $ref: '#/components/schemas/TransformTransformRenderTemplateAttributesRequest'
      discriminator:
        propertyName: type
        mapping:
          sampling: '#/components/schemas/TransformTransformSamplingAttributesRequest'
          filter_workloads: '#/components/schemas/TransformTransformFilterWorkloadsAttributesRequest'
          render_template: '#/components/schemas/TransformTransformRenderTemplateAttributesRequest'
      title: TransformRequest
      additionalProperties: false
    TransformShared:
      type: object
      properties:
        type:
          type: string
          pattern: ^.*$
          minLength: 1
          maxLength: 255
      required:
      - type
      title: TransformShared
      additionalProperties: false
    TransformTransformFilterWorkloadsAttributes:
      allOf:
      - $ref: '#/components/schemas/TransformShared'
      - $ref: '#/components/schemas/TransformFilterWorkloadsAttributes'
      title: TransformTransformFilterWorkloadsAttributes
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
          - filter_workloads
          description: Type identifier for this endpoint (filter_workloads)
          pattern: ^.*$
          x-extensible-enum:
          - filter_workloads
      required:
      - type
    TransformTransformFilterWorkloadsAttributesRequest:
      allOf:
      - $ref: '#/components/schemas/TransformShared'
      - $ref: '#/components/schemas/TransformFilterWorkloadsAttributesRequest'
      title: TransformTransformFilterWorkloadsAttributesRequest
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
          - filter_workloads
          description: Type identifier for this endpoint (filter_workloads)
          pattern: ^.*$
          x-extensible-enum:
          - filter_workloads
      required:
      - type
    TransformTransformRenderTemplateAttributes:
      allOf:
      - $ref: '#/components/schemas/TransformShared'
      - $ref: '#/components/schemas/TransformRenderTemplateAttributes'
      title: TransformTransformRenderTemplateAttributes
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
          - render_template
          description: Type identifier for this endpoint (render_template)
          pattern: ^.*$
          x-extensible-enum:
          - render_template
      required:
      - type
    TransformTransformRenderTemplateAttributesRequest:
      allOf:
      - $ref: '#/components/schemas/TransformShared'
      - $ref: '#/components/schemas/TransformRenderTemplateAttributesRequest'
      title: TransformTransformRenderTemplateAttributesRequest
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
          - render_template
          description: Type identifier for this endpoint (render_template)
          pattern: ^.*$
          x-extensible-enum:
          - render_template
      required:
      - type
    TransformTransformSamplingAttributes:
      allOf:
      - $ref: '#/components/schemas/TransformShared'
      - $ref: '#/components/schemas/TransformSamplingAttributes'
      title: TransformTransformSamplingAttributes
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
          - sampling
          description: Type identifier for this endpoint (sampling)
          pattern: ^.*$
          x-extensible-enum:
          - sampling
      required:
      - type
    TransformTransformSamplingAttributesRequest:
      allOf:
      - $ref: '#/components/schemas/TransformShared'
      - $ref: '#/components/schemas/TransformSamplingAttributesRequest'
      title: TransformTransformSamplingAttributesRequest
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
          - sampling
          description: Type identifier for this endpoint (sampling)
          pattern: ^.*$
          x-extensible-enum:
          - sampling
      required:
      - type
    AlgType:
      type: object
      properties:
        id:
          type: integer
          maximum: 4294967295
          minimum: 1
          format: int64
        slug:
          type: string
          maxLength: 100
          minLength: 1
          pattern: \w
      required:
      - id
      - slug
      additionalProperties: false
    DNSSEC:
      type: object
      properties:
        enabled:
          type: boolean
        status:
          enum:
          - unconfigured
          - waiting
          - ready
          type: string
          description: '* `unconfigured` - unconfigured

            * `waiting` - waiting

            * `ready` - ready'
          readOnly: true
          x-extensible-enum:
          - unconfigured
          - waiting
          - ready
        delegation_signer:
          allOf:
          - $ref: '#/components/schemas/DelegationSigner'
          readOnly: true
          nullable: true
          type: object
      required:
      - delegation_signer
      - enabled
      - status
      additionalProperties: false
    DNSSECRequest:
      type: object
      properties:
        enabled:
          type: boolean
      required:
      - enabled
      additionalProperties: false
    DNSSECResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/DNSSEC'
      required:
      - data
      additionalProperties: false
    DelegationSigner:
      type: object
      properties:
        algorithm_type:
          $ref: '#/components/schemas/AlgType'
        digest:
          type: string
          maxLength: 100
          minLength: 1
          pattern: \w
        digest_type:
          $ref: '#/components/schemas/AlgType'
        key_tag:
          type: integer
          maximum: 65535
          minimum: 1
          format: int64
      required:
      - algorithm_type
      - digest
      - digest_type
      - key_tag
      additionalProperties: false
    PaginatedRecordList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/Record'
      additionalProperties: false
    PaginatedZoneList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/Zone'
      additionalProperties: false
    PatchedDNSSECRequest:
      type: object
      properties:
        enabled:
          type: boolean
      additionalProperties: false
    PatchedRecordRequest:
      type: object
      properties:
        description:
          type: string
          default: ''
          pattern: .*
          maxLength: 45
          minLength: 0
        name:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^(?:(?:(?!-)[a-zA-Z0-9-_*]{1,63}(?<![-_])\.)*(?:(?!-)[a-zA-Z0-9-_*]{1,63}(?<![-_]))|@)$
        ttl:
          type: integer
          maximum: 2147483647
          minimum: 1
          default: 3600
          format: int64
        type:
          enum:
          - A
          - AAAA
          - ANAME
          - CNAME
          - MX
          - NS
          - PTR
          - SRV
          - TXT
          - CAA
          - DS
          type: string
          description: '* `A` - A

            * `AAAA` - AAAA

            * `ANAME` - ANAME

            * `CNAME` - CNAME

            * `MX` - MX

            * `NS` - NS

            * `PTR` - PTR

            * `SRV` - SRV

            * `TXT` - TXT

            * `CAA` - CAA

            * `DS` - DS'
          x-extensible-enum:
          - A
          - AAAA
          - ANAME
          - CNAME
          - MX
          - NS
          - PTR
          - SRV
          - TXT
          - CAA
          - DS
        rdata:
          type: array
          items:
            type: string
            minLength: 1
        policy:
          enum:
          - simple
          - weighted
          type: string
          description: '* `simple` - simple

            * `weighted` - weighted'
          default: simple
          x-extensible-enum:
          - simple
          - weighted
        weight:
          type: integer
          maximum: 255
          minimum: 0
          default: 255
          format: int64
      additionalProperties: false
    PatchedUpdateZoneRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 50
        active:
          type: boolean
      additionalProperties: false
    Record:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        description:
          type: string
          default: ''
          pattern: .*
          maxLength: 45
          minLength: 0
        name:
          type: string
          maxLength: 255
          minLength: 1
          pattern: ^(?:(?:(?!-)[a-zA-Z0-9-_*]{1,63}(?<![-_])\.)*(?:(?!-)[a-zA-Z0-9-_*]{1,63}(?<![-_]))|@)$
        ttl:
          type: integer
          maximum: 2147483647
          minimum: 1
          default: 3600
          format: int64
        type:
          enum:
          - A
          - AAAA
          - ANAME
          - CNAME
          - MX
          - NS
          - PTR
          - SRV
          - TXT
          - CAA
          - DS
          type: string
          description: '* `A` - A

            * `AAAA` - AAAA

            * `ANAME` - ANAME

            * `CNAME` - CNAME

            * `MX` - MX

            * `NS` - NS

            * `PTR` - PTR

            * `SRV` - SRV

            * `TXT` - TXT

            * `CAA` - CAA

            * `DS` - DS'
          x-extensible-enum:
          - A
          - AAAA
          - ANAME
          - CNAME
          - MX
          - NS
          - PTR
          - SRV
          - TXT
          - CAA
          - DS
        rdata:
          type: array
          items:
            type: string
        policy:
          enum:
          - simple
          - weighted
          type: string
          description: '* `simple` - simple

            * `weighted` - weighted'
          default: simple
          x-extensible-enum:
          - simple
          - weighted
        weight:
          type: integer
          maximum: 255
          minimum: 0
          default: 255
          format: int64
      required:
      - id
      - name
      - rdata
      - type
      additionalProperties: false
    RecordRequest:
      type: object
      properties:
        description:
          type: string
          default: ''
          pattern: .*
          maxLength: 45
          minLength: 0
        name:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^(?:(?:(?!-)[a-zA-Z0-9-_*]{1,63}(?<![-_])\.)*(?:(?!-)[a-zA-Z0-9-_*]{1,63}(?<![-_]))|@)$
        ttl:
          type: integer
          maximum: 2147483647
          minimum: 1
          default: 3600
          format: int64
        type:
          enum:
          - A
          - AAAA
          - ANAME
          - CNAME
          - MX
          - NS
          - PTR
          - SRV
          - TXT
          - CAA
          - DS
          type: string
          description: '* `A` - A

            * `AAAA` - AAAA

            * `ANAME` - ANAME

            * `CNAME` - CNAME

            * `MX` - MX

            * `NS` - NS

            * `PTR` - PTR

            * `SRV` - SRV

            * `TXT` - TXT

            * `CAA` - CAA

            * `DS` - DS'
          x-extensible-enum:
          - A
          - AAAA
          - ANAME
          - CNAME
          - MX
          - NS
          - PTR
          - SRV
          - TXT
          - CAA
          - DS
        rdata:
          type: array
          items:
            type: string
            minLength: 1
        policy:
          enum:
          - simple
          - weighted
          type: string
          description: '* `simple` - simple

            * `weighted` - weighted'
          default: simple
          x-extensible-enum:
          - simple
          - weighted
        weight:
          type: integer
          maximum: 255
          minimum: 0
          default: 255
          format: int64
      required:
      - name
      - rdata
      - type
      additionalProperties: false
    RecordResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/Record'
      required:
      - data
      additionalProperties: false
    UpdateZoneRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 50
        active:
          type: boolean
      required:
      - active
      - name
      additionalProperties: false
    Zone:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 50
          minLength: 1
        domain:
          type: string
          maxLength: 200
          minLength: 1
          pattern: (?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{0,62}[a-zA-Z0-9]\.)+[a-zA-Z]{2,63}$)
        active:
          type: boolean
        nameservers:
          type: array
          items:
            type: string
          readOnly: true
        product_version:
          type: string
          readOnly: true
          pattern: \d+\.\d+
          maxLength: 50
          minLength: 3
      required:
      - active
      - domain
      - id
      - name
      - nameservers
      - product_version
      additionalProperties: false
    ZoneRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 50
        domain:
          type: string
          minLength: 1
          maxLength: 200
          pattern: (?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{0,62}[a-zA-Z0-9]\.)+[a-zA-Z]{2,63}$)
        active:
          type: boolean
      required:
      - active
      - domain
      - name
      additionalProperties: false
    ZoneResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/Zone'
      required:
      - data
      additionalProperties: false
    AWS4HMAC:
      type: object
      properties:
        type:
          allOf:
          - $ref: '#/components/schemas/AWS4HMACTypeEnum'
          default: aws4_hmac_sha256
        attributes:
          $ref: '#/components/schemas/AWS4HMACAttributes'
      required:
      - attributes
      title: AWS4HMAC
      additionalProperties: false
    AWS4HMACAttributes:
      type: object
      properties:
        region:
          type: string
          pattern: .*
          maxLength: 255
          minLength: 1
        service:
          type: string
          default: s3
          pattern: .*
          maxLength: 255
          minLength: 1
        access_key:
          type: string
          pattern: .*
          maxLength: 255
          minLength: 1
        secret_key:
          type: string
          pattern: .*
          maxLength: 255
          minLength: 1
      required:
      - access_key
      - region
      - secret_key
      title: AWS4HMACAttributes
      additionalProperties: false
    AWS4HMACAttributesRequest:
      type: object
      properties:
        region:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 255
        service:
          type: string
          minLength: 1
          default: s3
          pattern: .*
          maxLength: 255
        access_key:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 255
        secret_key:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 255
      required:
      - access_key
      - region
      - secret_key
      title: AWS4HMACAttributesRequest
      additionalProperties: false
    AWS4HMACRequest:
      type: object
      properties:
        type:
          allOf:
          - $ref: '#/components/schemas/AWS4HMACTypeEnum'
          default: aws4_hmac_sha256
        attributes:
          $ref: '#/components/schemas/AWS4HMACAttributesRequest'
      required:
      - attributes
      title: AWS4HMACRequest
      additionalProperties: false
    AWS4HMACTypeEnum:
      enum:
      - aws4_hmac_sha256
      type: string
      description: '* `aws4_hmac_sha256` - AWS for HMAC - SHA256'
      title: AWS4HMACTypeEnum
      x-extensible-enum:
      - aws4_hmac_sha256
    Address:
      type: object
      properties:
        active:
          type: boolean
          default: true
          description: Indicates if the address is active for use
        address:
          type: string
          description: IPv4/IPv6 address or CNAME to resolve
          pattern: .*
          maxLength: 255
          minLength: 1
        http_port:
          type: integer
          maximum: 65535
          minimum: 1
          default: 80
          description: Port number for HTTP connections
          format: int64
        https_port:
          type: integer
          maximum: 65535
          minimum: 1
          default: 443
          description: Port number for HTTPS connections
          format: int64
        modules:
          allOf:
          - $ref: '#/components/schemas/AddressModules'
          nullable: true
          type: object
      required:
      - address
      title: Address
      additionalProperties: false
    AddressLoadBalancerModule:
      type: object
      properties:
        server_role:
          allOf:
          - $ref: '#/components/schemas/ServerRoleEnum'
          default: primary
          description: 'Role of the address in load balancing


            * `primary` - Primary

            * `backup` - Backup'
        weight:
          type: integer
          maximum: 100
          minimum: 1
          default: 1
          description: Weight used in load balancing strategy
          format: int64
      title: AddressLoadBalancerModule
      additionalProperties: false
    AddressLoadBalancerModuleRequest:
      type: object
      properties:
        server_role:
          allOf:
          - $ref: '#/components/schemas/ServerRoleEnum'
          default: primary
          description: 'Role of the address in load balancing


            * `primary` - Primary

            * `backup` - Backup'
        weight:
          type: integer
          maximum: 100
          minimum: 1
          default: 1
          description: Weight used in load balancing strategy
          format: int64
      title: AddressLoadBalancerModuleRequest
      additionalProperties: false
    AddressModules:
      type: object
      properties:
        load_balancer:
          $ref: '#/components/schemas/AddressLoadBalancerModule'
      title: AddressModules
      additionalProperties: false
    AddressModulesRequest:
      type: object
      properties:
        load_balancer:
          $ref: '#/components/schemas/AddressLoadBalancerModuleRequest'
      title: AddressModulesRequest
      additionalProperties: false
    AddressRequest:
      type: object
      properties:
        active:
          type: boolean
          default: true
          description: Indicates if the address is active for use
        address:
          type: string
          minLength: 1
          description: IPv4/IPv6 address or CNAME to resolve
          pattern: .*
          maxLength: 255
        http_port:
          type: integer
          maximum: 65535
          minimum: 1
          default: 80
          description: Port number for HTTP connections
          format: int64
        https_port:
          type: integer
          maximum: 65535
          minimum: 1
          default: 443
          description: Port number for HTTPS connections
          format: int64
        modules:
          allOf:
          - $ref: '#/components/schemas/AddressModulesRequest'
          nullable: true
          type: object
      required:
      - address
      title: AddressRequest
      additionalProperties: false
    Application:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 100
          minLength: 1
        last_editor:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 250
          minLength: 1
        last_modified:
          type: string
          format: date-time
          readOnly: true
        modules:
          $ref: '#/components/schemas/ApplicationModules'
        active:
          type: boolean
          default: true
        debug:
          type: boolean
          default: false
        product_version:
          type: string
          readOnly: true
      required:
      - id
      - last_editor
      - last_modified
      - name
      - product_version
      title: Application
      additionalProperties: false
    ApplicationAcceleratorModule:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
      title: ApplicationAcceleratorModule
      additionalProperties: false
    ApplicationAcceleratorModuleRequest:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
      title: ApplicationAcceleratorModuleRequest
      additionalProperties: false
    ApplicationModules:
      type: object
      properties:
        cache:
          allOf:
          - $ref: '#/components/schemas/CacheModule'
        functions:
          allOf:
          - $ref: '#/components/schemas/FunctionModule'
        application_accelerator:
          allOf:
          - $ref: '#/components/schemas/ApplicationAcceleratorModule'
        image_processor:
          allOf:
          - $ref: '#/components/schemas/ImageProcessorModule'
      title: ApplicationModules
      additionalProperties: false
    ApplicationModulesRequest:
      type: object
      properties:
        cache:
          allOf:
          - $ref: '#/components/schemas/CacheModuleRequest'
        functions:
          allOf:
          - $ref: '#/components/schemas/FunctionModuleRequest'
        application_accelerator:
          allOf:
          - $ref: '#/components/schemas/ApplicationAcceleratorModuleRequest'
        image_processor:
          allOf:
          - $ref: '#/components/schemas/ImageProcessorModuleRequest'
      title: ApplicationModulesRequest
      additionalProperties: false
    ApplicationRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 100
        modules:
          $ref: '#/components/schemas/ApplicationModulesRequest'
        active:
          type: boolean
          default: true
        debug:
          type: boolean
          default: false
      required:
      - name
      title: ApplicationRequest
      additionalProperties: false
    ApplicationResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/Application'
      required:
      - data
      title: ApplicationResponse
      additionalProperties: false
    ApplicationResponsePhaseRuleEngineOrderRequest:
      type: object
      properties:
        order:
          type: array
          items:
            type: integer
            maximum: 9223372036854775807
            minimum: 1
            format: int64
      required:
      - order
      title: ApplicationResponsePhaseRuleEngineOrderRequest
      additionalProperties: false
    BehaviorCaptureMatchGroupsAttributes:
      type: object
      properties:
        subject:
          type: string
          pattern: .*
          maxLength: 50
          minLength: 4
        regex:
          type: string
          pattern: .*
          maxLength: 255
          minLength: 1
        captured_array:
          type: string
          pattern: .*
          maxLength: 10
          minLength: 1
      required:
      - captured_array
      - regex
      - subject
      title: BehaviorCaptureMatchGroupsAttributes
      additionalProperties: false
    BehaviorNoArgs:
      type: object
      description: Behaviors without arguments
      properties:
        type:
          $ref: '#/components/schemas/BehaviorNoArgsTypeEnum'
      required:
      - type
      title: BehaviorNoArgs
      additionalProperties: false
    BehaviorNoArgsTypeEnum:
      enum:
      - deny
      - no_content
      - deliver
      - finish_request_phase
      - forward_cookies
      - optimize_images
      - bypass_cache
      - enable_gzip
      - redirect_http_to_https
      type: string
      description: '* `deny` - deny

        * `no_content` - no_content

        * `deliver` - deliver

        * `finish_request_phase` - finish_request_phase

        * `forward_cookies` - forward_cookies

        * `optimize_images` - optimize_images

        * `bypass_cache` - bypass_cache

        * `enable_gzip` - enable_gzip

        * `redirect_http_to_https` - redirect_http_to_https'
      title: BehaviorNoArgsTypeEnum
      x-extensible-enum:
      - deny
      - no_content
      - deliver
      - finish_request_phase
      - forward_cookies
      - optimize_images
      - bypass_cache
      - enable_gzip
      - redirect_http_to_https
    BrowserCacheModule:
      type: object
      properties:
        behavior:
          allOf:
          - $ref: '#/components/schemas/BrowserCacheModuleBehaviorEnum'
          default: honor
        max_age:
          type: integer
          maximum: 31536000
          minimum: 0
          default: 0
          format: int64
      title: BrowserCacheModule
      additionalProperties: false
    BrowserCacheModuleBehaviorEnum:
      enum:
      - override
      - honor
      - no-cache
      type: string
      description: '* `override` - override

        * `honor` - honor

        * `no-cache` - no-cache'
      title: BrowserCacheModuleBehaviorEnum
      x-extensible-enum:
      - override
      - honor
      - no-cache
    BrowserCacheModuleRequest:
      type: object
      properties:
        behavior:
          allOf:
          - $ref: '#/components/schemas/BrowserCacheModuleBehaviorEnum'
          default: honor
        max_age:
          type: integer
          maximum: 31536000
          minimum: 0
          default: 0
          format: int64
      title: BrowserCacheModuleRequest
      additionalProperties: false
    CacheModule:
      type: object
      properties:
        enabled:
          type: boolean
          default: true
      title: CacheModule
      additionalProperties: false
    CacheModuleRequest:
      type: object
      properties:
        enabled:
          type: boolean
          default: true
      title: CacheModuleRequest
      additionalProperties: false
    CacheSetting:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        browser_cache:
          $ref: '#/components/schemas/BrowserCacheModule'
        modules:
          $ref: '#/components/schemas/CacheSettingsModules'
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - created_at
      - id
      - name
      title: CacheSetting
      additionalProperties: false
    CacheSettingRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        browser_cache:
          $ref: '#/components/schemas/BrowserCacheModuleRequest'
        modules:
          $ref: '#/components/schemas/CacheSettingsModulesRequest'
      required:
      - name
      title: CacheSettingRequest
      additionalProperties: false
    CacheSettingResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/CacheSetting'
      required:
      - data
      title: CacheSettingResponse
      additionalProperties: false
    CacheSettingsApplicationAcceleratorModule:
      type: object
      properties:
        cache_vary_by_method:
          type: array
          items:
            $ref: '#/components/schemas/CacheVaryByMethodEnum'
          maxItems: 2
        cache_vary_by_querystring:
          $ref: '#/components/schemas/CacheVaryByQuerystringModule'
        cache_vary_by_cookies:
          $ref: '#/components/schemas/CacheVaryByCookiesModule'
        cache_vary_by_devices:
          $ref: '#/components/schemas/CacheVaryByDevicesModule'
      title: CacheSettingsApplicationAcceleratorModule
      additionalProperties: false
    CacheSettingsApplicationAcceleratorModuleRequest:
      type: object
      properties:
        cache_vary_by_method:
          type: array
          items:
            $ref: '#/components/schemas/CacheVaryByMethodEnum'
          maxItems: 2
        cache_vary_by_querystring:
          $ref: '#/components/schemas/CacheVaryByQuerystringModuleRequest'
        cache_vary_by_cookies:
          $ref: '#/components/schemas/CacheVaryByCookiesModuleRequest'
        cache_vary_by_devices:
          $ref: '#/components/schemas/CacheVaryByDevicesModuleRequest'
      title: CacheSettingsApplicationAcceleratorModuleRequest
      additionalProperties: false
    CacheSettingsCacheModule:
      type: object
      properties:
        behavior:
          allOf:
          - $ref: '#/components/schemas/CacheSettingsCacheModuleBehaviorEnum'
          default: honor
        max_age:
          type: integer
          maximum: 31536000
          minimum: 0
          default: 60
          description: To use a value lower than 60s, the Application Acceleration
            module must be enabled on the Application.
          format: int64
        stale_cache:
          $ref: '#/components/schemas/StateCacheModule'
        large_file_cache:
          $ref: '#/components/schemas/LargeFileCacheModule'
        tiered_cache:
          allOf:
          - $ref: '#/components/schemas/CacheSettingsTieredCacheModule'
          nullable: true
          type: object
      title: CacheSettingsCacheModule
      additionalProperties: false
    CacheSettingsCacheModuleBehaviorEnum:
      enum:
      - honor
      - override
      type: string
      description: '* `honor` - Honor Origin Cache Settings

        * `override` - Override Cache Settings'
      title: CacheSettingsCacheModuleBehaviorEnum
      x-extensible-enum:
      - honor
      - override
    CacheSettingsCacheModuleRequest:
      type: object
      properties:
        behavior:
          allOf:
          - $ref: '#/components/schemas/CacheSettingsCacheModuleBehaviorEnum'
          default: honor
        max_age:
          type: integer
          maximum: 31536000
          minimum: 0
          default: 60
          description: To use a value lower than 60s, the Application Acceleration
            module must be enabled on the Application.
          format: int64
        stale_cache:
          $ref: '#/components/schemas/StateCacheModuleRequest'
        large_file_cache:
          $ref: '#/components/schemas/LargeFileCacheModuleRequest'
        tiered_cache:
          allOf:
          - $ref: '#/components/schemas/CacheSettingsTieredCacheModuleRequest'
          nullable: true
          type: object
      title: CacheSettingsCacheModuleRequest
      additionalProperties: false
    CacheSettingsModules:
      type: object
      properties:
        cache:
          $ref: '#/components/schemas/CacheSettingsCacheModule'
        application_accelerator:
          $ref: '#/components/schemas/CacheSettingsApplicationAcceleratorModule'
      title: CacheSettingsModules
      additionalProperties: false
    CacheSettingsModulesRequest:
      type: object
      properties:
        cache:
          $ref: '#/components/schemas/CacheSettingsCacheModuleRequest'
        application_accelerator:
          $ref: '#/components/schemas/CacheSettingsApplicationAcceleratorModuleRequest'
      title: CacheSettingsModulesRequest
      additionalProperties: false
    CacheSettingsTieredCacheModule:
      type: object
      properties:
        topology:
          $ref: '#/components/schemas/TopologyEnum'
        enabled:
          type: boolean
          default: true
      title: CacheSettingsTieredCacheModule
      additionalProperties: false
    CacheSettingsTieredCacheModuleRequest:
      type: object
      properties:
        topology:
          $ref: '#/components/schemas/TopologyEnum'
        enabled:
          type: boolean
          default: true
      title: CacheSettingsTieredCacheModuleRequest
      additionalProperties: false
    CacheVaryByCookiesModule:
      type: object
      properties:
        behavior:
          allOf:
          - $ref: '#/components/schemas/FirewallBehaviorModeEnum'
          default: ignore
        cookie_names:
          type: array
          items:
            type: string
          default: []
      title: CacheVaryByCookiesModule
      additionalProperties: false
    CacheVaryByCookiesModuleRequest:
      type: object
      properties:
        behavior:
          allOf:
          - $ref: '#/components/schemas/FirewallBehaviorModeEnum'
          default: ignore
        cookie_names:
          type: array
          items:
            type: string
          default: []
      title: CacheVaryByCookiesModuleRequest
      additionalProperties: false
    CacheVaryByDevicesModule:
      type: object
      properties:
        behavior:
          allOf:
          - $ref: '#/components/schemas/CacheVaryByDevicesModuleBehaviorEnum'
          default: ignore
        device_group:
          type: array
          items:
            type: integer
            format: int64
      title: CacheVaryByDevicesModule
      additionalProperties: false
    CacheVaryByDevicesModuleBehaviorEnum:
      enum:
      - ignore
      - allowlist
      type: string
      description: '* `ignore` - ignore

        * `allowlist` - allowlist'
      title: CacheVaryByDevicesModuleBehaviorEnum
      x-extensible-enum:
      - ignore
      - allowlist
    CacheVaryByDevicesModuleRequest:
      type: object
      properties:
        behavior:
          allOf:
          - $ref: '#/components/schemas/CacheVaryByDevicesModuleBehaviorEnum'
          default: ignore
        device_group:
          type: array
          items:
            type: integer
            format: int64
      title: CacheVaryByDevicesModuleRequest
      additionalProperties: false
    CacheVaryByMethodEnum:
      enum:
      - options
      - post
      type: string
      description: '* `options` - options

        * `post` - post'
      title: CacheVaryByMethodEnum
      x-extensible-enum:
      - options
      - post
    CacheVaryByQuerystringModule:
      type: object
      properties:
        behavior:
          allOf:
          - $ref: '#/components/schemas/FirewallBehaviorModeEnum'
          default: ignore
        fields:
          type: array
          items:
            type: string
          default: []
        sort_enabled:
          type: boolean
          default: false
      title: CacheVaryByQuerystringModule
      additionalProperties: false
    CacheVaryByQuerystringModuleRequest:
      type: object
      properties:
        behavior:
          allOf:
          - $ref: '#/components/schemas/FirewallBehaviorModeEnum'
          default: ignore
        fields:
          type: array
          items:
            type: string
          default: []
        sort_enabled:
          type: boolean
          default: false
      title: CacheVaryByQuerystringModuleRequest
      additionalProperties: false
    CiphersEnum:
      enum:
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      type: integer
      description: '* `1` - TLSv1.2_2018 - TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-SHA384:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256

        * `2` - TLSv1.2_2019 - ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA256:TLS_AES_256_GCM_SHA384:ECDHE-RSA-AES128-GCM-SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:TLS_AES_128_GCM_SHA256

        * `3` - TLSv1.3_2022 - ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256

        * `4` - TLSv1.2_2021 - ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:TLS_AES_128_GCM_SHA256

        * `5` - Legacy_v2025Q1 - TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:AES256-GCM-SHA384:AES128-GCM-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA

        * `6` - Compatible_v2025Q1 - TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:AES256-GCM-SHA384:AES128-GCM-SHA256

        * `7` - Modern_v2025Q1 - TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305

        * `8` - Legacy_v2017Q1 - AES128-CCM:AES128-CCM8:AES128-GCM-SHA256:AES128-SHA:AES128-SHA256:AES256-CCM:AES256-CCM8:AES256-GCM-SHA384:AES256-SHA:AES256-SHA256:ECDHE-ECDSA-AES128-CCM:ECDHE-ECDSA-AES128-CCM8:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-CCM:ECDHE-ECDSA-AES256-CCM8:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384:TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256'
      title: CiphersEnum
      x-extensible-enum:
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      x-enum-varnames:
      - Tlsv122018Tlsaes128gcmsha256
      - Tlsv122019Ecdheecdsachacha20poly1305
      - Tlsv132022Ecdheecdsaaes128gcmsha256
      - Tlsv122021Ecdheecdsachacha20poly1305
      - Legacyv2025q1Tlsaes256gcmsha384
      - Compatiblev2025q1Tlsaes256gcmsha384
      - Modernv2025q1Tlsaes256gcmsha384
      - Legacyv2017q1Aes128ccm
      format: int64
    CloneApplicationRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 100
      required:
      - name
      title: CloneApplicationRequest
      additionalProperties: false
    CloneFirewallRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
      required:
      - name
      title: CloneFirewallRequest
      additionalProperties: false
    CloneWAFRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
      required:
      - name
      title: CloneWAFRequest
      additionalProperties: false
    CodeEnum:
      enum:
      - default
      - '400'
      - '401'
      - '403'
      - '404'
      - '405'
      - '406'
      - '408'
      - '409'
      - '410'
      - '411'
      - '414'
      - '415'
      - '416'
      - '426'
      - '429'
      - '431'
      - '500'
      - '501'
      - '502'
      - '503'
      - '504'
      - '505'
      type: string
      description: '* `default` - default

        * `400` - Bad Request

        * `401` - Unauthorized

        * `403` - Forbidden

        * `404` - Not Found

        * `405` - Method Not Allowed

        * `406` - Not Acceptable

        * `408` - Request Timeout

        * `409` - Conflict

        * `410` - Gone

        * `411` - Length Required

        * `414` - URI Too Long

        * `415` - Unsupported Media Type

        * `416` - Range Not Satisfiable

        * `426` - Upgrade Required

        * `429` - Too Many Requests

        * `431` - Request Header Fields Too Large

        * `500` - Internal Server Error

        * `501` - Not Implemented

        * `502` - Bad Gateway

        * `503` - Service Unavailable

        * `504` - Gateway Timeout

        * `505` - HTTP Version Not Supported'
      title: CodeEnum
      x-extensible-enum:
      - default
      - '400'
      - '401'
      - '403'
      - '404'
      - '405'
      - '406'
      - '408'
      - '409'
      - '410'
      - '411'
      - '414'
      - '415'
      - '416'
      - '426'
      - '429'
      - '431'
      - '500'
      - '501'
      - '502'
      - '503'
      - '504'
      - '505'
    ConditionalEnum:
      enum:
      - if
      - or
      - and
      type: string
      description: '* `if` - if

        * `or` - or

        * `and` - and'
      title: ConditionalEnum
      x-extensible-enum:
      - if
      - or
      - and
    ConnectorHTTP:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 255
          minLength: 1
        last_editor:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 250
          minLength: 1
        last_modified:
          type: string
          format: date-time
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        active:
          type: boolean
          default: true
        product_version:
          type: string
          readOnly: true
          pattern: \d+\.\d+
          maxLength: 50
          minLength: 3
        type:
          allOf:
          - $ref: '#/components/schemas/OriginTypeEnum'
          description: 'Type of the connector


            * `http` - HTTP

            * `storage` - Storage

            * `live_ingest` - Live Ingest'
        attributes:
          $ref: '#/components/schemas/ConnectorHTTPAttributes'
      required:
      - attributes
      - created_at
      - id
      - last_editor
      - last_modified
      - name
      - product_version
      - type
      title: ConnectorHTTP
      additionalProperties: false
    ConnectorHTTPAttributes:
      type: object
      properties:
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/Address'
        connection_options:
          allOf:
          - $ref: '#/components/schemas/HTTPConnectionOptions'
        modules:
          allOf:
          - $ref: '#/components/schemas/HTTPModules'
      required:
      - addresses
      title: ConnectorHTTPAttributes
      additionalProperties: false
    ConnectorHTTPAttributesRequest:
      type: object
      properties:
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/AddressRequest'
        connection_options:
          allOf:
          - $ref: '#/components/schemas/HTTPConnectionOptionsRequest'
        modules:
          allOf:
          - $ref: '#/components/schemas/HTTPModulesRequest'
      required:
      - addresses
      title: ConnectorHTTPAttributesRequest
      additionalProperties: false
    ConnectorHTTPRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 255
        active:
          type: boolean
          default: true
        type:
          allOf:
          - $ref: '#/components/schemas/OriginTypeEnum'
          description: 'Type of the connector


            * `http` - HTTP

            * `storage` - Storage

            * `live_ingest` - Live Ingest'
        attributes:
          $ref: '#/components/schemas/ConnectorHTTPAttributesRequest'
      required:
      - attributes
      - name
      - type
      title: ConnectorHTTPRequest
      additionalProperties: false
    ConnectorStorageAttributes:
      type: object
      properties:
        bucket:
          type: string
          pattern: .*
          maxLength: 255
          minLength: 1
        prefix:
          type: string
          pattern: .*
          maxLength: 255
          minLength: 1
      required:
      - bucket
      title: ConnectorStorageAttributes
      additionalProperties: false
    ConnectorStorageAttributesRequest:
      type: object
      properties:
        bucket:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 255
        prefix:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 255
      required:
      - bucket
      title: ConnectorStorageAttributesRequest
      additionalProperties: false
    CustomPage:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 255
          minLength: 1
        last_editor:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 255
          minLength: 1
        last_modified:
          type: string
          format: date-time
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        active:
          type: boolean
          default: true
        product_version:
          type: string
          readOnly: true
          default: '1.0'
          pattern: \d+\.\d+
          maxLength: 50
          minLength: 3
        pages:
          type: array
          items:
            $ref: '#/components/schemas/PageBase'
      required:
      - created_at
      - id
      - last_editor
      - last_modified
      - name
      - pages
      - product_version
      title: CustomPage
      additionalProperties: false
    CustomPageRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 255
        active:
          type: boolean
          default: true
        pages:
          type: array
          items:
            $ref: '#/components/schemas/PageRequestBase'
      required:
      - name
      - pages
      title: CustomPageRequest
      additionalProperties: false
    CustomPageResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/CustomPage'
      required:
      - data
      title: CustomPageResponse
      additionalProperties: false
    DeviceGroup:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        user_agent:
          type: string
          description: Enter a valid regular expression pattern to identify user agents.
          pattern: .*
          maxLength: 512
          minLength: 1
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
      - created_at
      - id
      - name
      - user_agent
      title: DeviceGroup
      additionalProperties: false
    DeviceGroupRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        user_agent:
          type: string
          minLength: 1
          description: Enter a valid regular expression pattern to identify user agents.
          pattern: .*
          maxLength: 512
      required:
      - name
      - user_agent
      title: DeviceGroupRequest
      additionalProperties: false
    DeviceGroupResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/DeviceGroup'
      required:
      - data
      title: DeviceGroupResponse
      additionalProperties: false
    DnsResolutionEnum:
      enum:
      - both
      - force_ipv4
      type: string
      description: '* `both` - Both

        * `force_ipv4` - Force IPv4'
      title: DnsResolutionEnum
      x-extensible-enum:
      - both
      - force_ipv4
    Function:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        last_editor:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 250
        last_modified:
          type: string
          format: date-time
          readOnly: true
        product_version:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 50
        active:
          type: boolean
          default: true
        runtime:
          allOf:
          - $ref: '#/components/schemas/RuntimeEnum'
          default: azion_js
        execution_environment:
          allOf:
          - $ref: '#/components/schemas/ExecutionEnvironmentEnum'
          default: application
        default_args:
          type: object
          description: 'Args to be accessed by the Function.

            - default_args must be a JSON object or an array.

            - If there are no args being informed, an empty JSON object will be used.

            '
          properties:
            arg:
              type: object
          example:
            arg_01: value_01
        azion_form:
          type: object
          description: 'JSON schema to be rendered as a json args form.

            - azion_form must be a JSON schema.

            - If there are no schema being informed, an empty JSON object will be
            used.

            '
          properties:
            arg:
              type: object
          example:
            type: object
            properties:
              domain:
                type: string
                title: Domain
                description: Domain where the cookie will be valid (use '.' at the
                  beginning for subdomains)
                default: .azion.com
                pattern: ^[.]?[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.[a-zA-Z]{2,}$
              max_age:
                type: integer
                title: Max Age (seconds)
                description: Cookie lifetime in seconds
                default: 180
                minimum: 1
                maximum: 31536000
              path:
                type: string
                title: Path
                description: Path where the cookie will be valid
                default: /
                pattern: ^/
              values:
                type: array
                title: Test Variations
                description: List of A/B test variations with their respective weights
                minItems: 2
                maxItems: 10
                items:
                  type: object
                  properties:
                    value:
                      type: string
                      title: Variation Value
                      description: Unique variation identifier
                      minLength: 1
                      maxLength: 50
                      pattern: ^[a-zA-Z0-9_-]+$
                    weight:
                      type: integer
                      title: Weight
                      description: Variance weight (higher weight = higher probability)
                      minimum: 1
                      maximum: 100
                  required:
                  - value
                  - weight
                  additionalProperties: false
            required:
            - domain
            - max_age
            - path
            - values
            additionalProperties: false
        reference_count:
          type: integer
          readOnly: true
          format: int64
        version:
          type: string
          readOnly: true
          description: Installed version, which may not be the latest if the vendor
            has released updates since installation.
        vendor:
          type: string
          readOnly: true
      required:
      - id
      - last_editor
      - last_modified
      - name
      - product_version
      - reference_count
      - vendor
      - version
      title: Function
      additionalProperties: false
    FunctionModule:
      type: object
      properties:
        enabled:
          type: boolean
          default: true
      title: FunctionModule
      additionalProperties: false
    FunctionModuleRequest:
      type: object
      properties:
        enabled:
          type: boolean
          default: true
      title: FunctionModuleRequest
      additionalProperties: false
    Functions:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        last_editor:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 250
        last_modified:
          type: string
          format: date-time
          readOnly: true
        product_version:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 50
        active:
          type: boolean
          default: true
        runtime:
          allOf:
          - $ref: '#/components/schemas/RuntimeEnum'
          default: azion_js
        execution_environment:
          allOf:
          - $ref: '#/components/schemas/ExecutionEnvironmentEnum'
          default: application
        default_args:
          type: object
          description: 'Args to be accessed by the Function.

            - default_args must be a JSON object or an array.

            - If there are no args being informed, an empty JSON object will be used.

            '
          properties:
            arg:
              type: object
          example:
            arg_01: value_01
        azion_form:
          type: object
          description: 'JSON schema to be rendered as a json args form.

            - azion_form must be a JSON schema.

            - If there are no schema being informed, an empty JSON object will be
            used.

            '
          properties:
            arg:
              type: object
          example:
            type: object
            properties:
              domain:
                type: string
                title: Domain
                description: Domain where the cookie will be valid (use '.' at the
                  beginning for subdomains)
                default: .azion.com
                pattern: ^[.]?[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.[a-zA-Z]{2,}$
              max_age:
                type: integer
                title: Max Age (seconds)
                description: Cookie lifetime in seconds
                default: 180
                minimum: 1
                maximum: 31536000
              path:
                type: string
                title: Path
                description: Path where the cookie will be valid
                default: /
                pattern: ^/
              values:
                type: array
                title: Test Variations
                description: List of A/B test variations with their respective weights
                minItems: 2
                maxItems: 10
                items:
                  type: object
                  properties:
                    value:
                      type: string
                      title: Variation Value
                      description: Unique variation identifier
                      minLength: 1
                      maxLength: 50
                      pattern: ^[a-zA-Z0-9_-]+$
                    weight:
                      type: integer
                      title: Weight
                      description: Variance weight (higher weight = higher probability)
                      minimum: 1
                      maximum: 100
                  required:
                  - value
                  - weight
                  additionalProperties: false
            required:
            - domain
            - max_age
            - path
            - values
            additionalProperties: false
        reference_count:
          type: integer
          readOnly: true
          format: int64
        version:
          type: string
          readOnly: true
          description: Installed version, which may not be the latest if the vendor
            has released updates since installation.
        vendor:
          type: string
          readOnly: true
        code:
          type: string
          description: 'String containing the function code. Maximum size: 50.0MB'
          pattern: .*
          maxLength: 52428800
          minLength: 1
      required:
      - code
      - id
      - last_editor
      - last_modified
      - name
      - product_version
      - reference_count
      - vendor
      - version
      title: Functions
      additionalProperties: false
    FunctionsRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        active:
          type: boolean
          default: true
        runtime:
          allOf:
          - $ref: '#/components/schemas/RuntimeEnum'
          default: azion_js
        execution_environment:
          allOf:
          - $ref: '#/components/schemas/ExecutionEnvironmentEnum'
          default: application
        default_args:
          type: object
          description: 'Args to be accessed by the Function.

            - default_args must be a JSON object or an array.

            - If there are no args being informed, an empty JSON object will be used.

            '
          properties:
            arg:
              type: object
          example:
            arg_01: value_01
        azion_form:
          type: object
          description: 'JSON schema to be rendered as a json args form.

            - azion_form must be a JSON schema.

            - If there are no schema being informed, an empty JSON object will be
            used.

            '
          properties:
            arg:
              type: object
          example:
            type: object
            properties:
              domain:
                type: string
                title: Domain
                description: Domain where the cookie will be valid (use '.' at the
                  beginning for subdomains)
                default: .azion.com
                pattern: ^[.]?[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.[a-zA-Z]{2,}$
              max_age:
                type: integer
                title: Max Age (seconds)
                description: Cookie lifetime in seconds
                default: 180
                minimum: 1
                maximum: 31536000
              path:
                type: string
                title: Path
                description: Path where the cookie will be valid
                default: /
                pattern: ^/
              values:
                type: array
                title: Test Variations
                description: List of A/B test variations with their respective weights
                minItems: 2
                maxItems: 10
                items:
                  type: object
                  properties:
                    value:
                      type: string
                      title: Variation Value
                      description: Unique variation identifier
                      minLength: 1
                      maxLength: 50
                      pattern: ^[a-zA-Z0-9_-]+$
                    weight:
                      type: integer
                      title: Weight
                      description: Variance weight (higher weight = higher probability)
                      minimum: 1
                      maximum: 100
                  required:
                  - value
                  - weight
                  additionalProperties: false
            required:
            - domain
            - max_age
            - path
            - values
            additionalProperties: false
        code:
          type: string
          minLength: 1
          description: 'String containing the function code. Maximum size: 50.0MB'
          pattern: .*
          maxLength: 52428800
      required:
      - code
      - name
      title: FunctionsRequest
      additionalProperties: false
    EngineVersionEnum:
      enum:
      - 2021-Q3
      type: string
      description: '* `2021-Q3` - 2021-Q3'
      title: EngineVersionEnum
      x-extensible-enum:
      - 2021-Q3
    ExecutionEnvironmentEnum:
      enum:
      - firewall
      - application
      type: string
      description: '* `firewall` - Firewall

        * `application` - Application'
      title: ExecutionEnvironmentEnum
      x-extensible-enum:
      - firewall
      - application
    Firewall:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        modules:
          $ref: '#/components/schemas/FirewallModules'
        debug:
          type: boolean
          default: false
        active:
          type: boolean
          default: true
        last_editor:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 250
        last_modified:
          type: string
          format: date-time
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        product_version:
          type: string
          readOnly: true
          pattern: \d+\.\d+
          maxLength: 50
          minLength: 3
      required:
      - created_at
      - id
      - last_editor
      - last_modified
      - name
      - product_version
      title: Firewall
      additionalProperties: false
    FirewallBehavior:
      oneOf:
      - $ref: '#/components/schemas/FirewallBehaviorNoArgs'
      - $ref: '#/components/schemas/FirewallBehaviorArgs'
      - $ref: '#/components/schemas/FirewallBehaviorObjectArgs'
      discriminator:
        propertyName: type
        mapping:
          deny: '#/components/schemas/FirewallBehaviorNoArgs'
          drop: '#/components/schemas/FirewallBehaviorNoArgs'
          run_function: '#/components/schemas/FirewallBehaviorArgs'
          set_custom_response: '#/components/schemas/FirewallBehaviorObjectArgs'
          set_rate_limit: '#/components/schemas/FirewallBehaviorObjectArgs'
          set_waf: '#/components/schemas/FirewallBehaviorObjectArgs'
      title: FirewallBehavior
      additionalProperties: false
    FirewallBehaviorNoArgs:
      type: object
      description: Behaviors without arguments
      properties:
        type:
          $ref: '#/components/schemas/FirewallBehaviorNoArgsTypeEnum'
      required:
      - type
      title: FirewallBehaviorNoArgs
      additionalProperties: false
    FirewallBehaviorNoArgsRequest:
      type: object
      description: Behaviors without arguments
      properties:
        type:
          $ref: '#/components/schemas/FirewallBehaviorNoArgsTypeEnum'
      required:
      - type
      title: FirewallBehaviorNoArgsRequest
      additionalProperties: false
    FirewallBehaviorNoArgsTypeEnum:
      enum:
      - deny
      - drop
      type: string
      description: '* `deny` - deny

        * `drop` - drop'
      title: FirewallBehaviorNoArgsTypeEnum
      x-extensible-enum:
      - deny
      - drop
    FirewallBehaviorRequest:
      oneOf:
      - $ref: '#/components/schemas/FirewallBehaviorNoArgsRequest'
      - $ref: '#/components/schemas/FirewallBehaviorArgsRequest'
      - $ref: '#/components/schemas/FirewallBehaviorObjectArgsRequest'
      discriminator:
        propertyName: type
        mapping:
          deny: '#/components/schemas/FirewallBehaviorNoArgsRequest'
          drop: '#/components/schemas/FirewallBehaviorNoArgsRequest'
          run_function: '#/components/schemas/FirewallBehaviorArgsRequest'
          set_custom_response: '#/components/schemas/FirewallBehaviorObjectArgsRequest'
          set_rate_limit: '#/components/schemas/FirewallBehaviorObjectArgsRequest'
          set_waf: '#/components/schemas/FirewallBehaviorObjectArgsRequest'
      title: FirewallBehaviorRequest
      additionalProperties: false
    FirewallBehaviorRunFunctionAttributes:
      type: object
      properties:
        value:
          type: integer
          maximum: 9223372036854775807
          minimum: 1
          format: int64
      required:
      - value
      title: FirewallBehaviorRunFunctionAttributes
      additionalProperties: false
    FirewallBehaviorRunFunctionAttributesRequest:
      type: object
      properties:
        value:
          type: integer
          maximum: 9223372036854775807
          minimum: 1
          format: int64
      required:
      - value
      title: FirewallBehaviorRunFunctionAttributesRequest
      additionalProperties: false
    FirewallBehaviorSetCustomResponseAttributes:
      type: object
      properties:
        status_code:
          type: integer
          maximum: 499
          minimum: 200
          format: int64
        content_type:
          type: string
          default: ''
          pattern: .*
          maxLength: 255
          minLength: 0
        content_body:
          type: string
          default: ''
          pattern: .*
          maxLength: 500
          minLength: 0
      required:
      - status_code
      title: FirewallBehaviorSetCustomResponseAttributes
      additionalProperties: false
    FirewallBehaviorSetCustomResponseAttributesRequest:
      type: object
      properties:
        status_code:
          type: integer
          maximum: 499
          minimum: 200
          format: int64
        content_type:
          type: string
          default: ''
          pattern: .*
          maxLength: 255
          minLength: 0
        content_body:
          type: string
          default: ''
          pattern: .*
          maxLength: 500
          minLength: 0
      required:
      - status_code
      title: FirewallBehaviorSetCustomResponseAttributesRequest
      additionalProperties: false
    FirewallBehaviorSetRateLimitAttributes:
      type: object
      properties:
        type:
          allOf:
          - $ref: '#/components/schemas/FirewallBehaviorSetRateLimitAttributesTypeEnum'
          default: second
        limit_by:
          $ref: '#/components/schemas/LimitByEnum'
        average_rate_limit:
          type: integer
          maximum: 2147483647
          minimum: 1
          format: int64
        maximum_burst_size:
          type: integer
          maximum: 2147483647
          minimum: 1
          nullable: true
          format: int64
      required:
      - average_rate_limit
      - limit_by
      title: FirewallBehaviorSetRateLimitAttributes
      additionalProperties: false
    FirewallBehaviorSetRateLimitAttributesRequest:
      type: object
      properties:
        type:
          allOf:
          - $ref: '#/components/schemas/FirewallBehaviorSetRateLimitAttributesTypeEnum'
          default: second
        limit_by:
          $ref: '#/components/schemas/LimitByEnum'
        average_rate_limit:
          type: integer
          maximum: 2147483647
          minimum: 1
          format: int64
        maximum_burst_size:
          type: integer
          maximum: 2147483647
          minimum: 1
          nullable: true
          format: int64
      required:
      - average_rate_limit
      - limit_by
      title: FirewallBehaviorSetRateLimitAttributesRequest
      additionalProperties: false
    FirewallBehaviorSetRateLimitAttributesTypeEnum:
      enum:
      - second
      - minute
      type: string
      description: '* `second` - second

        * `minute` - minute'
      title: FirewallBehaviorSetRateLimitAttributesTypeEnum
      x-extensible-enum:
      - second
      - minute
    FirewallBehaviorSetWafAttributes:
      type: object
      properties:
        waf_id:
          type: integer
          maximum: 9223372036854775807
          minimum: 1
          format: int64
        mode:
          $ref: '#/components/schemas/ModeEnum'
      required:
      - mode
      - waf_id
      title: FirewallBehaviorSetWafAttributes
      additionalProperties: false
    FirewallBehaviorSetWafAttributesRequest:
      type: object
      properties:
        waf_id:
          type: integer
          maximum: 9223372036854775807
          minimum: 1
          format: int64
        mode:
          $ref: '#/components/schemas/ModeEnum'
      required:
      - mode
      - waf_id
      title: FirewallBehaviorSetWafAttributesRequest
      additionalProperties: false
    FirewallFunctionInstance:
      type: object
      description: Serializer for Firewall Function Instances
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 100
          minLength: 1
        args:
          type: object
          description: 'Args to be accessed by the Function.

            - args must be a JSON object or an array.

            - If there are no args being informed, the function default_args will
            be used.

            '
          properties:
            arg:
              type: object
          example:
            arg_01: value_01
        azion_form:
          type: object
          description: 'JSON schema to be rendered as a json args form.

            - azion_form must be a JSON schema.

            - If there are no schema being informed, an empty JSON object will be
            used.

            '
          properties:
            arg:
              type: object
          example:
            type: object
            properties:
              domain:
                type: string
                title: Domain
                description: Domain where the cookie will be valid (use '.' at the
                  beginning for subdomains)
                default: .azion.com
                pattern: ^[.]?[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.[a-zA-Z]{2,}$
              max_age:
                type: integer
                title: Max Age (seconds)
                description: Cookie lifetime in seconds
                default: 180
                minimum: 1
                maximum: 31536000
              path:
                type: string
                title: Path
                description: Path where the cookie will be valid
                default: /
                pattern: ^/
              values:
                type: array
                title: Test Variations
                description: List of A/B test variations with their respective weights
                minItems: 2
                maxItems: 10
                items:
                  type: object
                  properties:
                    value:
                      type: string
                      title: Variation Value
                      description: Unique variation identifier
                      minLength: 1
                      maxLength: 50
                      pattern: ^[a-zA-Z0-9_-]+$
                    weight:
                      type: integer
                      title: Weight
                      description: Variance weight (higher weight = higher probability)
                      minimum: 1
                      maximum: 100
                  required:
                  - value
                  - weight
                  additionalProperties: false
            required:
            - domain
            - max_age
            - path
            - values
            additionalProperties: false
        function:
          type: integer
          maximum: 9223372036854775807
          minimum: 1
          format: int64
        active:
          type: boolean
        last_editor:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 250
        last_modified:
          type: string
          format: date-time
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
      required:
      - created_at
      - function
      - id
      - last_editor
      - last_modified
      - name
      title: FirewallFunctionInstance
      additionalProperties: false
    FirewallFunctionInstanceRequest:
      type: object
      description: Serializer for Firewall Function Instances
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 100
        args:
          type: object
          description: 'Args to be accessed by the Function.

            - args must be a JSON object or an array.

            - If there are no args being informed, the function default_args will
            be used.

            '
          properties:
            arg:
              type: object
          example:
            arg_01: value_01
        azion_form:
          type: object
          description: 'JSON schema to be rendered as a json args form.

            - azion_form must be a JSON schema.

            - If there are no schema being informed, an empty JSON object will be
            used.

            '
          properties:
            arg:
              type: object
          example:
            type: object
            properties:
              domain:
                type: string
                title: Domain
                description: Domain where the cookie will be valid (use '.' at the
                  beginning for subdomains)
                default: .azion.com
                pattern: ^[.]?[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.[a-zA-Z]{2,}$
              max_age:
                type: integer
                title: Max Age (seconds)
                description: Cookie lifetime in seconds
                default: 180
                minimum: 1
                maximum: 31536000
              path:
                type: string
                title: Path
                description: Path where the cookie will be valid
                default: /
                pattern: ^/
              values:
                type: array
                title: Test Variations
                description: List of A/B test variations with their respective weights
                minItems: 2
                maxItems: 10
                items:
                  type: object
                  properties:
                    value:
                      type: string
                      title: Variation Value
                      description: Unique variation identifier
                      minLength: 1
                      maxLength: 50
                      pattern: ^[a-zA-Z0-9_-]+$
                    weight:
                      type: integer
                      title: Weight
                      description: Variance weight (higher weight = higher probability)
                      minimum: 1
                      maximum: 100
                  required:
                  - value
                  - weight
                  additionalProperties: false
            required:
            - domain
            - max_age
            - path
            - values
            additionalProperties: false
        function:
          type: integer
          maximum: 9223372036854775807
          minimum: 1
          format: int64
        active:
          type: boolean
      required:
      - function
      - name
      title: FirewallFunctionInstanceRequest
      additionalProperties: false
    FirewallFunctionInstanceResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/FirewallFunctionInstance'
      required:
      - data
      title: FirewallFunctionInstanceResponse
      additionalProperties: false
    FirewallModule:
      type: object
      description: 'Serializer for individual modules in Firewall.


        Handles serialization and deserialization of module settings with an enabled
        flag.'
      properties:
        enabled:
          type: boolean
          default: true
      title: FirewallModule
      additionalProperties: false
    FirewallModuleRequest:
      type: object
      description: 'Serializer for individual modules in Firewall.


        Handles serialization and deserialization of module settings with an enabled
        flag.'
      properties:
        enabled:
          type: boolean
          default: true
      title: FirewallModuleRequest
      additionalProperties: false
    FirewallModules:
      type: object
      properties:
        ddos_protection:
          allOf:
          - $ref: '#/components/schemas/FirewallModule'
          readOnly: true
        functions:
          allOf:
          - $ref: '#/components/schemas/FirewallModule'
        network_protection:
          allOf:
          - $ref: '#/components/schemas/FirewallModule'
        waf:
          allOf:
          - $ref: '#/components/schemas/FirewallModule'
      required:
      - ddos_protection
      title: FirewallModules
      additionalProperties: false
    FirewallModulesRequest:
      type: object
      properties:
        functions:
          allOf:
          - $ref: '#/components/schemas/FirewallModuleRequest'
        network_protection:
          allOf:
          - $ref: '#/components/schemas/FirewallModuleRequest'
        waf:
          allOf:
          - $ref: '#/components/schemas/FirewallModuleRequest'
      title: FirewallModulesRequest
      additionalProperties: false
    FirewallRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        modules:
          $ref: '#/components/schemas/FirewallModulesRequest'
        debug:
          type: boolean
          default: false
        active:
          type: boolean
          default: true
      required:
      - name
      title: FirewallRequest
      additionalProperties: false
    FirewallResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/Firewall'
      required:
      - data
      title: FirewallResponse
      additionalProperties: false
    FirewallRule:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        last_editor:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 255
        last_modified:
          type: string
          format: date-time
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        active:
          type: boolean
          default: true
        criteria:
          type: array
          items:
            type: array
            items:
              $ref: '#/components/schemas/FirewallCriterionField'
            maxItems: 10
            minItems: 1
          maxItems: 5
          minItems: 1
        behaviors:
          type: array
          items:
            $ref: '#/components/schemas/FirewallBehavior'
          maxItems: 10
          minItems: 1
        description:
          type: string
          pattern: .*
          maxLength: 1000
          minLength: 0
        order:
          type: integer
          maximum: 199
          minimum: 0
          readOnly: true
          format: int64
      required:
      - behaviors
      - created_at
      - criteria
      - id
      - last_editor
      - last_modified
      - name
      - order
      title: FirewallRule
      additionalProperties: false
    FirewallRuleEngineOrderRequest:
      type: object
      properties:
        order:
          type: array
          items:
            type: integer
            maximum: 9223372036854775807
            minimum: 1
            format: int64
      required:
      - order
      title: FirewallRuleEngineOrderRequest
      additionalProperties: false
    FirewallRuleRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        active:
          type: boolean
          default: true
        criteria:
          type: array
          items:
            type: array
            items:
              $ref: '#/components/schemas/FirewallCriterionFieldRequest'
            maxItems: 10
            minItems: 1
          maxItems: 5
          minItems: 1
        behaviors:
          type: array
          items:
            $ref: '#/components/schemas/FirewallBehaviorRequest'
          maxItems: 10
          minItems: 1
        description:
          type: string
          pattern: .*
          maxLength: 1000
          minLength: 0
      required:
      - behaviors
      - criteria
      - name
      title: FirewallRuleRequest
      additionalProperties: false
    FirewallRuleResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/FirewallRule'
      required:
      - data
      title: FirewallRuleResponse
      additionalProperties: false
    FunctionInstance:
      type: object
      description: Serializer for Application Function Instances
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 100
          minLength: 1
        args:
          type: object
          description: 'Args to be accessed by the Function.

            - args must be a JSON object or an array.

            - If there are no args being informed, the function default_args will
            be used.

            '
          properties:
            arg:
              type: object
          example:
            arg_01: value_01
        azion_form:
          type: object
          description: 'JSON schema to be rendered as a json args form.

            - azion_form must be a JSON schema.

            - If there are no schema being informed, an empty JSON object will be
            used.

            '
          properties:
            arg:
              type: object
          example:
            type: object
            properties:
              domain:
                type: string
                title: Domain
                description: Domain where the cookie will be valid (use '.' at the
                  beginning for subdomains)
                default: .azion.com
                pattern: ^[.]?[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.[a-zA-Z]{2,}$
              max_age:
                type: integer
                title: Max Age (seconds)
                description: Cookie lifetime in seconds
                default: 180
                minimum: 1
                maximum: 31536000
              path:
                type: string
                title: Path
                description: Path where the cookie will be valid
                default: /
                pattern: ^/
              values:
                type: array
                title: Test Variations
                description: List of A/B test variations with their respective weights
                minItems: 2
                maxItems: 10
                items:
                  type: object
                  properties:
                    value:
                      type: string
                      title: Variation Value
                      description: Unique variation identifier
                      minLength: 1
                      maxLength: 50
                      pattern: ^[a-zA-Z0-9_-]+$
                    weight:
                      type: integer
                      title: Weight
                      description: Variance weight (higher weight = higher probability)
                      minimum: 1
                      maximum: 100
                  required:
                  - value
                  - weight
                  additionalProperties: false
            required:
            - domain
            - max_age
            - path
            - values
            additionalProperties: false
        function:
          type: integer
          maximum: 9223372036854775807
          minimum: 1
          format: int64
        active:
          type: boolean
        last_editor:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 250
        last_modified:
          type: string
          format: date-time
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
      required:
      - created_at
      - function
      - id
      - last_editor
      - last_modified
      - name
      title: FunctionInstance
      additionalProperties: false
    FunctionInstanceRequest:
      type: object
      description: Serializer for Application Function Instances
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 100
        args:
          type: object
          description: 'Args to be accessed by the Function.

            - args must be a JSON object or an array.

            - If there are no args being informed, the function default_args will
            be used.

            '
          properties:
            arg:
              type: object
          example:
            arg_01: value_01
        azion_form:
          type: object
          description: 'JSON schema to be rendered as a json args form.

            - azion_form must be a JSON schema.

            - If there are no schema being informed, an empty JSON object will be
            used.

            '
          properties:
            arg:
              type: object
          example:
            type: object
            properties:
              domain:
                type: string
                title: Domain
                description: Domain where the cookie will be valid (use '.' at the
                  beginning for subdomains)
                default: .azion.com
                pattern: ^[.]?[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.[a-zA-Z]{2,}$
              max_age:
                type: integer
                title: Max Age (seconds)
                description: Cookie lifetime in seconds
                default: 180
                minimum: 1
                maximum: 31536000
              path:
                type: string
                title: Path
                description: Path where the cookie will be valid
                default: /
                pattern: ^/
              values:
                type: array
                title: Test Variations
                description: List of A/B test variations with their respective weights
                minItems: 2
                maxItems: 10
                items:
                  type: object
                  properties:
                    value:
                      type: string
                      title: Variation Value
                      description: Unique variation identifier
                      minLength: 1
                      maxLength: 50
                      pattern: ^[a-zA-Z0-9_-]+$
                    weight:
                      type: integer
                      title: Weight
                      description: Variance weight (higher weight = higher probability)
                      minimum: 1
                      maximum: 100
                  required:
                  - value
                  - weight
                  additionalProperties: false
            required:
            - domain
            - max_age
            - path
            - values
            additionalProperties: false
        function:
          type: integer
          maximum: 9223372036854775807
          minimum: 1
          format: int64
        active:
          type: boolean
      required:
      - function
      - name
      title: FunctionInstanceRequest
      additionalProperties: false
    FunctionInstanceResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/FunctionInstance'
      required:
      - data
      title: FunctionInstanceResponse
      additionalProperties: false
    FunctionResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/Functions'
      required:
      - data
      title: FunctionResponse
      additionalProperties: false
    HMAC:
      type: object
      properties:
        enabled:
          type: boolean
        config:
          allOf:
          - $ref: '#/components/schemas/AWS4HMAC'
          nullable: true
          type: object
      required:
      - enabled
      title: HMAC
      additionalProperties: false
    HMACRequest:
      type: object
      properties:
        enabled:
          type: boolean
        config:
          allOf:
          - $ref: '#/components/schemas/AWS4HMACRequest'
          nullable: true
          type: object
      required:
      - enabled
      title: HMACRequest
      additionalProperties: false
    HTTPConnectionOptions:
      type: object
      properties:
        dns_resolution:
          allOf:
          - $ref: '#/components/schemas/DnsResolutionEnum'
          default: both
          description: 'DNS resolution policy: force IPv4 or both (IPv4 and IPv6)
            when connecting.


            * `both` - Both

            * `force_ipv4` - Force IPv4'
        transport_policy:
          allOf:
          - $ref: '#/components/schemas/TransportPolicyEnum'
          default: preserve
          description: 'Transport protocol policy: preserve current scheme, force
            HTTP, or force HTTPS.


            * `preserve` - Preserve

            * `force_https` - Force HTTPS

            * `force_http` - Force HTTP'
        http_version_policy:
          allOf:
          - $ref: '#/components/schemas/HttpVersionPolicyEnum'
          default: http1_1
          description: 'Defines the HTTP version preference for outbound connections
            (e.g., HTTP/1.1).


            * `http1_1` - HTTP/1.1'
        host:
          type: string
          default: ${host}
          description: Optional custom host used to override the default target hostname
            during connection.
          pattern: .*
          maxLength: 255
          minLength: 1
        path_prefix:
          type: string
          default: ''
          description: Optional prefix to add to all request paths (e.g., '/v1').
          pattern: .*
          maxLength: 255
          minLength: 0
        following_redirect:
          type: boolean
          default: false
          description: If true, automatically follows HTTP redirects from the target
            server.
        real_ip_header:
          type: string
          default: X-Real-IP
          description: Header name used to forward the original client IP address.
          pattern: .*
          maxLength: 100
          minLength: 1
        real_port_header:
          type: string
          default: X-Real-PORT
          description: Header name used to forward the original client port.
          pattern: .*
          maxLength: 100
          minLength: 1
      title: HTTPConnectionOptions
      additionalProperties: false
    HTTPConnectionOptionsRequest:
      type: object
      properties:
        dns_resolution:
          allOf:
          - $ref: '#/components/schemas/DnsResolutionEnum'
          default: both
          description: 'DNS resolution policy: force IPv4 or both (IPv4 and IPv6)
            when connecting.


            * `both` - Both

            * `force_ipv4` - Force IPv4'
        transport_policy:
          allOf:
          - $ref: '#/components/schemas/TransportPolicyEnum'
          default: preserve
          description: 'Transport protocol policy: preserve current scheme, force
            HTTP, or force HTTPS.


            * `preserve` - Preserve

            * `force_https` - Force HTTPS

            * `force_http` - Force HTTP'
        http_version_policy:
          allOf:
          - $ref: '#/components/schemas/HttpVersionPolicyEnum'
          default: http1_1
          description: 'Defines the HTTP version preference for outbound connections
            (e.g., HTTP/1.1).


            * `http1_1` - HTTP/1.1'
        host:
          type: string
          minLength: 1
          default: ${host}
          description: Optional custom host used to override the default target hostname
            during connection.
          pattern: .*
          maxLength: 255
        path_prefix:
          type: string
          default: ''
          description: Optional prefix to add to all request paths (e.g., '/v1').
          pattern: .*
          maxLength: 255
          minLength: 0
        following_redirect:
          type: boolean
          default: false
          description: If true, automatically follows HTTP redirects from the target
            server.
        real_ip_header:
          type: string
          minLength: 1
          default: X-Real-IP
          description: Header name used to forward the original client IP address.
          pattern: .*
          maxLength: 100
        real_port_header:
          type: string
          minLength: 1
          default: X-Real-PORT
          description: Header name used to forward the original client port.
          pattern: .*
          maxLength: 100
      title: HTTPConnectionOptionsRequest
      additionalProperties: false
    HTTPModules:
      type: object
      properties:
        load_balancer:
          allOf:
          - $ref: '#/components/schemas/LoadBalancerModule'
        origin_shield:
          allOf:
          - $ref: '#/components/schemas/OriginShieldModule'
      title: HTTPModules
      additionalProperties: false
    HTTPModulesRequest:
      type: object
      properties:
        load_balancer:
          allOf:
          - $ref: '#/components/schemas/LoadBalancerModuleRequest'
        origin_shield:
          allOf:
          - $ref: '#/components/schemas/OriginShieldModuleRequest'
      title: HTTPModulesRequest
      additionalProperties: false
    HttpProtocol:
      type: object
      properties:
        versions:
          type: array
          items:
            type: string
            pattern: .*
            maxLength: 30
          maxItems: 3
        http_ports:
          type: array
          items:
            type: integer
            format: int64
          maxItems: 4
          minItems: 1
        https_ports:
          type: array
          items:
            type: integer
            format: int64
          nullable: true
          maxItems: 12
          minItems: 1
        quic_ports:
          type: array
          items:
            type: integer
            format: int64
          nullable: true
          maxItems: 12
      title: HttpProtocol
      additionalProperties: false
    HttpProtocolRequest:
      type: object
      properties:
        versions:
          type: array
          items:
            type: string
            minLength: 1
            pattern: .*
            maxLength: 30
          maxItems: 3
        http_ports:
          type: array
          items:
            type: integer
            format: int64
          maxItems: 4
          minItems: 1
        https_ports:
          type: array
          items:
            type: integer
            format: int64
          nullable: true
          maxItems: 12
          minItems: 1
        quic_ports:
          type: array
          items:
            type: integer
            format: int64
          nullable: true
          maxItems: 12
      title: HttpProtocolRequest
      additionalProperties: false
    HttpVersionPolicyEnum:
      enum:
      - http1_1
      type: string
      description: '* `http1_1` - HTTP/1.1'
      title: HttpVersionPolicyEnum
      x-extensible-enum:
      - http1_1
    ImageProcessorModule:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
      title: ImageProcessorModule
      additionalProperties: false
    ImageProcessorModuleRequest:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
      title: ImageProcessorModuleRequest
      additionalProperties: false
    InfrastructureEnum:
      enum:
      - 1
      - 2
      type: integer
      description: '* `1` - Production Infrastructure (All Locations)

        * `2` - Staging Infrastructure'
      title: InfrastructureEnum
      x-extensible-enum:
      - 1
      - 2
      x-enum-varnames:
      - ProductionInfrastructure
      - StagingInfrastructure
      format: int64
    LargeFileCacheModule:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        offset:
          type: integer
          maximum: 1024
          minimum: 1024
          default: 1024
          format: int64
      title: LargeFileCacheModule
      additionalProperties: false
    LargeFileCacheModuleRequest:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        offset:
          type: integer
          maximum: 1024
          minimum: 1024
          default: 1024
          format: int64
      title: LargeFileCacheModuleRequest
      additionalProperties: false
    LayerEnum:
      enum:
      - cache
      - tiered_cache
      type: string
      description: '* `cache` - Cache

        * `tiered_cache` - Tiered Cache'
      title: LayerEnum
      x-extensible-enum:
      - cache
      - tiered_cache
    LimitByEnum:
      enum:
      - client_ip
      - global
      type: string
      description: '* `client_ip` - client_ip

        * `global` - global'
      title: LimitByEnum
      x-extensible-enum:
      - client_ip
      - global
    LoadBalancerModule:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        config:
          allOf:
          - $ref: '#/components/schemas/LoadBalancerModuleConfig'
          nullable: true
          type: object
      title: LoadBalancerModule
      additionalProperties: false
    LoadBalancerModuleConfig:
      type: object
      properties:
        method:
          allOf:
          - $ref: '#/components/schemas/MethodEnum'
          default: round_robin
          description: 'Load balancing method to use (e.g., round-robin, least_conn).


            * `round_robin` - Round Robin

            * `least_conn` - Least Connections

            * `ip_hash` - IP Hash'
        max_retries:
          type: integer
          maximum: 20
          minimum: 0
          default: 0
          description: Maximum number of retry attempts on connection failure.
          format: int64
        connection_timeout:
          type: integer
          maximum: 300
          minimum: 1
          default: 60
          description: Maximum time (in seconds) to wait for a connection to be established.
          format: int64
        read_write_timeout:
          type: integer
          maximum: 600
          minimum: 1
          default: 120
          description: Maximum time (in seconds) to wait for data read/write after
            connection.
          format: int64
      title: LoadBalancerModuleConfig
      additionalProperties: false
    LoadBalancerModuleConfigRequest:
      type: object
      properties:
        method:
          allOf:
          - $ref: '#/components/schemas/MethodEnum'
          default: round_robin
          description: 'Load balancing method to use (e.g., round-robin, least_conn).


            * `round_robin` - Round Robin

            * `least_conn` - Least Connections

            * `ip_hash` - IP Hash'
        max_retries:
          type: integer
          maximum: 20
          minimum: 0
          default: 0
          description: Maximum number of retry attempts on connection failure.
          format: int64
        connection_timeout:
          type: integer
          maximum: 300
          minimum: 1
          default: 60
          description: Maximum time (in seconds) to wait for a connection to be established.
          format: int64
        read_write_timeout:
          type: integer
          maximum: 600
          minimum: 1
          default: 120
          description: Maximum time (in seconds) to wait for data read/write after
            connection.
          format: int64
      title: LoadBalancerModuleConfigRequest
      additionalProperties: false
    LoadBalancerModuleRequest:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        config:
          allOf:
          - $ref: '#/components/schemas/LoadBalancerModuleConfigRequest'
          nullable: true
          type: object
      title: LoadBalancerModuleRequest
      additionalProperties: false
    MTLS:
      type: object
      properties:
        enabled:
          type: boolean
          nullable: true
          default: false
        config:
          allOf:
          - $ref: '#/components/schemas/MTLSConfig'
          nullable: true
          type: object
      title: MTLS
      additionalProperties: false
    MTLSConfig:
      type: object
      properties:
        certificate:
          type: integer
          minimum: 1
          nullable: true
          format: int64
        crl:
          type: array
          items:
            type: integer
            minimum: 1
            format: int64
          nullable: true
          maxItems: 100
        verification:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/VerificationEnum'
          type: object
      title: MTLSConfig
      additionalProperties: false
    MTLSConfigRequest:
      type: object
      properties:
        certificate:
          type: integer
          minimum: 1
          nullable: true
          format: int64
        crl:
          type: array
          items:
            type: integer
            minimum: 1
            format: int64
          nullable: true
          maxItems: 100
        verification:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/VerificationEnum'
          type: object
      title: MTLSConfigRequest
      additionalProperties: false
    MTLSRequest:
      type: object
      properties:
        enabled:
          type: boolean
          nullable: true
          default: false
        config:
          allOf:
          - $ref: '#/components/schemas/MTLSConfigRequest'
          nullable: true
          type: object
      title: MTLSRequest
      additionalProperties: false
    MethodEnum:
      enum:
      - round_robin
      - least_conn
      - ip_hash
      type: string
      description: '* `round_robin` - Round Robin

        * `least_conn` - Least Connections

        * `ip_hash` - IP Hash'
      title: MethodEnum
      x-extensible-enum:
      - round_robin
      - least_conn
      - ip_hash
    MinimumVersionEnum:
      enum:
      - tls_1_0
      - tls_1_1
      - tls_1_2
      - tls_1_3
      type: string
      description: '* `` - None

        * `tls_1_0` - TLS 1.0

        * `tls_1_1` - TLS 1.1

        * `tls_1_2` - TLS 1.2

        * `tls_1_3` - TLS 1.3'
      title: MinimumVersionEnum
      x-extensible-enum:
      - tls_1_0
      - tls_1_1
      - tls_1_2
      - tls_1_3
    ModeEnum:
      enum:
      - logging
      - blocking
      type: string
      description: '* `logging` - logging

        * `blocking` - blocking'
      title: ModeEnum
      x-extensible-enum:
      - logging
      - blocking
    NetworkList:
      type: object
      description: "A Network List item can be one of the following formats:\n\n\n\
        1. IP Addresses (IPv4/IPv6):\n\n    - Simple IPv4: 192.168.0.1\n\n    - IPv4\
        \ with CIDR: 192.168.0.1/24\n\n    - Simple IPv6: 2001:db8:3333:4444:5555:6666:7777:8888\n\
        \n    - IPv6 with CIDR: 2001:db8::/32\n\n    - IP with expiration date: 192.168.0.1\
        \ --LT2025-05-29T12:25:23Z\n\n        (The expiration date format is --LT\
        \ followed by ISO8601 date in UTC timezone)\n\n\n2. Country Codes:\n\n   \
        \ - Two-character uppercase alphanumeric country code (ISO 3166-1 alpha-2)\n\
        \n    - Examples: BR, US, DE, JP\n\n\n3. Autonomous System Numbers (ASN):\n\
        \n    - Number composed of digits only\n\n    - Examples: 1234, 5678, 13335"
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        type:
          $ref: '#/components/schemas/NetworkListTypeEnum'
        items:
          type: array
          items:
            type: string
            pattern: .*
            maxLength: 250
            minLength: 0
          maxItems: 20000
          minItems: 1
        last_editor:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 250
        last_modified:
          type: string
          format: date-time
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        active:
          type: boolean
          default: true
      required:
      - created_at
      - id
      - items
      - last_editor
      - last_modified
      - name
      - type
      title: NetworkList
      additionalProperties: false
    NetworkListRequest:
      type: object
      description: "A Network List item can be one of the following formats:\n\n\n\
        1. IP Addresses (IPv4/IPv6):\n\n    - Simple IPv4: 192.168.0.1\n\n    - IPv4\
        \ with CIDR: 192.168.0.1/24\n\n    - Simple IPv6: 2001:db8:3333:4444:5555:6666:7777:8888\n\
        \n    - IPv6 with CIDR: 2001:db8::/32\n\n    - IP with expiration date: 192.168.0.1\
        \ --LT2025-05-29T12:25:23Z\n\n        (The expiration date format is --LT\
        \ followed by ISO8601 date in UTC timezone)\n\n\n2. Country Codes:\n\n   \
        \ - Two-character uppercase alphanumeric country code (ISO 3166-1 alpha-2)\n\
        \n    - Examples: BR, US, DE, JP\n\n\n3. Autonomous System Numbers (ASN):\n\
        \n    - Number composed of digits only\n\n    - Examples: 1234, 5678, 13335"
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        type:
          $ref: '#/components/schemas/NetworkListTypeEnum'
        items:
          type: array
          items:
            type: string
            minLength: 1
            pattern: .*
            maxLength: 250
          maxItems: 20000
          minItems: 1
        active:
          type: boolean
          default: true
      required:
      - items
      - name
      - type
      title: NetworkListRequest
      additionalProperties: false
    NetworkListResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/NetworkList'
      required:
      - data
      title: NetworkListResponse
      additionalProperties: false
    NetworkListSummary:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        type:
          $ref: '#/components/schemas/NetworkListTypeEnum'
        last_editor:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 250
        last_modified:
          type: string
          format: date-time
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        active:
          type: boolean
          default: true
      required:
      - created_at
      - id
      - last_editor
      - last_modified
      - name
      - type
      title: NetworkListSummary
      additionalProperties: false
    OriginIPACL:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
      title: OriginIPACL
      additionalProperties: false
    OriginIPACLRequest:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
      title: OriginIPACLRequest
      additionalProperties: false
    OriginShieldConfig:
      type: object
      properties:
        origin_ip_acl:
          $ref: '#/components/schemas/OriginIPACL'
        hmac:
          $ref: '#/components/schemas/HMAC'
      title: OriginShieldConfig
      additionalProperties: false
    OriginShieldConfigRequest:
      type: object
      properties:
        origin_ip_acl:
          $ref: '#/components/schemas/OriginIPACLRequest'
        hmac:
          $ref: '#/components/schemas/HMACRequest'
      title: OriginShieldConfigRequest
      additionalProperties: false
    OriginShieldModule:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        config:
          allOf:
          - $ref: '#/components/schemas/OriginShieldConfig'
          nullable: true
          type: object
      title: OriginShieldModule
      additionalProperties: false
    OriginShieldModuleRequest:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
        config:
          allOf:
          - $ref: '#/components/schemas/OriginShieldConfigRequest'
          nullable: true
          type: object
      title: OriginShieldModuleRequest
      additionalProperties: false
    PageConnector:
      type: object
      properties:
        type:
          type: string
          default: page_connector
          pattern: .*
          maxLength: 255
          minLength: 1
        attributes:
          $ref: '#/components/schemas/PageConnectorAttributes'
      required:
      - attributes
      - type
      title: PageConnector
      additionalProperties: false
    PageConnectorAttributes:
      type: object
      properties:
        connector:
          type: integer
          minimum: 1
          maximum: 2147483647
          format: int64
        ttl:
          type: integer
          maximum: 31536000
          minimum: 0
          default: 0
          format: int64
        uri:
          type: string
          nullable: true
          pattern: .*
          maxLength: 250
          minLength: 1
        custom_status_code:
          type: integer
          maximum: 599
          minimum: 100
          nullable: true
          format: int64
      required:
      - connector
      title: PageConnectorAttributes
      additionalProperties: false
    PageConnectorAttributesRequest:
      type: object
      properties:
        connector:
          type: integer
          minimum: 1
          maximum: 2147483647
          format: int64
        ttl:
          type: integer
          maximum: 31536000
          minimum: 0
          default: 0
          format: int64
        uri:
          type: string
          nullable: true
          minLength: 1
          pattern: .*
          maxLength: 250
        custom_status_code:
          type: integer
          maximum: 599
          minimum: 100
          nullable: true
          format: int64
      required:
      - connector
      title: PageConnectorAttributesRequest
      additionalProperties: false
    PageConnectorRequest:
      type: object
      properties:
        type:
          type: string
          minLength: 1
          default: page_connector
          pattern: .*
          maxLength: 255
        attributes:
          $ref: '#/components/schemas/PageConnectorAttributesRequest'
      required:
      - attributes
      - type
      title: PageConnectorRequest
      additionalProperties: false
    PaginatedApplicationList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/Application'
      title: PaginatedApplicationList
      additionalProperties: false
    PaginatedCacheSettingList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/CacheSetting'
      title: PaginatedCacheSettingList
      additionalProperties: false
    PaginatedCustomPageList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/CustomPage'
      title: PaginatedCustomPageList
      additionalProperties: false
    PaginatedDeviceGroupList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/DeviceGroup'
      title: PaginatedDeviceGroupList
      additionalProperties: false
    PaginatedEdgeFunctionList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/Function'
      title: PaginatedEdgeFunctionList
      additionalProperties: false
    PaginatedFirewallFunctionInstanceList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/FirewallFunctionInstance'
      title: PaginatedFirewallFunctionInstanceList
      additionalProperties: false
    PaginatedFirewallList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/Firewall'
      title: PaginatedFirewallList
      additionalProperties: false
    PaginatedFirewallRuleList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/FirewallRule'
      title: PaginatedFirewallRuleList
      additionalProperties: false
    PaginatedFunctionInstanceList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/FunctionInstance'
      title: PaginatedFunctionInstanceList
      additionalProperties: false
    PaginatedNetworkListSummaryList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/NetworkListSummary'
      title: PaginatedNetworkListSummaryList
      additionalProperties: false
    PaginatedRequestPhaseRuleList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/RequestPhaseRule'
      title: PaginatedRequestPhaseRuleList
      additionalProperties: false
    PaginatedResponsePhaseRuleList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/ResponsePhaseRule'
      title: PaginatedResponsePhaseRuleList
      additionalProperties: false
    PaginatedWAFList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/WAF'
      title: PaginatedWAFList
      additionalProperties: false
    PaginatedWAFRuleList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/WAFRule'
      title: PaginatedWAFRuleList
      additionalProperties: false
    PaginatedWorkloadList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/Workload'
      title: PaginatedWorkloadList
      additionalProperties: false
    PatchedApplicationRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 100
        modules:
          $ref: '#/components/schemas/ApplicationModulesRequest'
        active:
          type: boolean
          default: true
        debug:
          type: boolean
          default: false
      title: PatchedApplicationRequest
      additionalProperties: false
    PatchedCacheSettingRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        browser_cache:
          $ref: '#/components/schemas/BrowserCacheModuleRequest'
        modules:
          $ref: '#/components/schemas/CacheSettingsModulesRequest'
      title: PatchedCacheSettingRequest
      additionalProperties: false
    PatchedConnectorHTTPRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 255
        active:
          type: boolean
          default: true
        type:
          allOf:
          - $ref: '#/components/schemas/OriginTypeEnum'
          description: 'Type of the connector


            * `http` - HTTP

            * `storage` - Storage

            * `live_ingest` - Live Ingest'
        attributes:
          $ref: '#/components/schemas/ConnectorHTTPAttributesRequest'
      title: PatchedConnectorHTTPRequest
      additionalProperties: false
      required:
      - type
    PatchedCustomPageRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 255
        active:
          type: boolean
          default: true
        pages:
          type: array
          items:
            $ref: '#/components/schemas/PageRequestBase'
      title: PatchedCustomPageRequest
      additionalProperties: false
    PatchedDeviceGroupRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        user_agent:
          type: string
          minLength: 1
          description: Enter a valid regular expression pattern to identify user agents.
          pattern: .*
          maxLength: 512
      title: PatchedDeviceGroupRequest
      additionalProperties: false
    PatchedFunctionsRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        active:
          type: boolean
          default: true
        runtime:
          allOf:
          - $ref: '#/components/schemas/RuntimeEnum'
          default: azion_js
        execution_environment:
          allOf:
          - $ref: '#/components/schemas/ExecutionEnvironmentEnum'
          default: application
        default_args:
          type: object
          description: 'Args to be accessed by the Function.

            - default_args must be a JSON object or an array.

            - If there are no args being informed, an empty JSON object will be used.

            '
          properties:
            arg:
              type: object
          example:
            arg_01: value_01
        azion_form:
          type: object
          description: 'JSON schema to be rendered as a json args form.

            - azion_form must be a JSON schema.

            - If there are no schema being informed, an empty JSON object will be
            used.

            '
          properties:
            arg:
              type: object
          example:
            type: object
            properties:
              domain:
                type: string
                title: Domain
                description: Domain where the cookie will be valid (use '.' at the
                  beginning for subdomains)
                default: .azion.com
                pattern: ^[.]?[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.[a-zA-Z]{2,}$
              max_age:
                type: integer
                title: Max Age (seconds)
                description: Cookie lifetime in seconds
                default: 180
                minimum: 1
                maximum: 31536000
              path:
                type: string
                title: Path
                description: Path where the cookie will be valid
                default: /
                pattern: ^/
              values:
                type: array
                title: Test Variations
                description: List of A/B test variations with their respective weights
                minItems: 2
                maxItems: 10
                items:
                  type: object
                  properties:
                    value:
                      type: string
                      title: Variation Value
                      description: Unique variation identifier
                      minLength: 1
                      maxLength: 50
                      pattern: ^[a-zA-Z0-9_-]+$
                    weight:
                      type: integer
                      title: Weight
                      description: Variance weight (higher weight = higher probability)
                      minimum: 1
                      maximum: 100
                  required:
                  - value
                  - weight
                  additionalProperties: false
            required:
            - domain
            - max_age
            - path
            - values
            additionalProperties: false
        code:
          type: string
          minLength: 1
          description: 'String containing the function code. Maximum size: 50.0MB'
          pattern: .*
          maxLength: 52428800
      title: PatchedFunctionsRequest
      additionalProperties: false
    PatchedFirewallFunctionInstanceRequest:
      type: object
      description: Serializer for Firewall Function Instances
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 100
        args:
          type: object
          description: 'Args to be accessed by the Function.

            - args must be a JSON object or an array.

            - If there are no args being informed, the function default_args will
            be used.

            '
          properties:
            arg:
              type: object
          example:
            arg_01: value_01
        azion_form:
          type: object
          description: 'JSON schema to be rendered as a json args form.

            - azion_form must be a JSON schema.

            - If there are no schema being informed, an empty JSON object will be
            used.

            '
          properties:
            arg:
              type: object
          example:
            type: object
            properties:
              domain:
                type: string
                title: Domain
                description: Domain where the cookie will be valid (use '.' at the
                  beginning for subdomains)
                default: .azion.com
                pattern: ^[.]?[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.[a-zA-Z]{2,}$
              max_age:
                type: integer
                title: Max Age (seconds)
                description: Cookie lifetime in seconds
                default: 180
                minimum: 1
                maximum: 31536000
              path:
                type: string
                title: Path
                description: Path where the cookie will be valid
                default: /
                pattern: ^/
              values:
                type: array
                title: Test Variations
                description: List of A/B test variations with their respective weights
                minItems: 2
                maxItems: 10
                items:
                  type: object
                  properties:
                    value:
                      type: string
                      title: Variation Value
                      description: Unique variation identifier
                      minLength: 1
                      maxLength: 50
                      pattern: ^[a-zA-Z0-9_-]+$
                    weight:
                      type: integer
                      title: Weight
                      description: Variance weight (higher weight = higher probability)
                      minimum: 1
                      maximum: 100
                  required:
                  - value
                  - weight
                  additionalProperties: false
            required:
            - domain
            - max_age
            - path
            - values
            additionalProperties: false
        function:
          type: integer
          maximum: 9223372036854775807
          minimum: 1
          format: int64
        active:
          type: boolean
      title: PatchedFirewallFunctionInstanceRequest
      additionalProperties: false
    PatchedFirewallRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        modules:
          $ref: '#/components/schemas/FirewallModulesRequest'
        debug:
          type: boolean
          default: false
        active:
          type: boolean
          default: true
      title: PatchedFirewallRequest
      additionalProperties: false
    PatchedFirewallRuleRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        active:
          type: boolean
          default: true
        criteria:
          type: array
          items:
            type: array
            items:
              $ref: '#/components/schemas/FirewallCriterionFieldRequest'
            maxItems: 10
            minItems: 1
          maxItems: 5
          minItems: 1
        behaviors:
          type: array
          items:
            $ref: '#/components/schemas/FirewallBehaviorRequest'
          maxItems: 10
          minItems: 1
        description:
          type: string
          pattern: .*
          maxLength: 1000
          minLength: 0
      title: PatchedFirewallRuleRequest
      additionalProperties: false
    PatchedFunctionInstanceRequest:
      type: object
      description: Serializer for Application Function Instances
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 100
        args:
          type: object
          description: 'Args to be accessed by the Function.

            - args must be a JSON object or an array.

            - If there are no args being informed, the function default_args will
            be used.

            '
          properties:
            arg:
              type: object
          example:
            arg_01: value_01
        azion_form:
          type: object
          description: 'JSON schema to be rendered as a json args form.

            - azion_form must be a JSON schema.

            - If there are no schema being informed, an empty JSON object will be
            used.

            '
          properties:
            arg:
              type: object
          example:
            type: object
            properties:
              domain:
                type: string
                title: Domain
                description: Domain where the cookie will be valid (use '.' at the
                  beginning for subdomains)
                default: .azion.com
                pattern: ^[.]?[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.[a-zA-Z]{2,}$
              max_age:
                type: integer
                title: Max Age (seconds)
                description: Cookie lifetime in seconds
                default: 180
                minimum: 1
                maximum: 31536000
              path:
                type: string
                title: Path
                description: Path where the cookie will be valid
                default: /
                pattern: ^/
              values:
                type: array
                title: Test Variations
                description: List of A/B test variations with their respective weights
                minItems: 2
                maxItems: 10
                items:
                  type: object
                  properties:
                    value:
                      type: string
                      title: Variation Value
                      description: Unique variation identifier
                      minLength: 1
                      maxLength: 50
                      pattern: ^[a-zA-Z0-9_-]+$
                    weight:
                      type: integer
                      title: Weight
                      description: Variance weight (higher weight = higher probability)
                      minimum: 1
                      maximum: 100
                  required:
                  - value
                  - weight
                  additionalProperties: false
            required:
            - domain
            - max_age
            - path
            - values
            additionalProperties: false
        function:
          type: integer
          maximum: 9223372036854775807
          minimum: 1
          format: int64
        active:
          type: boolean
      title: PatchedFunctionInstanceRequest
      additionalProperties: false
    PatchedNetworkListRequest:
      type: object
      description: "A Network List item can be one of the following formats:\n\n\n\
        1. IP Addresses (IPv4/IPv6):\n\n    - Simple IPv4: 192.168.0.1\n\n    - IPv4\
        \ with CIDR: 192.168.0.1/24\n\n    - Simple IPv6: 2001:db8:3333:4444:5555:6666:7777:8888\n\
        \n    - IPv6 with CIDR: 2001:db8::/32\n\n    - IP with expiration date: 192.168.0.1\
        \ --LT2025-05-29T12:25:23Z\n\n        (The expiration date format is --LT\
        \ followed by ISO8601 date in UTC timezone)\n\n\n2. Country Codes:\n\n   \
        \ - Two-character uppercase alphanumeric country code (ISO 3166-1 alpha-2)\n\
        \n    - Examples: BR, US, DE, JP\n\n\n3. Autonomous System Numbers (ASN):\n\
        \n    - Number composed of digits only\n\n    - Examples: 1234, 5678, 13335"
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        type:
          $ref: '#/components/schemas/NetworkListTypeEnum'
        items:
          type: array
          items:
            type: string
            minLength: 1
            pattern: .*
            maxLength: 250
          maxItems: 20000
          minItems: 1
        active:
          type: boolean
          default: true
      title: PatchedNetworkListRequest
      additionalProperties: false
    PatchedResponsePhaseRuleRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        active:
          type: boolean
          default: true
        criteria:
          type: array
          items:
            type: array
            items:
              $ref: '#/components/schemas/ApplicationCriterionFieldRequest'
            maxItems: 10
            minItems: 1
          maxItems: 5
          minItems: 1
        behaviors:
          type: array
          items:
            $ref: '#/components/schemas/ResponsePhaseBehaviorRequest'
          maxItems: 10
          minItems: 1
        description:
          type: string
          pattern: .*
          maxLength: 1000
          minLength: 0
      title: PatchedResponsePhaseRuleRequest
      additionalProperties: false
    PatchedWAFRequest:
      type: object
      properties:
        active:
          type: boolean
          default: true
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        product_version:
          type: string
          nullable: true
          minLength: 3
          default: '1.0'
          pattern: \d+\.\d+
          maxLength: 50
        engine_settings:
          $ref: '#/components/schemas/WAFEngineSettingsFieldRequest'
      title: PatchedWAFRequest
      additionalProperties: false
    PatchedWAFRuleRequest:
      type: object
      properties:
        rule_id:
          allOf:
          - $ref: '#/components/schemas/RuleIdEnum'
          default: 0
          description: '0 - All Rules<br>

            1 - Validation of protocol compliance: weird request, unable to parse<br>

            2 - Request too big, stored on disk and not parsed<br>

            10 - Validation of protocol compliance: invalid HEX encoding (null bytes)<br>

            11 - Validation of protocol compliance: missing or unknown Content-Type
            header in a POST (this rule applies only to Request Body match zone)<br>

            12 - Validation of protocol compliance: invalid formatted URL<br>

            13 - Validation of protocol compliance: invalid POST format<br>

            14 - Validation of protocol compliance: invalid POST boundary<br>

            15 - Validation of protocol compliance: invalid JSON<br>

            16 - Validation of protocol compliance: POST with no body<br>

            17 - Possible SQL Injection attack: validation with libinjection_sql<br>

            18 - Possible XSS attack: validation with libinjection_xss<br>

            1000 - Possible SQL Injection attack: SQL keywords found in Body, Path,
            Query String or Cookies<br>

            1001 - Possible SQL Injection or XSS attack: double quote (") found in
            Body, Path, Query String or Cookies<br>

            1002 - Possible SQL Injection attack: possible hex encoding (0x) found
            in Body, Path, Query String or Cookies<br>

            1003 - Possible SQL Injection attack: MySQL comment (/*) found in Body,
            Path, Query String or Cookies<br>

            1004 - Possible SQL Injection attack: MySQL comment (*​/) found in Body,
            Path, Query String or Cookies<br>

            1005 - Possible SQL Injection attack: MySQL keyword (|) found in Body,
            Path, Query String or Cookies<br>

            1006 - Possible SQL Injection attack: MySQL keyword (&&) found in Body,
            Path, Query String or Cookies<br>

            1007 - Possible SQL Injection attack: MySQL comment (--) found in Body,
            Path, Query String or Cookies<br>

            1008 - Possible SQL Injection or XSS attack: semicolon (;) found in Body,
            Path or Query String<br>

            1009 - Possible SQL Injection attack: equal sign (=) found in Body or
            Query String<br>

            1010 - Possible SQL Injection or XSS attack: open parenthesis [(] found
            in Body, Path, Query String or Cookies<br>

            1011 - Possible SQL Injection or XSS attack: close parenthesis [)] found
            in Body, Path, Query String or Cookies<br>

            1013 - Possible SQL Injection or XSS attack: apostrophe ('') found in
            Body, Path, Query String or Cookies<br>

            1015 - Possible SQL Injection attack: comma (,) found in Body, Path, Query
            String or Cookies<br>

            1016 - Possible SQL Injection attack: MySQL comment (#) found in Body,
            Path, Query String or Cookies<br>

            1017 - Possible SQL Injection attack: double at sign (@@) found in Body,
            Path, Query String or Cookies<br>

            1100 - Possible RFI attack: scheme "http://" found in Body, Query String
            or Cookies<br>

            1101 - Possible RFI attack: scheme "https://" found in Body, Query String
            or Cookies<br>

            1102 - Possible RFI attack: scheme "ftp://" found in Body, Query String
            or Cookies<br>

            1103 - Possible RFI attack: scheme "php://" found in Body, Query String
            or Cookies<br>

            1104 - Possible RFI attack: scheme "sftp://" found in Body, Query String
            or Cookies<br>

            1105 - Possible RFI attack: scheme "zlib://" found in Body, Query String
            or Cookies<br>

            1106 - Possible RFI attack: scheme "data://" found in Body, Query String
            or Cookies<br>

            1107 - Possible RFI attack: scheme "glob://" found in Body, Query String
            or Cookies<br>

            1108 - Possible RFI attack: scheme "phar://" found in Body, Query String
            or Cookies<br>

            1109 - Possible RFI attack: scheme "file://" found in Body, Query String
            or Cookies<br>

            1110 - Possible RFI attack: scheme "gopher://" found in Body, Query String
            or Cookies<br>

            1198 - Possible RCE attack: validation with log4j (Log4Shell) in HEADERS_VAR<br>

            1199 - Possible RCE attack: validation with log4j (Log4Shell) in Body,
            Path, Query String, Headers or Cookies<br>

            1200 - Possible Directory Traversal attack: double dot (..) found in Body,
            Path, Query String or Cookies<br>

            1202 - Possible Directory Traversal attack: obvious probe (/etc/passwd)
            found in Body, Path, Query String or Cookies<br>

            1203 - Possible Directory Traversal attack: obvious windows path (c:\)
            found in Body, Path, Query String or Cookies<br>

            1204 - Possible Directory Traversal attack: obvious probe (cmd.exe) found
            in Body, Path, Query String or Cookies<br>

            1205 - Possible Directory Traversal attack: backslash (\) found in Body,
            Path, Query String or Cookies<br>

            1206 - Possible Directory Traversal attack: slash (/) found in Body, Query
            String or Cookies<br>

            1207 - Possible Directory Traversal attack: obvious path probe (/..;/)
            found in Body, Query String or Cookies<br>

            1208 - Possible Directory Traversal attack: obvious path probe (/.;/)
            found in Body, Query String or Cookies<br>

            1209 - Possible Directory Traversal attack: obvious path probe (/.%2e/)
            found in Body, Query String or Cookies<br>

            1210 - Possible Directory Traversal attack: obvious path probe (/%2e./)
            found in Body, Query String or Cookies<br>

            1302 - Possible XSS attack: html open tag (<) found in Body, Path, Query
            String or Cookies<br>

            1303 - Possible XSS attack: html close tag (>) found in Body, Path, Query
            String or Cookies<br>

            1310 - Possible XSS attack: open square bracket ([) found in Body, Path,
            Query String or Cookies<br>

            1311 - Possible XSS attack: close square bracket (]) found in Body, Path,
            Query String or Cookies<br>

            1312 - Possible XSS attack: tilde character (~) found in Body, Path, Query
            String or Cookies<br>

            1314 - Possible XSS attack: back quote ( `) found in Body, Path, Query
            String or Cookies<br>

            1315 - Possible XSS attack: double encoding (%[2|3]) found in Body, Path,
            Query String or Cookies<br>

            1400 - Possible trick to evade protection: UTF7/8 encoding (&#) found
            in Body, Path, Query String or Cookies<br>

            1401 - Possible trick to evade protection: MS encoding (%U) found in Body,
            Path, Query String or Cookies<br>

            1402 - Possible trick to evade protection: encoded chars (%20-%3F) found
            in Body, Query String or Cookies<br>

            1500 - Possible File Upload attempt: asp/php (.ph, .asp or .ht) found
            in filename in a multipart POST containing a file<br>

            2001 - Possible CVE-2022-22965 attack: Tomcat Pipeline Context tampering


            * `0` - All Rules

            * `1` - Validation of protocol compliance: weird request, unable to parse

            * `2` - Request too big, stored on disk and not parsed

            * `10` - Validation of protocol compliance: invalid HEX encoding (null
            bytes)

            * `11` - Validation of protocol compliance: missing or unknown Content-Type
            header in a POST (this rule applies only to Request Body match zone)

            * `12` - Validation of protocol compliance: invalid formatted URL

            * `13` - Validation of protocol compliance: invalid POST format

            * `14` - Validation of protocol compliance: invalid POST boundary

            * `15` - Validation of protocol compliance: invalid JSON

            * `16` - Validation of protocol compliance: POST with no body

            * `17` - Possible SQL Injection attack: validation with libinjection_sql

            * `18` - Possible XSS attack: validation with libinjection_xss

            * `1000` - Possible SQL Injection attack: SQL keywords found in Body,
            Path, Query String or Cookies

            * `1001` - Possible SQL Injection or XSS attack: double quote (") found
            in Body, Path, Query String or Cookies

            * `1002` - Possible SQL Injection attack: possible hex encoding (0x) found
            in Body, Path, Query String or Cookies

            * `1003` - Possible SQL Injection attack: MySQL comment (/*) found in
            Body, Path, Query String or Cookies

            * `1004` - Possible SQL Injection attack: MySQL comment (*​/) found in
            Body, Path, Query String or Cookies

            * `1005` - Possible SQL Injection attack: MySQL keyword (|) found in Body,
            Path, Query String or Cookies

            * `1006` - Possible SQL Injection attack: MySQL keyword (&&) found in
            Body, Path, Query String or Cookies

            * `1007` - Possible SQL Injection attack: MySQL comment (--) found in
            Body, Path, Query String or Cookies

            * `1008` - Possible SQL Injection or XSS attack: semicolon (;) found in
            Body, Path or Query String

            * `1009` - Possible SQL Injection attack: equal sign (=) found in Body
            or Query String

            * `1010` - Possible SQL Injection or XSS attack: open parenthesis [(]
            found in Body, Path, Query String or Cookies

            * `1011` - Possible SQL Injection or XSS attack: close parenthesis [)]
            found in Body, Path, Query String or Cookies

            * `1013` - Possible SQL Injection or XSS attack: apostrophe ('') found
            in Body, Path, Query String or Cookies

            * `1015` - Possible SQL Injection attack: comma (,) found in Body, Path,
            Query String or Cookies

            * `1016` - Possible SQL Injection attack: MySQL comment (#) found in Body,
            Path, Query String or Cookies

            * `1017` - Possible SQL Injection attack: double at sign (@@) found in
            Body, Path, Query String or Cookies

            * `1100` - Possible RFI attack: scheme "http://" found in Body, Query
            String or Cookies

            * `1101` - Possible RFI attack: scheme "https://" found in Body, Query
            String or Cookies

            * `1102` - Possible RFI attack: scheme "ftp://" found in Body, Query String
            or Cookies

            * `1103` - Possible RFI attack: scheme "php://" found in Body, Query String
            or Cookies

            * `1104` - Possible RFI attack: scheme "sftp://" found in Body, Query
            String or Cookies

            * `1105` - Possible RFI attack: scheme "zlib://" found in Body, Query
            String or Cookies

            * `1106` - Possible RFI attack: scheme "data://" found in Body, Query
            String or Cookies

            * `1107` - Possible RFI attack: scheme "glob://" found in Body, Query
            String or Cookies

            * `1108` - Possible RFI attack: scheme "phar://" found in Body, Query
            String or Cookies

            * `1109` - Possible RFI attack: scheme "file://" found in Body, Query
            String or Cookies

            * `1110` - Possible RFI attack: scheme "gopher://" found in Body, Query
            String or Cookies

            * `1198` - Possible RCE attack: validation with log4j (Log4Shell) in HEADERS_VAR

            * `1199` - Possible RCE attack: validation with log4j (Log4Shell) in Body,
            Path, Query String, Headers or Cookies

            * `1200` - Possible Directory Traversal attack: double dot (..) found
            in Body, Path, Query String or Cookies

            * `1202` - Possible Directory Traversal attack: obvious probe (/etc/passwd)
            found in Body, Path, Query String or Cookies

            * `1203` - Possible Directory Traversal attack: obvious windows path (c:\)
            found in Body, Path, Query String or Cookies

            * `1204` - Possible Directory Traversal attack: obvious probe (cmd.exe)
            found in Body, Path, Query String or Cookies

            * `1205` - Possible Directory Traversal attack: backslash (\) found in
            Body, Path, Query String or Cookies

            * `1206` - Possible Directory Traversal attack: slash (/) found in Body,
            Query String or Cookies

            * `1207` - Possible Directory Traversal attack: obvious path probe (/..;/)
            found in Body, Query String or Cookies

            * `1208` - Possible Directory Traversal attack: obvious path probe (/.;/)
            found in Body, Query String or Cookies

            * `1209` - Possible Directory Traversal attack: obvious path probe (/.%2e/)
            found in Body, Query String or Cookies

            * `1210` - Possible Directory Traversal attack: obvious path probe (/%2e./)
            found in Body, Query String or Cookies

            * `1302` - Possible XSS attack: html open tag (<) found in Body, Path,
            Query String or Cookies

            * `1303` - Possible XSS attack: html close tag (>) found in Body, Path,
            Query String or Cookies

            * `1310` - Possible XSS attack: open square bracket ([) found in Body,
            Path, Query String or Cookies

            * `1311` - Possible XSS attack: close square bracket (]) found in Body,
            Path, Query String or Cookies

            * `1312` - Possible XSS attack: tilde character (~) found in Body, Path,
            Query String or Cookies

            * `1314` - Possible XSS attack: back quote ( `) found in Body, Path, Query
            String or Cookies

            * `1315` - Possible XSS attack: double encoding (%[2|3]) found in Body,
            Path, Query String or Cookies

            * `1400` - Possible trick to evade protection: UTF7/8 encoding (&#) found
            in Body, Path, Query String or Cookies

            * `1401` - Possible trick to evade protection: MS encoding (%U) found
            in Body, Path, Query String or Cookies

            * `1402` - Possible trick to evade protection: encoded chars (%20-%3F)
            found in Body, Query String or Cookies

            * `1500` - Possible File Upload attempt: asp/php (.ph, .asp or .ht) found
            in filename in a multipart POST containing a file

            * `2001` - Possible CVE-2022-22965 attack: Tomcat Pipeline Context tampering'
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 255
        path:
          type: string
          nullable: true
          pattern: .*
          maxLength: 255
          minLength: 0
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/WAFExceptionConditionRequest'
          minItems: 1
        operator:
          allOf:
          - $ref: '#/components/schemas/WAFRuleOperatorEnum'
          default: contains
        active:
          type: boolean
          default: true
      title: PatchedWAFRuleRequest
      additionalProperties: false
    PatchedWorkloadRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 100
        active:
          type: boolean
          default: true
        infrastructure:
          allOf:
          - $ref: '#/components/schemas/InfrastructureEnum'
          default: 1
        tls:
          allOf:
          - $ref: '#/components/schemas/TLSWorkloadRequest'
        protocols:
          allOf:
          - $ref: '#/components/schemas/ProtocolsRequest'
        mtls:
          allOf:
          - $ref: '#/components/schemas/MTLSRequest'
        domains:
          type: array
          items:
            type: string
            minLength: 1
            pattern: .*
        workload_domain_allow_access:
          type: boolean
      title: PatchedWorkloadRequest
      additionalProperties: false
    Protocols:
      type: object
      properties:
        http:
          allOf:
          - $ref: '#/components/schemas/HttpProtocol'
      title: Protocols
      additionalProperties: false
    ProtocolsRequest:
      type: object
      properties:
        http:
          allOf:
          - $ref: '#/components/schemas/HttpProtocolRequest'
      title: ProtocolsRequest
      additionalProperties: false
    Purge:
      type: object
      description: Serialize the incoming purge request.
      properties:
        items:
          type: array
          items:
            type: string
            format: uri
            minLength: 1
          minItems: 1
        layer:
          allOf:
          - $ref: '#/components/schemas/LayerEnum'
          default: cache
      required:
      - items
      title: Purge
      additionalProperties: false
    PurgeRequest:
      type: object
      description: Serialize the incoming purge request.
      properties:
        items:
          type: array
          items:
            type: string
            minLength: 1
            format: uri
          minItems: 1
        layer:
          allOf:
          - $ref: '#/components/schemas/LayerEnum'
          default: cache
      required:
      - items
      title: PurgeRequest
      additionalProperties: false
    PurgeResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/Purge'
      required:
      - data
      title: PurgeResponse
      additionalProperties: false
    RequestPhaseBehavior:
      oneOf:
      - $ref: '#/components/schemas/BehaviorNoArgs'
      - $ref: '#/components/schemas/BehaviorArgs'
      - $ref: '#/components/schemas/BehaviorCapture'
      discriminator:
        propertyName: type
        mapping:
          deny: '#/components/schemas/BehaviorNoArgs'
          no_content: '#/components/schemas/BehaviorNoArgs'
          deliver: '#/components/schemas/BehaviorNoArgs'
          finish_request_phase: '#/components/schemas/BehaviorNoArgs'
          forward_cookies: '#/components/schemas/BehaviorNoArgs'
          optimize_images: '#/components/schemas/BehaviorNoArgs'
          bypass_cache: '#/components/schemas/BehaviorNoArgs'
          enable_gzip: '#/components/schemas/BehaviorNoArgs'
          redirect_http_to_https: '#/components/schemas/BehaviorNoArgs'
          redirect_to_301: '#/components/schemas/BehaviorArgs'
          redirect_to_302: '#/components/schemas/BehaviorArgs'
          rewrite_request: '#/components/schemas/BehaviorArgs'
          add_request_header: '#/components/schemas/BehaviorArgs'
          filter_request_header: '#/components/schemas/BehaviorArgs'
          add_request_cookie: '#/components/schemas/BehaviorArgs'
          filter_request_cookie: '#/components/schemas/BehaviorArgs'
          set_origin: '#/components/schemas/BehaviorArgs'
          run_function: '#/components/schemas/BehaviorArgs'
          set_connector: '#/components/schemas/BehaviorArgs'
          set_cache_policy: '#/components/schemas/BehaviorArgs'
          capture_match_groups: '#/components/schemas/BehaviorCapture'
      title: RequestPhaseBehavior
      additionalProperties: false
    RequestPhaseBehaviorRequest:
      oneOf:
      - $ref: '#/components/schemas/BehaviorNoArgs'
      - $ref: '#/components/schemas/BehaviorArgs'
      - $ref: '#/components/schemas/BehaviorCapture'
      discriminator:
        propertyName: type
        mapping:
          deny: '#/components/schemas/BehaviorNoArgs'
          no_content: '#/components/schemas/BehaviorNoArgs'
          deliver: '#/components/schemas/BehaviorNoArgs'
          finish_request_phase: '#/components/schemas/BehaviorNoArgs'
          forward_cookies: '#/components/schemas/BehaviorNoArgs'
          optimize_images: '#/components/schemas/BehaviorNoArgs'
          bypass_cache: '#/components/schemas/BehaviorNoArgs'
          enable_gzip: '#/components/schemas/BehaviorNoArgs'
          redirect_http_to_https: '#/components/schemas/BehaviorNoArgs'
          redirect_to_301: '#/components/schemas/BehaviorArgs'
          redirect_to_302: '#/components/schemas/BehaviorArgs'
          rewrite_request: '#/components/schemas/BehaviorArgs'
          add_request_header: '#/components/schemas/BehaviorArgs'
          filter_request_header: '#/components/schemas/BehaviorArgs'
          add_request_cookie: '#/components/schemas/BehaviorArgs'
          filter_request_cookie: '#/components/schemas/BehaviorArgs'
          set_origin: '#/components/schemas/BehaviorArgs'
          run_function: '#/components/schemas/BehaviorArgs'
          set_connector: '#/components/schemas/BehaviorArgs'
          set_cache_policy: '#/components/schemas/BehaviorArgs'
          capture_match_groups: '#/components/schemas/BehaviorCapture'
      title: RequestPhaseBehaviorRequest
      additionalProperties: false
    RequestPhaseRule:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        active:
          type: boolean
          default: true
        criteria:
          type: array
          items:
            type: array
            items:
              $ref: '#/components/schemas/ApplicationCriterionField'
            maxItems: 10
            minItems: 1
          maxItems: 5
          minItems: 1
        behaviors:
          type: array
          items:
            $ref: '#/components/schemas/RequestPhaseBehavior'
          maxItems: 10
          minItems: 1
        description:
          type: string
          pattern: .*
          maxLength: 1000
          minLength: 0
        order:
          type: integer
          maximum: 199
          minimum: 0
          readOnly: true
          format: int64
        last_editor:
          type: string
          readOnly: true
          nullable: true
          pattern: .*
          maxLength: 255
        last_modified:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        created_at:
          type: string
          format: date-time
          readOnly: true
      required:
      - behaviors
      - created_at
      - criteria
      - id
      - last_editor
      - last_modified
      - name
      - order
      title: RequestPhaseRule
      additionalProperties: false
    RequestPhaseRuleRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        active:
          type: boolean
          default: true
        criteria:
          type: array
          items:
            type: array
            items:
              $ref: '#/components/schemas/ApplicationCriterionFieldRequest'
            maxItems: 10
            minItems: 1
          maxItems: 5
          minItems: 1
        behaviors:
          type: array
          items:
            $ref: '#/components/schemas/RequestPhaseBehaviorRequest'
          maxItems: 10
          minItems: 1
        description:
          type: string
          pattern: .*
          maxLength: 1000
          minLength: 0
      required:
      - behaviors
      - criteria
      - name
      title: RequestPhaseRuleRequest
      additionalProperties: false
    RequestPhaseRuleResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/RequestPhaseRule'
      required:
      - data
      title: RequestPhaseRuleResponse
      additionalProperties: false
    ResponsePhaseBehavior:
      oneOf:
      - $ref: '#/components/schemas/BehaviorNoArgs'
      - $ref: '#/components/schemas/BehaviorArgs'
      - $ref: '#/components/schemas/BehaviorCapture'
      discriminator:
        propertyName: type
        mapping:
          enable_gzip: '#/components/schemas/BehaviorNoArgs'
          deliver: '#/components/schemas/BehaviorNoArgs'
          redirect_to_301: '#/components/schemas/BehaviorArgs'
          redirect_to_302: '#/components/schemas/BehaviorArgs'
          filter_response_cookie: '#/components/schemas/BehaviorArgs'
          set_cookie: '#/components/schemas/BehaviorArgs'
          add_response_header: '#/components/schemas/BehaviorArgs'
          filter_response_header: '#/components/schemas/BehaviorArgs'
          run_function: '#/components/schemas/BehaviorArgs'
          capture_match_groups: '#/components/schemas/BehaviorCapture'
      title: ResponsePhaseBehavior
      additionalProperties: false
    ResponsePhaseBehaviorRequest:
      oneOf:
      - $ref: '#/components/schemas/BehaviorNoArgs'
      - $ref: '#/components/schemas/BehaviorArgs'
      - $ref: '#/components/schemas/BehaviorCapture'
      discriminator:
        propertyName: type
        mapping:
          enable_gzip: '#/components/schemas/BehaviorNoArgs'
          deliver: '#/components/schemas/BehaviorNoArgs'
          redirect_to_301: '#/components/schemas/BehaviorArgs'
          redirect_to_302: '#/components/schemas/BehaviorArgs'
          filter_response_cookie: '#/components/schemas/BehaviorArgs'
          set_cookie: '#/components/schemas/BehaviorArgs'
          add_response_header: '#/components/schemas/BehaviorArgs'
          filter_response_header: '#/components/schemas/BehaviorArgs'
          run_function: '#/components/schemas/BehaviorArgs'
          capture_match_groups: '#/components/schemas/BehaviorCapture'
      title: ResponsePhaseBehaviorRequest
      additionalProperties: false
    ResponsePhaseRule:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        active:
          type: boolean
          default: true
        criteria:
          type: array
          items:
            type: array
            items:
              $ref: '#/components/schemas/ApplicationCriterionField'
            maxItems: 10
            minItems: 1
          maxItems: 5
          minItems: 1
        behaviors:
          type: array
          items:
            $ref: '#/components/schemas/ResponsePhaseBehavior'
          maxItems: 10
          minItems: 1
        description:
          type: string
          pattern: .*
          maxLength: 1000
          minLength: 0
        order:
          type: integer
          maximum: 199
          minimum: 0
          readOnly: true
          format: int64
        last_editor:
          type: string
          readOnly: true
          nullable: true
          pattern: .*
          maxLength: 255
        last_modified:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        created_at:
          type: string
          format: date-time
          readOnly: true
      required:
      - behaviors
      - created_at
      - criteria
      - id
      - last_editor
      - last_modified
      - name
      - order
      title: ResponsePhaseRule
      additionalProperties: false
    ResponsePhaseRuleRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        active:
          type: boolean
          default: true
        criteria:
          type: array
          items:
            type: array
            items:
              $ref: '#/components/schemas/ApplicationCriterionFieldRequest'
            maxItems: 10
            minItems: 1
          maxItems: 5
          minItems: 1
        behaviors:
          type: array
          items:
            $ref: '#/components/schemas/ResponsePhaseBehaviorRequest'
          maxItems: 10
          minItems: 1
        description:
          type: string
          pattern: .*
          maxLength: 1000
          minLength: 0
      required:
      - behaviors
      - criteria
      - name
      title: ResponsePhaseRuleRequest
      additionalProperties: false
    ResponsePhaseRuleResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/ResponsePhaseRule'
      required:
      - data
      title: ResponsePhaseRuleResponse
      additionalProperties: false
    RuleIdEnum:
      enum:
      - 0
      - 1
      - 2
      - 10
      - 11
      - 12
      - 13
      - 14
      - 15
      - 16
      - 17
      - 18
      - 1000
      - 1001
      - 1002
      - 1003
      - 1004
      - 1005
      - 1006
      - 1007
      - 1008
      - 1009
      - 1010
      - 1011
      - 1013
      - 1015
      - 1016
      - 1017
      - 1100
      - 1101
      - 1102
      - 1103
      - 1104
      - 1105
      - 1106
      - 1107
      - 1108
      - 1109
      - 1110
      - 1198
      - 1199
      - 1200
      - 1202
      - 1203
      - 1204
      - 1205
      - 1206
      - 1207
      - 1208
      - 1209
      - 1210
      - 1302
      - 1303
      - 1310
      - 1311
      - 1312
      - 1314
      - 1315
      - 1400
      - 1401
      - 1402
      - 1500
      - 2001
      type: integer
      description: '* `0` - All Rules

        * `1` - Validation of protocol compliance: weird request, unable to parse

        * `2` - Request too big, stored on disk and not parsed

        * `10` - Validation of protocol compliance: invalid HEX encoding (null bytes)

        * `11` - Validation of protocol compliance: missing or unknown Content-Type
        header in a POST (this rule applies only to Request Body match zone)

        * `12` - Validation of protocol compliance: invalid formatted URL

        * `13` - Validation of protocol compliance: invalid POST format

        * `14` - Validation of protocol compliance: invalid POST boundary

        * `15` - Validation of protocol compliance: invalid JSON

        * `16` - Validation of protocol compliance: POST with no body

        * `17` - Possible SQL Injection attack: validation with libinjection_sql

        * `18` - Possible XSS attack: validation with libinjection_xss

        * `1000` - Possible SQL Injection attack: SQL keywords found in Body, Path,
        Query String or Cookies

        * `1001` - Possible SQL Injection or XSS attack: double quote (") found in
        Body, Path, Query String or Cookies

        * `1002` - Possible SQL Injection attack: possible hex encoding (0x) found
        in Body, Path, Query String or Cookies

        * `1003` - Possible SQL Injection attack: MySQL comment (/*) found in Body,
        Path, Query String or Cookies

        * `1004` - Possible SQL Injection attack: MySQL comment (*​/) found in Body,
        Path, Query String or Cookies

        * `1005` - Possible SQL Injection attack: MySQL keyword (|) found in Body,
        Path, Query String or Cookies

        * `1006` - Possible SQL Injection attack: MySQL keyword (&&) found in Body,
        Path, Query String or Cookies

        * `1007` - Possible SQL Injection attack: MySQL comment (--) found in Body,
        Path, Query String or Cookies

        * `1008` - Possible SQL Injection or XSS attack: semicolon (;) found in Body,
        Path or Query String

        * `1009` - Possible SQL Injection attack: equal sign (=) found in Body or
        Query String

        * `1010` - Possible SQL Injection or XSS attack: open parenthesis [(] found
        in Body, Path, Query String or Cookies

        * `1011` - Possible SQL Injection or XSS attack: close parenthesis [)] found
        in Body, Path, Query String or Cookies

        * `1013` - Possible SQL Injection or XSS attack: apostrophe ('') found in
        Body, Path, Query String or Cookies

        * `1015` - Possible SQL Injection attack: comma (,) found in Body, Path, Query
        String or Cookies

        * `1016` - Possible SQL Injection attack: MySQL comment (#) found in Body,
        Path, Query String or Cookies

        * `1017` - Possible SQL Injection attack: double at sign (@@) found in Body,
        Path, Query String or Cookies

        * `1100` - Possible RFI attack: scheme "http://" found in Body, Query String
        or Cookies

        * `1101` - Possible RFI attack: scheme "https://" found in Body, Query String
        or Cookies

        * `1102` - Possible RFI attack: scheme "ftp://" found in Body, Query String
        or Cookies

        * `1103` - Possible RFI attack: scheme "php://" found in Body, Query String
        or Cookies

        * `1104` - Possible RFI attack: scheme "sftp://" found in Body, Query String
        or Cookies

        * `1105` - Possible RFI attack: scheme "zlib://" found in Body, Query String
        or Cookies

        * `1106` - Possible RFI attack: scheme "data://" found in Body, Query String
        or Cookies

        * `1107` - Possible RFI attack: scheme "glob://" found in Body, Query String
        or Cookies

        * `1108` - Possible RFI attack: scheme "phar://" found in Body, Query String
        or Cookies

        * `1109` - Possible RFI attack: scheme "file://" found in Body, Query String
        or Cookies

        * `1110` - Possible RFI attack: scheme "gopher://" found in Body, Query String
        or Cookies

        * `1198` - Possible RCE attack: validation with log4j (Log4Shell) in HEADERS_VAR

        * `1199` - Possible RCE attack: validation with log4j (Log4Shell) in Body,
        Path, Query String, Headers or Cookies

        * `1200` - Possible Directory Traversal attack: double dot (..) found in Body,
        Path, Query String or Cookies

        * `1202` - Possible Directory Traversal attack: obvious probe (/etc/passwd)
        found in Body, Path, Query String or Cookies

        * `1203` - Possible Directory Traversal attack: obvious windows path (c:\)
        found in Body, Path, Query String or Cookies

        * `1204` - Possible Directory Traversal attack: obvious probe (cmd.exe) found
        in Body, Path, Query String or Cookies

        * `1205` - Possible Directory Traversal attack: backslash (\) found in Body,
        Path, Query String or Cookies

        * `1206` - Possible Directory Traversal attack: slash (/) found in Body, Query
        String or Cookies

        * `1207` - Possible Directory Traversal attack: obvious path probe (/..;/)
        found in Body, Query String or Cookies

        * `1208` - Possible Directory Traversal attack: obvious path probe (/.;/)
        found in Body, Query String or Cookies

        * `1209` - Possible Directory Traversal attack: obvious path probe (/.%2e/)
        found in Body, Query String or Cookies

        * `1210` - Possible Directory Traversal attack: obvious path probe (/%2e./)
        found in Body, Query String or Cookies

        * `1302` - Possible XSS attack: html open tag (<) found in Body, Path, Query
        String or Cookies

        * `1303` - Possible XSS attack: html close tag (>) found in Body, Path, Query
        String or Cookies

        * `1310` - Possible XSS attack: open square bracket ([) found in Body, Path,
        Query String or Cookies

        * `1311` - Possible XSS attack: close square bracket (]) found in Body, Path,
        Query String or Cookies

        * `1312` - Possible XSS attack: tilde character (~) found in Body, Path, Query
        String or Cookies

        * `1314` - Possible XSS attack: back quote ( `) found in Body, Path, Query
        String or Cookies

        * `1315` - Possible XSS attack: double encoding (%[2|3]) found in Body, Path,
        Query String or Cookies

        * `1400` - Possible trick to evade protection: UTF7/8 encoding (&#) found
        in Body, Path, Query String or Cookies

        * `1401` - Possible trick to evade protection: MS encoding (%U) found in Body,
        Path, Query String or Cookies

        * `1402` - Possible trick to evade protection: encoded chars (%20-%3F) found
        in Body, Query String or Cookies

        * `1500` - Possible File Upload attempt: asp/php (.ph, .asp or .ht) found
        in filename in a multipart POST containing a file

        * `2001` - Possible CVE-2022-22965 attack: Tomcat Pipeline Context tampering'
      title: RuleIdEnum
      x-extensible-enum:
      - 0
      - 1
      - 2
      - 10
      - 11
      - 12
      - 13
      - 14
      - 15
      - 16
      - 17
      - 18
      - 1000
      - 1001
      - 1002
      - 1003
      - 1004
      - 1005
      - 1006
      - 1007
      - 1008
      - 1009
      - 1010
      - 1011
      - 1013
      - 1015
      - 1016
      - 1017
      - 1100
      - 1101
      - 1102
      - 1103
      - 1104
      - 1105
      - 1106
      - 1107
      - 1108
      - 1109
      - 1110
      - 1198
      - 1199
      - 1200
      - 1202
      - 1203
      - 1204
      - 1205
      - 1206
      - 1207
      - 1208
      - 1209
      - 1210
      - 1302
      - 1303
      - 1310
      - 1311
      - 1312
      - 1314
      - 1315
      - 1400
      - 1401
      - 1402
      - 1500
      - 2001
      x-enum-varnames:
      - AllRules
      - WeirdRequest
      - RequestTooBig
      - InvalidHexEncoding
      - MissingContentType
      - InvalidFormattedUrl
      - InvalidPostFormat
      - InvalidPostBoundary
      - InvalidJson
      - PostWithNoBody
      - SqlInjectionLibinjection
      - XssLibinjection
      - SqlKeywordsFound
      - SqlDoubleQuote
      - SqlHexEncoding
      - SqlCommentOpen
      - SqlCommentClose
      - SqlPipe
      - SqlAnd
      - SqlDashComment
      - SqlSemicolon
      - SqlEquals
      - SqlOpenParen
      - SqlCloseParen
      - SqlApostrophe
      - SqlComma
      - SqlHashComment
      - SqlDoubleAt
      - RfiHttp
      - RfiHttps
      - RfiFtp
      - RfiPhp
      - RfiSftp
      - RfiZlib
      - RfiData
      - RfiGlob
      - RfiPhar
      - RfiFile
      - RfiGopher
      - RceLog4jHeaders
      - RceLog4jAll
      - DirectoryTraversalDoubleDot
      - DirectoryTraversalEtcPasswd
      - DirectoryTraversalWindowsPath
      - DirectoryTraversalCmdExe
      - DirectoryTraversalBackslash
      - DirectoryTraversalSlash
      - DirectoryTraversalDotSemicolon
      - DirectoryTraversalSlashDotSemicolon
      - DirectoryTraversalDotEncoded
      - DirectoryTraversalEncodedDot
      - XssOpenTag
      - XssCloseTag
      - XssOpenBracket
      - XssCloseBracket
      - XssTilde
      - XssBackQuote
      - XssDoubleEncoding
      - EvasionUtf78
      - EvasionMsEncoding
      - EvasionEncodedChars
      - FileUploadAspPhp
      - CveSpring4Shell
      format: int64
    RulesetsEnum:
      enum:
      - 1
      type: integer
      description: '* `1` - Azion WAF Score Ruleset'
      title: RulesetsEnum
      x-extensible-enum:
      - 1
      x-enum-varnames:
      - AzionWafScoreRuleset
      format: int64
    RuntimeEnum:
      enum:
      - azion_js
      type: string
      description: '* `azion_js` - Azion JavaScript'
      title: RuntimeEnum
      x-extensible-enum:
      - azion_js
    SensitivityEnum:
      enum:
      - highest
      - high
      - medium
      - low
      - lowest
      type: string
      description: '* `highest` - Highest

        * `high` - High

        * `medium` - Medium

        * `low` - Low

        * `lowest` - Lowest'
      title: SensitivityEnum
      x-extensible-enum:
      - highest
      - high
      - medium
      - low
      - lowest
    ServerRoleEnum:
      enum:
      - primary
      - backup
      type: string
      description: '* `primary` - Primary

        * `backup` - Backup'
      title: ServerRoleEnum
      x-extensible-enum:
      - primary
      - backup
    StateCacheModule:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
      title: StateCacheModule
      additionalProperties: false
    StateCacheModuleRequest:
      type: object
      properties:
        enabled:
          type: boolean
          default: false
      title: StateCacheModuleRequest
      additionalProperties: false
    TLSWorkload:
      type: object
      properties:
        certificate:
          type: integer
          minimum: 1
          nullable: true
          format: int64
        ciphers:
          allOf:
          - $ref: '#/components/schemas/CiphersEnum'
          description: 'Allow to configure which set of ciphers will be used when
            TLS ciphers negotiation.


            * `1` - TLSv1.2_2018 - TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-SHA384:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256

            * `2` - TLSv1.2_2019 - ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA256:TLS_AES_256_GCM_SHA384:ECDHE-RSA-AES128-GCM-SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:TLS_AES_128_GCM_SHA256

            * `3` - TLSv1.3_2022 - ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256

            * `4` - TLSv1.2_2021 - ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:TLS_AES_128_GCM_SHA256

            * `5` - Legacy_v2025Q1 - TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:AES256-GCM-SHA384:AES128-GCM-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA

            * `6` - Compatible_v2025Q1 - TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:AES256-GCM-SHA384:AES128-GCM-SHA256

            * `7` - Modern_v2025Q1 - TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305

            * `8` - Legacy_v2017Q1 - AES128-CCM:AES128-CCM8:AES128-GCM-SHA256:AES128-SHA:AES128-SHA256:AES256-CCM:AES256-CCM8:AES256-GCM-SHA384:AES256-SHA:AES256-SHA256:ECDHE-ECDSA-AES128-CCM:ECDHE-ECDSA-AES128-CCM8:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-CCM:ECDHE-ECDSA-AES256-CCM8:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384:TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256'
        minimum_version:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/MinimumVersionEnum'
          type: object
      title: TLSWorkload
      additionalProperties: false
    TLSWorkloadRequest:
      type: object
      properties:
        certificate:
          type: integer
          minimum: 1
          nullable: true
          format: int64
        ciphers:
          allOf:
          - $ref: '#/components/schemas/CiphersEnum'
          description: 'Allow to configure which set of ciphers will be used when
            TLS ciphers negotiation.


            * `1` - TLSv1.2_2018 - TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-SHA384:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256

            * `2` - TLSv1.2_2019 - ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA256:TLS_AES_256_GCM_SHA384:ECDHE-RSA-AES128-GCM-SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:TLS_AES_128_GCM_SHA256

            * `3` - TLSv1.3_2022 - ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256

            * `4` - TLSv1.2_2021 - ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:TLS_AES_128_GCM_SHA256

            * `5` - Legacy_v2025Q1 - TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:AES256-GCM-SHA384:AES128-GCM-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA

            * `6` - Compatible_v2025Q1 - TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:AES256-GCM-SHA384:AES128-GCM-SHA256

            * `7` - Modern_v2025Q1 - TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305

            * `8` - Legacy_v2017Q1 - AES128-CCM:AES128-CCM8:AES128-GCM-SHA256:AES128-SHA:AES128-SHA256:AES256-CCM:AES256-CCM8:AES256-GCM-SHA384:AES256-SHA:AES256-SHA256:ECDHE-ECDSA-AES128-CCM:ECDHE-ECDSA-AES128-CCM8:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-CCM:ECDHE-ECDSA-AES256-CCM8:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384:TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256'
        minimum_version:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/MinimumVersionEnum'
          type: object
      title: TLSWorkloadRequest
      additionalProperties: false
    ThreatEnum:
      enum:
      - cross_site_scripting
      - directory_traversal
      - evading_tricks
      - file_upload
      - identified_attack
      - remote_file_inclusion
      - sql_injection
      - unwanted_access
      type: string
      description: '* `cross_site_scripting` - cross_site_scripting

        * `directory_traversal` - directory_traversal

        * `evading_tricks` - evading_tricks

        * `file_upload` - file_upload

        * `identified_attack` - identified_attack

        * `remote_file_inclusion` - remote_file_inclusion

        * `sql_injection` - sql_injection

        * `unwanted_access` - unwanted_access'
      title: ThreatEnum
      x-extensible-enum:
      - cross_site_scripting
      - directory_traversal
      - evading_tricks
      - file_upload
      - identified_attack
      - remote_file_inclusion
      - sql_injection
      - unwanted_access
    ThresholdsConfigField:
      type: object
      properties:
        threat:
          $ref: '#/components/schemas/ThreatEnum'
        sensitivity:
          allOf:
          - $ref: '#/components/schemas/SensitivityEnum'
          default: medium
      required:
      - threat
      title: ThresholdsConfigField
      additionalProperties: false
    ThresholdsConfigFieldRequest:
      type: object
      properties:
        threat:
          $ref: '#/components/schemas/ThreatEnum'
        sensitivity:
          allOf:
          - $ref: '#/components/schemas/SensitivityEnum'
          default: medium
      required:
      - threat
      title: ThresholdsConfigFieldRequest
      additionalProperties: false
    TopologyEnum:
      enum:
      - nearest-region
      - br-east-1
      - us-east-1
      type: string
      description: '* `nearest-region` - nearest-region

        * `br-east-1` - br-east-1

        * `us-east-1` - us-east-1'
      title: TopologyEnum
      x-extensible-enum:
      - nearest-region
      - br-east-1
      - us-east-1
    TransportPolicyEnum:
      enum:
      - preserve
      - force_https
      - force_http
      type: string
      description: '* `preserve` - Preserve

        * `force_https` - Force HTTPS

        * `force_http` - Force HTTP'
      title: TransportPolicyEnum
      x-extensible-enum:
      - preserve
      - force_https
      - force_http
    VerificationEnum:
      enum:
      - enforce
      - permissive
      type: string
      description: '* `enforce` - Enforce

        * `permissive` - Permissive'
      title: VerificationEnum
      x-extensible-enum:
      - enforce
      - permissive
    WAF:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        active:
          type: boolean
          default: true
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        last_editor:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 250
          minLength: 1
        last_modified:
          type: string
          format: date-time
          readOnly: true
        product_version:
          type: string
          nullable: true
          default: '1.0'
          pattern: \d+\.\d+
          maxLength: 50
          minLength: 3
        engine_settings:
          $ref: '#/components/schemas/WAFEngineSettingsField'
      required:
      - id
      - last_editor
      - last_modified
      - name
      title: WAF
      additionalProperties: false
    WAFEngineSettingsAttributesField:
      type: object
      properties:
        rulesets:
          type: array
          items:
            $ref: '#/components/schemas/RulesetsEnum'
        thresholds:
          type: array
          items:
            $ref: '#/components/schemas/ThresholdsConfigField'
          maxItems: 8
      title: WAFEngineSettingsAttributesField
      additionalProperties: false
    WAFEngineSettingsAttributesFieldRequest:
      type: object
      properties:
        rulesets:
          type: array
          items:
            $ref: '#/components/schemas/RulesetsEnum'
        thresholds:
          type: array
          items:
            $ref: '#/components/schemas/ThresholdsConfigFieldRequest'
          maxItems: 8
      title: WAFEngineSettingsAttributesFieldRequest
      additionalProperties: false
    WAFEngineSettingsField:
      type: object
      properties:
        engine_version:
          allOf:
          - $ref: '#/components/schemas/EngineVersionEnum'
          default: 2021-Q3
        type:
          allOf:
          - $ref: '#/components/schemas/WAFEngineSettingsFieldTypeEnum'
          default: score
        attributes:
          $ref: '#/components/schemas/WAFEngineSettingsAttributesField'
      title: WAFEngineSettingsField
      additionalProperties: false
    WAFEngineSettingsFieldRequest:
      type: object
      properties:
        engine_version:
          allOf:
          - $ref: '#/components/schemas/EngineVersionEnum'
          default: 2021-Q3
        type:
          allOf:
          - $ref: '#/components/schemas/WAFEngineSettingsFieldTypeEnum'
          default: score
        attributes:
          $ref: '#/components/schemas/WAFEngineSettingsAttributesFieldRequest'
      title: WAFEngineSettingsFieldRequest
      additionalProperties: false
    WAFEngineSettingsFieldTypeEnum:
      enum:
      - score
      type: string
      description: '* `score` - score'
      title: WAFEngineSettingsFieldTypeEnum
      x-extensible-enum:
      - score
    WAFExceptionGenericCondition:
      type: object
      properties:
        match:
          $ref: '#/components/schemas/WAFExceptionGenericConditionMatchEnum'
      required:
      - match
      title: WAFExceptionGenericCondition
      additionalProperties: false
    WAFExceptionGenericConditionMatchEnum:
      enum:
      - any_http_header_name
      - any_http_header_value
      - any_query_string_name
      - any_query_string_value
      - any_url
      - body_form_field_name
      - body_form_field_value
      - file_extension
      - raw_body
      type: string
      description: '* `any_http_header_name` - any_http_header_name

        * `any_http_header_value` - any_http_header_value

        * `any_query_string_name` - any_query_string_name

        * `any_query_string_value` - any_query_string_value

        * `any_url` - any_url

        * `body_form_field_name` - body_form_field_name

        * `body_form_field_value` - body_form_field_value

        * `file_extension` - file_extension

        * `raw_body` - raw_body'
      title: WAFExceptionGenericConditionMatchEnum
      x-extensible-enum:
      - any_http_header_name
      - any_http_header_value
      - any_query_string_name
      - any_query_string_value
      - any_url
      - body_form_field_name
      - body_form_field_value
      - file_extension
      - raw_body
    WAFExceptionGenericConditionRequest:
      type: object
      properties:
        match:
          $ref: '#/components/schemas/WAFExceptionGenericConditionMatchEnum'
      required:
      - match
      title: WAFExceptionGenericConditionRequest
      additionalProperties: false
    WAFExceptionSpecificConditionOnName:
      type: object
      properties:
        match:
          $ref: '#/components/schemas/WAFExceptionSpecificConditionOnNameMatchEnum'
        name:
          type: string
          pattern: .*
          maxLength: 255
          minLength: 1
      required:
      - match
      - name
      title: WAFExceptionSpecificConditionOnName
      additionalProperties: false
    WAFExceptionSpecificConditionOnNameMatchEnum:
      enum:
      - specific_body_form_field_name
      - specific_http_header_name
      - specific_query_string_name
      type: string
      description: '* `specific_body_form_field_name` - specific_body_form_field_name

        * `specific_http_header_name` - specific_http_header_name

        * `specific_query_string_name` - specific_query_string_name'
      title: WAFExceptionSpecificConditionOnNameMatchEnum
      x-extensible-enum:
      - specific_body_form_field_name
      - specific_http_header_name
      - specific_query_string_name
    WAFExceptionSpecificConditionOnNameRequest:
      type: object
      properties:
        match:
          $ref: '#/components/schemas/WAFExceptionSpecificConditionOnNameMatchEnum'
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 255
      required:
      - match
      - name
      title: WAFExceptionSpecificConditionOnNameRequest
      additionalProperties: false
    WAFExceptionSpecificConditionOnValue:
      type: object
      properties:
        match:
          $ref: '#/components/schemas/WAFExceptionSpecificConditionOnValueMatchEnum'
        value:
          type: string
          pattern: .*
          maxLength: 255
          minLength: 1
      required:
      - match
      - value
      title: WAFExceptionSpecificConditionOnValue
      additionalProperties: false
    WAFExceptionSpecificConditionOnValueMatchEnum:
      enum:
      - specific_body_form_field_value
      - specific_http_header_value
      - specific_query_string_value
      type: string
      description: '* `specific_body_form_field_value` - specific_body_form_field_value

        * `specific_http_header_value` - specific_http_header_value

        * `specific_query_string_value` - specific_query_string_value'
      title: WAFExceptionSpecificConditionOnValueMatchEnum
      x-extensible-enum:
      - specific_body_form_field_value
      - specific_http_header_value
      - specific_query_string_value
    WAFExceptionSpecificConditionOnValueRequest:
      type: object
      properties:
        match:
          $ref: '#/components/schemas/WAFExceptionSpecificConditionOnValueMatchEnum'
        value:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 255
      required:
      - match
      - value
      title: WAFExceptionSpecificConditionOnValueRequest
      additionalProperties: false
    WAFRequest:
      type: object
      properties:
        active:
          type: boolean
          default: true
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        product_version:
          type: string
          nullable: true
          minLength: 3
          default: '1.0'
          pattern: \d+\.\d+
          maxLength: 50
        engine_settings:
          $ref: '#/components/schemas/WAFEngineSettingsFieldRequest'
      required:
      - name
      title: WAFRequest
      additionalProperties: false
    WAFResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/WAF'
      required:
      - data
      title: WAFResponse
      additionalProperties: false
    WAFRule:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        rule_id:
          allOf:
          - $ref: '#/components/schemas/RuleIdEnum'
          default: 0
          description: '0 - All Rules<br>

            1 - Validation of protocol compliance: weird request, unable to parse<br>

            2 - Request too big, stored on disk and not parsed<br>

            10 - Validation of protocol compliance: invalid HEX encoding (null bytes)<br>

            11 - Validation of protocol compliance: missing or unknown Content-Type
            header in a POST (this rule applies only to Request Body match zone)<br>

            12 - Validation of protocol compliance: invalid formatted URL<br>

            13 - Validation of protocol compliance: invalid POST format<br>

            14 - Validation of protocol compliance: invalid POST boundary<br>

            15 - Validation of protocol compliance: invalid JSON<br>

            16 - Validation of protocol compliance: POST with no body<br>

            17 - Possible SQL Injection attack: validation with libinjection_sql<br>

            18 - Possible XSS attack: validation with libinjection_xss<br>

            1000 - Possible SQL Injection attack: SQL keywords found in Body, Path,
            Query String or Cookies<br>

            1001 - Possible SQL Injection or XSS attack: double quote (") found in
            Body, Path, Query String or Cookies<br>

            1002 - Possible SQL Injection attack: possible hex encoding (0x) found
            in Body, Path, Query String or Cookies<br>

            1003 - Possible SQL Injection attack: MySQL comment (/*) found in Body,
            Path, Query String or Cookies<br>

            1004 - Possible SQL Injection attack: MySQL comment (*​/) found in Body,
            Path, Query String or Cookies<br>

            1005 - Possible SQL Injection attack: MySQL keyword (|) found in Body,
            Path, Query String or Cookies<br>

            1006 - Possible SQL Injection attack: MySQL keyword (&&) found in Body,
            Path, Query String or Cookies<br>

            1007 - Possible SQL Injection attack: MySQL comment (--) found in Body,
            Path, Query String or Cookies<br>

            1008 - Possible SQL Injection or XSS attack: semicolon (;) found in Body,
            Path or Query String<br>

            1009 - Possible SQL Injection attack: equal sign (=) found in Body or
            Query String<br>

            1010 - Possible SQL Injection or XSS attack: open parenthesis [(] found
            in Body, Path, Query String or Cookies<br>

            1011 - Possible SQL Injection or XSS attack: close parenthesis [)] found
            in Body, Path, Query String or Cookies<br>

            1013 - Possible SQL Injection or XSS attack: apostrophe ('') found in
            Body, Path, Query String or Cookies<br>

            1015 - Possible SQL Injection attack: comma (,) found in Body, Path, Query
            String or Cookies<br>

            1016 - Possible SQL Injection attack: MySQL comment (#) found in Body,
            Path, Query String or Cookies<br>

            1017 - Possible SQL Injection attack: double at sign (@@) found in Body,
            Path, Query String or Cookies<br>

            1100 - Possible RFI attack: scheme "http://" found in Body, Query String
            or Cookies<br>

            1101 - Possible RFI attack: scheme "https://" found in Body, Query String
            or Cookies<br>

            1102 - Possible RFI attack: scheme "ftp://" found in Body, Query String
            or Cookies<br>

            1103 - Possible RFI attack: scheme "php://" found in Body, Query String
            or Cookies<br>

            1104 - Possible RFI attack: scheme "sftp://" found in Body, Query String
            or Cookies<br>

            1105 - Possible RFI attack: scheme "zlib://" found in Body, Query String
            or Cookies<br>

            1106 - Possible RFI attack: scheme "data://" found in Body, Query String
            or Cookies<br>

            1107 - Possible RFI attack: scheme "glob://" found in Body, Query String
            or Cookies<br>

            1108 - Possible RFI attack: scheme "phar://" found in Body, Query String
            or Cookies<br>

            1109 - Possible RFI attack: scheme "file://" found in Body, Query String
            or Cookies<br>

            1110 - Possible RFI attack: scheme "gopher://" found in Body, Query String
            or Cookies<br>

            1198 - Possible RCE attack: validation with log4j (Log4Shell) in HEADERS_VAR<br>

            1199 - Possible RCE attack: validation with log4j (Log4Shell) in Body,
            Path, Query String, Headers or Cookies<br>

            1200 - Possible Directory Traversal attack: double dot (..) found in Body,
            Path, Query String or Cookies<br>

            1202 - Possible Directory Traversal attack: obvious probe (/etc/passwd)
            found in Body, Path, Query String or Cookies<br>

            1203 - Possible Directory Traversal attack: obvious windows path (c:\)
            found in Body, Path, Query String or Cookies<br>

            1204 - Possible Directory Traversal attack: obvious probe (cmd.exe) found
            in Body, Path, Query String or Cookies<br>

            1205 - Possible Directory Traversal attack: backslash (\) found in Body,
            Path, Query String or Cookies<br>

            1206 - Possible Directory Traversal attack: slash (/) found in Body, Query
            String or Cookies<br>

            1207 - Possible Directory Traversal attack: obvious path probe (/..;/)
            found in Body, Query String or Cookies<br>

            1208 - Possible Directory Traversal attack: obvious path probe (/.;/)
            found in Body, Query String or Cookies<br>

            1209 - Possible Directory Traversal attack: obvious path probe (/.%2e/)
            found in Body, Query String or Cookies<br>

            1210 - Possible Directory Traversal attack: obvious path probe (/%2e./)
            found in Body, Query String or Cookies<br>

            1302 - Possible XSS attack: html open tag (<) found in Body, Path, Query
            String or Cookies<br>

            1303 - Possible XSS attack: html close tag (>) found in Body, Path, Query
            String or Cookies<br>

            1310 - Possible XSS attack: open square bracket ([) found in Body, Path,
            Query String or Cookies<br>

            1311 - Possible XSS attack: close square bracket (]) found in Body, Path,
            Query String or Cookies<br>

            1312 - Possible XSS attack: tilde character (~) found in Body, Path, Query
            String or Cookies<br>

            1314 - Possible XSS attack: back quote ( `) found in Body, Path, Query
            String or Cookies<br>

            1315 - Possible XSS attack: double encoding (%[2|3]) found in Body, Path,
            Query String or Cookies<br>

            1400 - Possible trick to evade protection: UTF7/8 encoding (&#) found
            in Body, Path, Query String or Cookies<br>

            1401 - Possible trick to evade protection: MS encoding (%U) found in Body,
            Path, Query String or Cookies<br>

            1402 - Possible trick to evade protection: encoded chars (%20-%3F) found
            in Body, Query String or Cookies<br>

            1500 - Possible File Upload attempt: asp/php (.ph, .asp or .ht) found
            in filename in a multipart POST containing a file<br>

            2001 - Possible CVE-2022-22965 attack: Tomcat Pipeline Context tampering


            * `0` - All Rules

            * `1` - Validation of protocol compliance: weird request, unable to parse

            * `2` - Request too big, stored on disk and not parsed

            * `10` - Validation of protocol compliance: invalid HEX encoding (null
            bytes)

            * `11` - Validation of protocol compliance: missing or unknown Content-Type
            header in a POST (this rule applies only to Request Body match zone)

            * `12` - Validation of protocol compliance: invalid formatted URL

            * `13` - Validation of protocol compliance: invalid POST format

            * `14` - Validation of protocol compliance: invalid POST boundary

            * `15` - Validation of protocol compliance: invalid JSON

            * `16` - Validation of protocol compliance: POST with no body

            * `17` - Possible SQL Injection attack: validation with libinjection_sql

            * `18` - Possible XSS attack: validation with libinjection_xss

            * `1000` - Possible SQL Injection attack: SQL keywords found in Body,
            Path, Query String or Cookies

            * `1001` - Possible SQL Injection or XSS attack: double quote (") found
            in Body, Path, Query String or Cookies

            * `1002` - Possible SQL Injection attack: possible hex encoding (0x) found
            in Body, Path, Query String or Cookies

            * `1003` - Possible SQL Injection attack: MySQL comment (/*) found in
            Body, Path, Query String or Cookies

            * `1004` - Possible SQL Injection attack: MySQL comment (*​/) found in
            Body, Path, Query String or Cookies

            * `1005` - Possible SQL Injection attack: MySQL keyword (|) found in Body,
            Path, Query String or Cookies

            * `1006` - Possible SQL Injection attack: MySQL keyword (&&) found in
            Body, Path, Query String or Cookies

            * `1007` - Possible SQL Injection attack: MySQL comment (--) found in
            Body, Path, Query String or Cookies

            * `1008` - Possible SQL Injection or XSS attack: semicolon (;) found in
            Body, Path or Query String

            * `1009` - Possible SQL Injection attack: equal sign (=) found in Body
            or Query String

            * `1010` - Possible SQL Injection or XSS attack: open parenthesis [(]
            found in Body, Path, Query String or Cookies

            * `1011` - Possible SQL Injection or XSS attack: close parenthesis [)]
            found in Body, Path, Query String or Cookies

            * `1013` - Possible SQL Injection or XSS attack: apostrophe ('') found
            in Body, Path, Query String or Cookies

            * `1015` - Possible SQL Injection attack: comma (,) found in Body, Path,
            Query String or Cookies

            * `1016` - Possible SQL Injection attack: MySQL comment (#) found in Body,
            Path, Query String or Cookies

            * `1017` - Possible SQL Injection attack: double at sign (@@) found in
            Body, Path, Query String or Cookies

            * `1100` - Possible RFI attack: scheme "http://" found in Body, Query
            String or Cookies

            * `1101` - Possible RFI attack: scheme "https://" found in Body, Query
            String or Cookies

            * `1102` - Possible RFI attack: scheme "ftp://" found in Body, Query String
            or Cookies

            * `1103` - Possible RFI attack: scheme "php://" found in Body, Query String
            or Cookies

            * `1104` - Possible RFI attack: scheme "sftp://" found in Body, Query
            String or Cookies

            * `1105` - Possible RFI attack: scheme "zlib://" found in Body, Query
            String or Cookies

            * `1106` - Possible RFI attack: scheme "data://" found in Body, Query
            String or Cookies

            * `1107` - Possible RFI attack: scheme "glob://" found in Body, Query
            String or Cookies

            * `1108` - Possible RFI attack: scheme "phar://" found in Body, Query
            String or Cookies

            * `1109` - Possible RFI attack: scheme "file://" found in Body, Query
            String or Cookies

            * `1110` - Possible RFI attack: scheme "gopher://" found in Body, Query
            String or Cookies

            * `1198` - Possible RCE attack: validation with log4j (Log4Shell) in HEADERS_VAR

            * `1199` - Possible RCE attack: validation with log4j (Log4Shell) in Body,
            Path, Query String, Headers or Cookies

            * `1200` - Possible Directory Traversal attack: double dot (..) found
            in Body, Path, Query String or Cookies

            * `1202` - Possible Directory Traversal attack: obvious probe (/etc/passwd)
            found in Body, Path, Query String or Cookies

            * `1203` - Possible Directory Traversal attack: obvious windows path (c:\)
            found in Body, Path, Query String or Cookies

            * `1204` - Possible Directory Traversal attack: obvious probe (cmd.exe)
            found in Body, Path, Query String or Cookies

            * `1205` - Possible Directory Traversal attack: backslash (\) found in
            Body, Path, Query String or Cookies

            * `1206` - Possible Directory Traversal attack: slash (/) found in Body,
            Query String or Cookies

            * `1207` - Possible Directory Traversal attack: obvious path probe (/..;/)
            found in Body, Query String or Cookies

            * `1208` - Possible Directory Traversal attack: obvious path probe (/.;/)
            found in Body, Query String or Cookies

            * `1209` - Possible Directory Traversal attack: obvious path probe (/.%2e/)
            found in Body, Query String or Cookies

            * `1210` - Possible Directory Traversal attack: obvious path probe (/%2e./)
            found in Body, Query String or Cookies

            * `1302` - Possible XSS attack: html open tag (<) found in Body, Path,
            Query String or Cookies

            * `1303` - Possible XSS attack: html close tag (>) found in Body, Path,
            Query String or Cookies

            * `1310` - Possible XSS attack: open square bracket ([) found in Body,
            Path, Query String or Cookies

            * `1311` - Possible XSS attack: close square bracket (]) found in Body,
            Path, Query String or Cookies

            * `1312` - Possible XSS attack: tilde character (~) found in Body, Path,
            Query String or Cookies

            * `1314` - Possible XSS attack: back quote ( `) found in Body, Path, Query
            String or Cookies

            * `1315` - Possible XSS attack: double encoding (%[2|3]) found in Body,
            Path, Query String or Cookies

            * `1400` - Possible trick to evade protection: UTF7/8 encoding (&#) found
            in Body, Path, Query String or Cookies

            * `1401` - Possible trick to evade protection: MS encoding (%U) found
            in Body, Path, Query String or Cookies

            * `1402` - Possible trick to evade protection: encoded chars (%20-%3F)
            found in Body, Query String or Cookies

            * `1500` - Possible File Upload attempt: asp/php (.ph, .asp or .ht) found
            in filename in a multipart POST containing a file

            * `2001` - Possible CVE-2022-22965 attack: Tomcat Pipeline Context tampering'
        name:
          type: string
          pattern: .*
          maxLength: 255
          minLength: 0
        path:
          type: string
          nullable: true
          pattern: .*
          maxLength: 255
          minLength: 0
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/WAFExceptionCondition'
          minItems: 1
        operator:
          allOf:
          - $ref: '#/components/schemas/WAFRuleOperatorEnum'
          default: contains
        active:
          type: boolean
          default: true
        last_editor:
          type: string
          readOnly: true
          pattern: .*
        last_modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - conditions
      - id
      - last_editor
      - last_modified
      - name
      title: WAFRule
      additionalProperties: false
    WAFRuleOperatorEnum:
      enum:
      - regex
      - contains
      type: string
      description: '* `regex` - regex

        * `contains` - contains'
      title: WAFRuleOperatorEnum
      x-extensible-enum:
      - regex
      - contains
    WAFRuleRequest:
      type: object
      properties:
        rule_id:
          allOf:
          - $ref: '#/components/schemas/RuleIdEnum'
          default: 0
          description: '0 - All Rules<br>

            1 - Validation of protocol compliance: weird request, unable to parse<br>

            2 - Request too big, stored on disk and not parsed<br>

            10 - Validation of protocol compliance: invalid HEX encoding (null bytes)<br>

            11 - Validation of protocol compliance: missing or unknown Content-Type
            header in a POST (this rule applies only to Request Body match zone)<br>

            12 - Validation of protocol compliance: invalid formatted URL<br>

            13 - Validation of protocol compliance: invalid POST format<br>

            14 - Validation of protocol compliance: invalid POST boundary<br>

            15 - Validation of protocol compliance: invalid JSON<br>

            16 - Validation of protocol compliance: POST with no body<br>

            17 - Possible SQL Injection attack: validation with libinjection_sql<br>

            18 - Possible XSS attack: validation with libinjection_xss<br>

            1000 - Possible SQL Injection attack: SQL keywords found in Body, Path,
            Query String or Cookies<br>

            1001 - Possible SQL Injection or XSS attack: double quote (") found in
            Body, Path, Query String or Cookies<br>

            1002 - Possible SQL Injection attack: possible hex encoding (0x) found
            in Body, Path, Query String or Cookies<br>

            1003 - Possible SQL Injection attack: MySQL comment (/*) found in Body,
            Path, Query String or Cookies<br>

            1004 - Possible SQL Injection attack: MySQL comment (*​/) found in Body,
            Path, Query String or Cookies<br>

            1005 - Possible SQL Injection attack: MySQL keyword (|) found in Body,
            Path, Query String or Cookies<br>

            1006 - Possible SQL Injection attack: MySQL keyword (&&) found in Body,
            Path, Query String or Cookies<br>

            1007 - Possible SQL Injection attack: MySQL comment (--) found in Body,
            Path, Query String or Cookies<br>

            1008 - Possible SQL Injection or XSS attack: semicolon (;) found in Body,
            Path or Query String<br>

            1009 - Possible SQL Injection attack: equal sign (=) found in Body or
            Query String<br>

            1010 - Possible SQL Injection or XSS attack: open parenthesis [(] found
            in Body, Path, Query String or Cookies<br>

            1011 - Possible SQL Injection or XSS attack: close parenthesis [)] found
            in Body, Path, Query String or Cookies<br>

            1013 - Possible SQL Injection or XSS attack: apostrophe ('') found in
            Body, Path, Query String or Cookies<br>

            1015 - Possible SQL Injection attack: comma (,) found in Body, Path, Query
            String or Cookies<br>

            1016 - Possible SQL Injection attack: MySQL comment (#) found in Body,
            Path, Query String or Cookies<br>

            1017 - Possible SQL Injection attack: double at sign (@@) found in Body,
            Path, Query String or Cookies<br>

            1100 - Possible RFI attack: scheme "http://" found in Body, Query String
            or Cookies<br>

            1101 - Possible RFI attack: scheme "https://" found in Body, Query String
            or Cookies<br>

            1102 - Possible RFI attack: scheme "ftp://" found in Body, Query String
            or Cookies<br>

            1103 - Possible RFI attack: scheme "php://" found in Body, Query String
            or Cookies<br>

            1104 - Possible RFI attack: scheme "sftp://" found in Body, Query String
            or Cookies<br>

            1105 - Possible RFI attack: scheme "zlib://" found in Body, Query String
            or Cookies<br>

            1106 - Possible RFI attack: scheme "data://" found in Body, Query String
            or Cookies<br>

            1107 - Possible RFI attack: scheme "glob://" found in Body, Query String
            or Cookies<br>

            1108 - Possible RFI attack: scheme "phar://" found in Body, Query String
            or Cookies<br>

            1109 - Possible RFI attack: scheme "file://" found in Body, Query String
            or Cookies<br>

            1110 - Possible RFI attack: scheme "gopher://" found in Body, Query String
            or Cookies<br>

            1198 - Possible RCE attack: validation with log4j (Log4Shell) in HEADERS_VAR<br>

            1199 - Possible RCE attack: validation with log4j (Log4Shell) in Body,
            Path, Query String, Headers or Cookies<br>

            1200 - Possible Directory Traversal attack: double dot (..) found in Body,
            Path, Query String or Cookies<br>

            1202 - Possible Directory Traversal attack: obvious probe (/etc/passwd)
            found in Body, Path, Query String or Cookies<br>

            1203 - Possible Directory Traversal attack: obvious windows path (c:\)
            found in Body, Path, Query String or Cookies<br>

            1204 - Possible Directory Traversal attack: obvious probe (cmd.exe) found
            in Body, Path, Query String or Cookies<br>

            1205 - Possible Directory Traversal attack: backslash (\) found in Body,
            Path, Query String or Cookies<br>

            1206 - Possible Directory Traversal attack: slash (/) found in Body, Query
            String or Cookies<br>

            1207 - Possible Directory Traversal attack: obvious path probe (/..;/)
            found in Body, Query String or Cookies<br>

            1208 - Possible Directory Traversal attack: obvious path probe (/.;/)
            found in Body, Query String or Cookies<br>

            1209 - Possible Directory Traversal attack: obvious path probe (/.%2e/)
            found in Body, Query String or Cookies<br>

            1210 - Possible Directory Traversal attack: obvious path probe (/%2e./)
            found in Body, Query String or Cookies<br>

            1302 - Possible XSS attack: html open tag (<) found in Body, Path, Query
            String or Cookies<br>

            1303 - Possible XSS attack: html close tag (>) found in Body, Path, Query
            String or Cookies<br>

            1310 - Possible XSS attack: open square bracket ([) found in Body, Path,
            Query String or Cookies<br>

            1311 - Possible XSS attack: close square bracket (]) found in Body, Path,
            Query String or Cookies<br>

            1312 - Possible XSS attack: tilde character (~) found in Body, Path, Query
            String or Cookies<br>

            1314 - Possible XSS attack: back quote ( `) found in Body, Path, Query
            String or Cookies<br>

            1315 - Possible XSS attack: double encoding (%[2|3]) found in Body, Path,
            Query String or Cookies<br>

            1400 - Possible trick to evade protection: UTF7/8 encoding (&#) found
            in Body, Path, Query String or Cookies<br>

            1401 - Possible trick to evade protection: MS encoding (%U) found in Body,
            Path, Query String or Cookies<br>

            1402 - Possible trick to evade protection: encoded chars (%20-%3F) found
            in Body, Query String or Cookies<br>

            1500 - Possible File Upload attempt: asp/php (.ph, .asp or .ht) found
            in filename in a multipart POST containing a file<br>

            2001 - Possible CVE-2022-22965 attack: Tomcat Pipeline Context tampering


            * `0` - All Rules

            * `1` - Validation of protocol compliance: weird request, unable to parse

            * `2` - Request too big, stored on disk and not parsed

            * `10` - Validation of protocol compliance: invalid HEX encoding (null
            bytes)

            * `11` - Validation of protocol compliance: missing or unknown Content-Type
            header in a POST (this rule applies only to Request Body match zone)

            * `12` - Validation of protocol compliance: invalid formatted URL

            * `13` - Validation of protocol compliance: invalid POST format

            * `14` - Validation of protocol compliance: invalid POST boundary

            * `15` - Validation of protocol compliance: invalid JSON

            * `16` - Validation of protocol compliance: POST with no body

            * `17` - Possible SQL Injection attack: validation with libinjection_sql

            * `18` - Possible XSS attack: validation with libinjection_xss

            * `1000` - Possible SQL Injection attack: SQL keywords found in Body,
            Path, Query String or Cookies

            * `1001` - Possible SQL Injection or XSS attack: double quote (") found
            in Body, Path, Query String or Cookies

            * `1002` - Possible SQL Injection attack: possible hex encoding (0x) found
            in Body, Path, Query String or Cookies

            * `1003` - Possible SQL Injection attack: MySQL comment (/*) found in
            Body, Path, Query String or Cookies

            * `1004` - Possible SQL Injection attack: MySQL comment (*​/) found in
            Body, Path, Query String or Cookies

            * `1005` - Possible SQL Injection attack: MySQL keyword (|) found in Body,
            Path, Query String or Cookies

            * `1006` - Possible SQL Injection attack: MySQL keyword (&&) found in
            Body, Path, Query String or Cookies

            * `1007` - Possible SQL Injection attack: MySQL comment (--) found in
            Body, Path, Query String or Cookies

            * `1008` - Possible SQL Injection or XSS attack: semicolon (;) found in
            Body, Path or Query String

            * `1009` - Possible SQL Injection attack: equal sign (=) found in Body
            or Query String

            * `1010` - Possible SQL Injection or XSS attack: open parenthesis [(]
            found in Body, Path, Query String or Cookies

            * `1011` - Possible SQL Injection or XSS attack: close parenthesis [)]
            found in Body, Path, Query String or Cookies

            * `1013` - Possible SQL Injection or XSS attack: apostrophe ('') found
            in Body, Path, Query String or Cookies

            * `1015` - Possible SQL Injection attack: comma (,) found in Body, Path,
            Query String or Cookies

            * `1016` - Possible SQL Injection attack: MySQL comment (#) found in Body,
            Path, Query String or Cookies

            * `1017` - Possible SQL Injection attack: double at sign (@@) found in
            Body, Path, Query String or Cookies

            * `1100` - Possible RFI attack: scheme "http://" found in Body, Query
            String or Cookies

            * `1101` - Possible RFI attack: scheme "https://" found in Body, Query
            String or Cookies

            * `1102` - Possible RFI attack: scheme "ftp://" found in Body, Query String
            or Cookies

            * `1103` - Possible RFI attack: scheme "php://" found in Body, Query String
            or Cookies

            * `1104` - Possible RFI attack: scheme "sftp://" found in Body, Query
            String or Cookies

            * `1105` - Possible RFI attack: scheme "zlib://" found in Body, Query
            String or Cookies

            * `1106` - Possible RFI attack: scheme "data://" found in Body, Query
            String or Cookies

            * `1107` - Possible RFI attack: scheme "glob://" found in Body, Query
            String or Cookies

            * `1108` - Possible RFI attack: scheme "phar://" found in Body, Query
            String or Cookies

            * `1109` - Possible RFI attack: scheme "file://" found in Body, Query
            String or Cookies

            * `1110` - Possible RFI attack: scheme "gopher://" found in Body, Query
            String or Cookies

            * `1198` - Possible RCE attack: validation with log4j (Log4Shell) in HEADERS_VAR

            * `1199` - Possible RCE attack: validation with log4j (Log4Shell) in Body,
            Path, Query String, Headers or Cookies

            * `1200` - Possible Directory Traversal attack: double dot (..) found
            in Body, Path, Query String or Cookies

            * `1202` - Possible Directory Traversal attack: obvious probe (/etc/passwd)
            found in Body, Path, Query String or Cookies

            * `1203` - Possible Directory Traversal attack: obvious windows path (c:\)
            found in Body, Path, Query String or Cookies

            * `1204` - Possible Directory Traversal attack: obvious probe (cmd.exe)
            found in Body, Path, Query String or Cookies

            * `1205` - Possible Directory Traversal attack: backslash (\) found in
            Body, Path, Query String or Cookies

            * `1206` - Possible Directory Traversal attack: slash (/) found in Body,
            Query String or Cookies

            * `1207` - Possible Directory Traversal attack: obvious path probe (/..;/)
            found in Body, Query String or Cookies

            * `1208` - Possible Directory Traversal attack: obvious path probe (/.;/)
            found in Body, Query String or Cookies

            * `1209` - Possible Directory Traversal attack: obvious path probe (/.%2e/)
            found in Body, Query String or Cookies

            * `1210` - Possible Directory Traversal attack: obvious path probe (/%2e./)
            found in Body, Query String or Cookies

            * `1302` - Possible XSS attack: html open tag (<) found in Body, Path,
            Query String or Cookies

            * `1303` - Possible XSS attack: html close tag (>) found in Body, Path,
            Query String or Cookies

            * `1310` - Possible XSS attack: open square bracket ([) found in Body,
            Path, Query String or Cookies

            * `1311` - Possible XSS attack: close square bracket (]) found in Body,
            Path, Query String or Cookies

            * `1312` - Possible XSS attack: tilde character (~) found in Body, Path,
            Query String or Cookies

            * `1314` - Possible XSS attack: back quote ( `) found in Body, Path, Query
            String or Cookies

            * `1315` - Possible XSS attack: double encoding (%[2|3]) found in Body,
            Path, Query String or Cookies

            * `1400` - Possible trick to evade protection: UTF7/8 encoding (&#) found
            in Body, Path, Query String or Cookies

            * `1401` - Possible trick to evade protection: MS encoding (%U) found
            in Body, Path, Query String or Cookies

            * `1402` - Possible trick to evade protection: encoded chars (%20-%3F)
            found in Body, Query String or Cookies

            * `1500` - Possible File Upload attempt: asp/php (.ph, .asp or .ht) found
            in filename in a multipart POST containing a file

            * `2001` - Possible CVE-2022-22965 attack: Tomcat Pipeline Context tampering'
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 255
        path:
          type: string
          nullable: true
          pattern: .*
          maxLength: 255
          minLength: 0
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/WAFExceptionConditionRequest'
          minItems: 1
        operator:
          allOf:
          - $ref: '#/components/schemas/WAFRuleOperatorEnum'
          default: contains
        active:
          type: boolean
          default: true
      required:
      - conditions
      - name
      title: WAFRuleRequest
      additionalProperties: false
    WAFRuleResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/WAFRule'
      required:
      - data
      title: WAFRuleResponse
      additionalProperties: false
    Workload:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 100
          minLength: 1
        active:
          type: boolean
          default: true
        last_editor:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 250
          minLength: 1
        last_modified:
          type: string
          format: date-time
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        infrastructure:
          allOf:
          - $ref: '#/components/schemas/InfrastructureEnum'
          default: 1
        tls:
          allOf:
          - $ref: '#/components/schemas/TLSWorkload'
        protocols:
          allOf:
          - $ref: '#/components/schemas/Protocols'
        mtls:
          allOf:
          - $ref: '#/components/schemas/MTLS'
        domains:
          type: array
          items:
            type: string
            pattern: .*
        workload_domain_allow_access:
          type: boolean
        workload_domain:
          type: string
          readOnly: true
          default: ''
          pattern: .*
        product_version:
          type: string
          readOnly: true
          pattern: ^(custom|\d+\.\d+)$
      required:
      - created_at
      - id
      - last_editor
      - last_modified
      - name
      - product_version
      - workload_domain
      title: Workload
      additionalProperties: false
    WorkloadRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 100
        active:
          type: boolean
          default: true
        infrastructure:
          allOf:
          - $ref: '#/components/schemas/InfrastructureEnum'
          default: 1
        tls:
          allOf:
          - $ref: '#/components/schemas/TLSWorkloadRequest'
        protocols:
          allOf:
          - $ref: '#/components/schemas/ProtocolsRequest'
        mtls:
          allOf:
          - $ref: '#/components/schemas/MTLSRequest'
        domains:
          type: array
          items:
            type: string
            minLength: 1
            pattern: .*
        workload_domain_allow_access:
          type: boolean
      required:
      - name
      title: WorkloadRequest
      additionalProperties: false
    WorkloadResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/Workload'
      required:
      - data
      title: WorkloadResponse
      additionalProperties: false
    BehaviorArgsAttributes:
      type: object
      description: Behavior attributes containing the value parameter
      properties:
        value:
          description: Value can be string or integer depending on the behavior type
          anyOf:
          - type: string
          - type: integer
            format: int64
            minimum: 1
            maximum: 9223372036854775807
      required:
      - value
      additionalProperties: false
    BehaviorArgs:
      type: object
      title: BehaviorArgs
      description: Behaviors with arguments (string or integer)
      properties:
        type:
          type: string
          enum:
          - add_request_cookie
          - add_request_header
          - add_response_header
          - filter_request_cookie
          - filter_request_header
          - filter_response_cookie
          - filter_response_header
          - redirect_to_301
          - redirect_to_302
          - rewrite_request
          - run_function
          - set_cache_policy
          - set_connector
          - set_cookie
          - set_origin
          description: Behavior type
          x-extensible-enum:
          - add_request_cookie
          - add_request_header
          - add_response_header
          - filter_request_cookie
          - filter_request_header
          - filter_response_cookie
          - filter_response_header
          - redirect_to_301
          - redirect_to_302
          - rewrite_request
          - run_function
          - set_cache_policy
          - set_connector
          - set_cookie
          - set_origin
        attributes:
          $ref: '#/components/schemas/BehaviorArgsAttributes'
      required:
      - type
      - attributes
      additionalProperties: false
    BehaviorCapture:
      type: object
      title: BehaviorCapture
      description: Behaviors for capturing match groups
      properties:
        type:
          type: string
          enum:
          - capture_match_groups
          x-extensible-enum:
          - capture_match_groups
        attributes:
          $ref: '#/components/schemas/BehaviorCaptureMatchGroupsAttributes'
      required:
      - type
      - attributes
      additionalProperties: false
    FirewallBehaviorArgs:
      type: object
      title: FirewallBehaviorArgs
      description: Firewall behaviors with a simple argument (e.g., run_function)
      properties:
        type:
          type: string
          enum:
          - run_function
          x-extensible-enum:
          - run_function
        attributes:
          $ref: '#/components/schemas/FirewallBehaviorRunFunctionAttributes'
      required:
      - type
      - attributes
      additionalProperties: false
    FirewallBehaviorObjectArgs:
      type: object
      title: FirewallBehaviorObjectArgs
      description: Firewall behaviors with complex object attributes (set_custom_response,
        set_rate_limit, set_waf)
      properties:
        type:
          type: string
          enum:
          - set_custom_response
          - set_rate_limit
          - set_waf
          description: Behavior type
          x-extensible-enum:
          - set_custom_response
          - set_rate_limit
          - set_waf
        attributes:
          oneOf:
          - $ref: '#/components/schemas/FirewallBehaviorSetCustomResponseAttributes'
          - $ref: '#/components/schemas/FirewallBehaviorSetRateLimitAttributes'
          - $ref: '#/components/schemas/FirewallBehaviorSetWafAttributes'
          description: Attributes object whose shape depends on the behavior type.
            Use SetCustomResponseAttributes for set_custom_response, SetRateLimitAttributes
            for set_rate_limit, SetWafAttributes for set_waf.
      required:
      - type
      - attributes
      additionalProperties: false
    FirewallBehaviorObjectArgsRequest:
      type: object
      title: FirewallBehaviorObjectArgsRequest
      description: Firewall behaviors with complex object attributes (set_custom_response,
        set_rate_limit, set_waf)
      properties:
        type:
          type: string
          enum:
          - set_custom_response
          - set_rate_limit
          - set_waf
          description: Behavior type
          x-extensible-enum:
          - set_custom_response
          - set_rate_limit
          - set_waf
        attributes:
          oneOf:
          - $ref: '#/components/schemas/FirewallBehaviorSetCustomResponseAttributesRequest'
          - $ref: '#/components/schemas/FirewallBehaviorSetRateLimitAttributesRequest'
          - $ref: '#/components/schemas/FirewallBehaviorSetWafAttributesRequest'
          description: Attributes object whose shape depends on the behavior type.
            Use SetCustomResponseAttributes for set_custom_response, SetRateLimitAttributes
            for set_rate_limit, SetWafAttributes for set_waf.
      required:
      - type
      - attributes
      additionalProperties: false
    FirewallBehaviorArgsRequest:
      type: object
      title: FirewallBehaviorArgsRequest
      description: Firewall behaviors with a simple argument (e.g., run_function)
      properties:
        type:
          type: string
          enum:
          - run_function
          x-extensible-enum:
          - run_function
        attributes:
          $ref: '#/components/schemas/FirewallBehaviorRunFunctionAttributesRequest'
      required:
      - type
      - attributes
      additionalProperties: false
    FirewallBehaviorModeEnum:
      enum:
      - ignore
      - all
      - allowlist
      - denylist
      type: string
      description: '* `ignore` - ignore

        * `all` - all

        * `allowlist` - allowlist

        * `denylist` - denylist'
      title: FirewallBehaviorModeEnum
      x-extensible-enum:
      - ignore
      - all
      - allowlist
      - denylist
    CriterionOperatorEnum:
      enum:
      - does_not_exist
      - does_not_match
      - does_not_start_with
      - exists
      - is_equal
      - is_in_list
      - is_not_equal
      - is_not_in_list
      - matches
      - starts_with
      type: string
      description: '* `does_not_exist` - does_not_exist

        * `does_not_match` - does_not_match

        * `does_not_start_with` - does_not_start_with

        * `exists` - exists

        * `is_equal` - is_equal

        * `is_in_list` - is_in_list

        * `is_not_equal` - is_not_equal

        * `is_not_in_list` - is_not_in_list

        * `matches` - matches

        * `starts_with` - starts_with'
      title: CriterionOperatorEnum
      x-extensible-enum:
      - does_not_exist
      - does_not_match
      - does_not_start_with
      - exists
      - is_equal
      - is_in_list
      - is_not_equal
      - is_not_in_list
      - matches
      - starts_with
    OriginTypeEnum:
      enum:
      - http
      - storage
      - live_ingest
      type: string
      description: '* `http` - HTTP

        * `storage` - Storage

        * `live_ingest` - Live Ingest'
      title: OriginTypeEnum
      x-extensible-enum:
      - http
      - storage
      - live_ingest
    NetworkListTypeEnum:
      enum:
      - asn
      - countries
      - ip_cidr
      type: string
      description: '* `asn` - ASN

        * `countries` - Countries

        * `ip_cidr` - IP/CIDR'
      title: NetworkListTypeEnum
      x-extensible-enum:
      - asn
      - countries
      - ip_cidr
    ConnectorBase:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 255
          minLength: 1
        last_editor:
          type: string
          readOnly: true
          pattern: .*
          maxLength: 250
          minLength: 1
        last_modified:
          type: string
          format: date-time
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        active:
          type: boolean
          default: true
        product_version:
          type: string
          readOnly: true
          pattern: \d+\.\d+
          maxLength: 50
          minLength: 3
        type:
          allOf:
          - $ref: '#/components/schemas/OriginTypeEnum'
          description: 'Type of the connector


            * `http` - HTTP

            * `storage` - Storage

            * `live_ingest` - Live Ingest'
        attributes:
          $ref: '#/components/schemas/ConnectorStorageAttributes'
      required:
      - attributes
      - created_at
      - id
      - last_editor
      - last_modified
      - name
      - product_version
      - type
      title: ConnectorBase
      additionalProperties: false
    Connector:
      oneOf:
      - $ref: '#/components/schemas/ConnectorHTTP'
      - $ref: '#/components/schemas/ConnectorBase'
      discriminator:
        propertyName: type
        mapping:
          http: '#/components/schemas/ConnectorHTTP'
          storage: '#/components/schemas/ConnectorBase'
          live_ingest: '#/components/schemas/ConnectorBase'
      title: Connector
      additionalProperties: false
    ConnectorRequestBase:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 255
        active:
          type: boolean
          default: true
        type:
          allOf:
          - $ref: '#/components/schemas/OriginTypeEnum'
          description: 'Type of the connector


            * `http` - HTTP

            * `storage` - Storage

            * `live_ingest` - Live Ingest'
        attributes:
          $ref: '#/components/schemas/ConnectorStorageAttributesRequest'
      required:
      - attributes
      - name
      - type
      title: ConnectorRequestBase
      additionalProperties: false
    ConnectorRequest:
      oneOf:
      - $ref: '#/components/schemas/ConnectorHTTPRequest'
      - $ref: '#/components/schemas/ConnectorRequestBase'
      discriminator:
        propertyName: type
        mapping:
          http: '#/components/schemas/ConnectorHTTPRequest'
          storage: '#/components/schemas/ConnectorRequestBase'
          live_ingest: '#/components/schemas/ConnectorRequestBase'
      title: ConnectorRequest
      additionalProperties: false
    PageBase:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/CodeEnum'
        page:
          $ref: '#/components/schemas/Page'
      required:
      - code
      - page
      title: PageBase
      additionalProperties: false
    Page:
      oneOf:
      - $ref: '#/components/schemas/PageConnector'
      discriminator:
        propertyName: type
        mapping:
          page_connector: '#/components/schemas/PageConnector'
      title: Page
      additionalProperties: false
    PageRequestBase:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/CodeEnum'
        page:
          $ref: '#/components/schemas/PageRequest'
      required:
      - code
      - page
      title: PageRequestBase
      additionalProperties: false
    PageRequest:
      oneOf:
      - $ref: '#/components/schemas/PageConnectorRequest'
      discriminator:
        propertyName: type
        mapping:
          page_connector: '#/components/schemas/PageConnectorRequest'
      title: PageRequest
      additionalProperties: false
    PatchedConnectorRequestBase:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 255
        active:
          type: boolean
          default: true
        type:
          allOf:
          - $ref: '#/components/schemas/OriginTypeEnum'
          description: 'Type of the connector


            * `http` - HTTP

            * `storage` - Storage

            * `live_ingest` - Live Ingest'
        attributes:
          $ref: '#/components/schemas/ConnectorStorageAttributesRequest'
      title: PatchedConnectorRequestBase
      additionalProperties: false
      required:
      - type
    PatchedConnectorRequest:
      oneOf:
      - $ref: '#/components/schemas/PatchedConnectorHTTPRequest'
      - $ref: '#/components/schemas/PatchedConnectorRequestBase'
      discriminator:
        propertyName: type
        mapping:
          http: '#/components/schemas/PatchedConnectorHTTPRequest'
          storage: '#/components/schemas/PatchedConnectorRequestBase'
          live_ingest: '#/components/schemas/PatchedConnectorRequestBase'
      title: PatchedConnectorRequest
      additionalProperties: false
    ApplicationRequestPhaseRuleEngineOrder:
      type: object
      properties:
        order:
          type: array
          items:
            type: integer
            maximum: 9223372036854775807
            minimum: 1
            format: int64
      required:
      - order
      title: ApplicationRequestPhaseRuleEngineOrder
      additionalProperties: false
    ConnectorResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/Connector'
      required:
      - data
      title: ConnectorResponse
      additionalProperties: false
    ApplicationCriterionField:
      type: object
      description: 'The criterion which will be evaluated to define if the configured
        behaviors for this rule can be executed.


        | Variable | Description | Phase | Operators | Argument |

        | -------- | ----------- | ----- | --------- | ---------|

        | ${arg_&lt;name&gt;} | Use this variable to match a query param. Replace
        &lt;name&gt; with the specific query param you want to match, replacing any
        ''-'' with ''_''. Examples: ${arg_search}, ${arg_next}. | default, request,
        response | is_equal, is_not_equal, starts_with, does_not_start_with, matches,
        does_not_match, exists, does_not_exist | string |

        | ${args} |  | default, request, response | is_equal, is_not_equal, starts_with,
        does_not_start_with, matches, does_not_match, exists, does_not_exist | string
        |

        | ${cookie_&lt;name&gt;} | Use this variable to match cookies sent by the
        browser Cookie headers. Replace &lt;name&gt; with the specific cookie name
        you want to match, replacing any ''-'' with ''_''. Examples: cookie_session_id,
        cookie_user_pref. | default, request, response | is_equal, is_not_equal, starts_with,
        does_not_start_with, matches, does_not_match, exists, does_not_exist | string
        |

        | ${device_group} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${geoip_city_continent_code} |  | default, request, response | is_equal,
        is_not_equal, starts_with, does_not_start_with, matches, does_not_match, exists,
        does_not_exist | string |

        | ${geoip_city_country_code} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${geoip_city_country_name} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${geoip_city} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${geoip_continent_code} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${geoip_country_code} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${geoip_country_name} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${geoip_region_name} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${geoip_region} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${host} |  | default, request, response | is_equal, is_not_equal, starts_with,
        does_not_start_with, matches, does_not_match, exists, does_not_exist | string
        |

        | ${domain} |  | default, request, response | is_equal, is_not_equal, starts_with,
        does_not_start_with, matches, does_not_match, exists, does_not_exist | string
        |

        | ${http_&lt;header_name&gt;} | Use this variable to match HTTP headers. Replace
        &lt;header_name&gt; with the specific header you want to match, replacing
        any ''-'' with ''_''. Examples: http_authorization, http_accept, http_x_debug.
        | default, request, response | is_equal, is_not_equal, starts_with, does_not_start_with,
        matches, does_not_match, exists, does_not_exist | string |

        | ${remote_addr} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${remote_user} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${request_method} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${request_uri} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${request} |  | default, request, response | is_equal, is_not_equal, starts_with,
        does_not_start_with, matches, does_not_match, exists, does_not_exist | string
        |

        | ${scheme} |  | default, request, response | is_equal, is_not_equal, starts_with,
        does_not_start_with, matches, does_not_match, exists, does_not_exist | string
        |

        | ${sent_http_&lt;header_name&gt;} | Use this variable to match HTTP headers
        sent to origin server. Replace &lt;header_name&gt; with the specific header
        you want to match, replacing any ''-'' with ''_''. Examples: http_authorization,
        http_accept, http_x_debug. | response | is_equal, is_not_equal, starts_with,
        does_not_start_with, matches, does_not_match, exists, does_not_exist | string
        |

        | ${status} |  | response | is_equal, is_not_equal, starts_with, does_not_start_with,
        matches, does_not_match, exists, does_not_exist | string |

        | ${upstream_addr} |  | response | is_equal, is_not_equal, starts_with, does_not_start_with,
        matches, does_not_match, exists, does_not_exist | string |

        | ${upstream_cookie_&lt;name&gt;} | Use this variable to match cookies sent
        by the origin server in Set-Cookie headers. Replace &lt;name&gt; with the
        specific cookie you want to match, replacing any ''-'' with ''_''. Examples:
        ${upstream_cookie_mycookie}, ${upstream_cookie_user_info}. | response | is_equal,
        is_not_equal, starts_with, does_not_start_with, matches, does_not_match, exists,
        does_not_exist | string |

        | ${upstream_http_&lt;header_name&gt;} | Use this variable to match origin
        HTTP headers. Replace &lt;header_name&gt; with the specific header you want
        to match, replacing any ''-'' with ''_''. If many origins are consulted while
        the request is processed, only headers from the last origin are stored. Examples:
        http_authorization, http_accept, http_x_debug. | response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${upstream_status} |  | response | is_equal, is_not_equal, starts_with,
        does_not_start_with, matches, does_not_match, exists, does_not_exist | string
        |

        | ${uri} | The normalized (urldecoded) URI of the request. | default, request,
        response | is_equal, is_not_equal, starts_with, does_not_start_with, matches,
        does_not_match, exists, does_not_exist | string |

        | ${server_addr} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${server_port} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_cert} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_escaped_cert} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_fingerprint} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_i_dn} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_s_dn_parsed} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_s_dn} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_serial} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_v_end} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_v_remain} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_v_start} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_verify} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${tcpinfo_rtt} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${remote_port} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${request_body} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |



        About `operator` field: it''s the operator to be used to evaluate the current
        criterion. When used in the first criterion of a block it should be always
        the `if` operator.'
      properties:
        conditional:
          $ref: '#/components/schemas/ConditionalEnum'
        variable:
          $ref: '#/components/schemas/ApplicationCriterionFieldVariableEnum'
        operator:
          $ref: '#/components/schemas/CriterionOperatorEnum'
        argument:
          allOf:
          - $ref: '#/components/schemas/ApplicationCriterionArgument'
          nullable: true
          type: object
      required:
      - conditional
      - operator
      - variable
      title: ApplicationCriterionField
      additionalProperties: false
    ApplicationCriterionFieldRequest:
      type: object
      description: 'The criterion which will be evaluated to define if the configured
        behaviors for this rule can be executed.


        | Variable | Description | Phase | Operators | Argument |

        | -------- | ----------- | ----- | --------- | ---------|

        | ${arg_&lt;name&gt;} | Use this variable to match a query param. Replace
        &lt;name&gt; with the specific query param you want to match, replacing any
        ''-'' with ''_''. Examples: ${arg_search}, ${arg_next}. | default, request,
        response | is_equal, is_not_equal, starts_with, does_not_start_with, matches,
        does_not_match, exists, does_not_exist | string |

        | ${args} |  | default, request, response | is_equal, is_not_equal, starts_with,
        does_not_start_with, matches, does_not_match, exists, does_not_exist | string
        |

        | ${cookie_&lt;name&gt;} | Use this variable to match cookies sent by the
        browser Cookie headers. Replace &lt;name&gt; with the specific cookie name
        you want to match, replacing any ''-'' with ''_''. Examples: cookie_session_id,
        cookie_user_pref. | default, request, response | is_equal, is_not_equal, starts_with,
        does_not_start_with, matches, does_not_match, exists, does_not_exist | string
        |

        | ${device_group} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${geoip_city_continent_code} |  | default, request, response | is_equal,
        is_not_equal, starts_with, does_not_start_with, matches, does_not_match, exists,
        does_not_exist | string |

        | ${geoip_city_country_code} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${geoip_city_country_name} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${geoip_city} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${geoip_continent_code} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${geoip_country_code} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${geoip_country_name} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${geoip_region_name} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${geoip_region} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${host} |  | default, request, response | is_equal, is_not_equal, starts_with,
        does_not_start_with, matches, does_not_match, exists, does_not_exist | string
        |

        | ${domain} |  | default, request, response | is_equal, is_not_equal, starts_with,
        does_not_start_with, matches, does_not_match, exists, does_not_exist | string
        |

        | ${http_&lt;header_name&gt;} | Use this variable to match HTTP headers. Replace
        &lt;header_name&gt; with the specific header you want to match, replacing
        any ''-'' with ''_''. Examples: http_authorization, http_accept, http_x_debug.
        | default, request, response | is_equal, is_not_equal, starts_with, does_not_start_with,
        matches, does_not_match, exists, does_not_exist | string |

        | ${remote_addr} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${remote_user} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${request_method} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${request_uri} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${request} |  | default, request, response | is_equal, is_not_equal, starts_with,
        does_not_start_with, matches, does_not_match, exists, does_not_exist | string
        |

        | ${scheme} |  | default, request, response | is_equal, is_not_equal, starts_with,
        does_not_start_with, matches, does_not_match, exists, does_not_exist | string
        |

        | ${sent_http_&lt;header_name&gt;} | Use this variable to match HTTP headers
        sent to origin server. Replace &lt;header_name&gt; with the specific header
        you want to match, replacing any ''-'' with ''_''. Examples: http_authorization,
        http_accept, http_x_debug. | response | is_equal, is_not_equal, starts_with,
        does_not_start_with, matches, does_not_match, exists, does_not_exist | string
        |

        | ${status} |  | response | is_equal, is_not_equal, starts_with, does_not_start_with,
        matches, does_not_match, exists, does_not_exist | string |

        | ${upstream_addr} |  | response | is_equal, is_not_equal, starts_with, does_not_start_with,
        matches, does_not_match, exists, does_not_exist | string |

        | ${upstream_cookie_&lt;name&gt;} | Use this variable to match cookies sent
        by the origin server in Set-Cookie headers. Replace &lt;name&gt; with the
        specific cookie you want to match, replacing any ''-'' with ''_''. Examples:
        ${upstream_cookie_mycookie}, ${upstream_cookie_user_info}. | response | is_equal,
        is_not_equal, starts_with, does_not_start_with, matches, does_not_match, exists,
        does_not_exist | string |

        | ${upstream_http_&lt;header_name&gt;} | Use this variable to match origin
        HTTP headers. Replace &lt;header_name&gt; with the specific header you want
        to match, replacing any ''-'' with ''_''. If many origins are consulted while
        the request is processed, only headers from the last origin are stored. Examples:
        http_authorization, http_accept, http_x_debug. | response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${upstream_status} |  | response | is_equal, is_not_equal, starts_with,
        does_not_start_with, matches, does_not_match, exists, does_not_exist | string
        |

        | ${uri} | The normalized (urldecoded) URI of the request. | default, request,
        response | is_equal, is_not_equal, starts_with, does_not_start_with, matches,
        does_not_match, exists, does_not_exist | string |

        | ${server_addr} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${server_port} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_cert} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_escaped_cert} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_fingerprint} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_i_dn} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_s_dn_parsed} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_s_dn} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_serial} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_v_end} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_v_remain} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_v_start} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${ssl_client_verify} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${tcpinfo_rtt} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${remote_port} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |

        | ${request_body} |  | default, request, response | is_equal, is_not_equal,
        starts_with, does_not_start_with, matches, does_not_match, exists, does_not_exist
        | string |



        About `operator` field: it''s the operator to be used to evaluate the current
        criterion. When used in the first criterion of a block it should be always
        the `if` operator.'
      properties:
        conditional:
          $ref: '#/components/schemas/ConditionalEnum'
        variable:
          $ref: '#/components/schemas/ApplicationCriterionFieldVariableEnum'
        operator:
          $ref: '#/components/schemas/CriterionOperatorEnum'
        argument:
          allOf:
          - $ref: '#/components/schemas/ApplicationCriterionArgumentRequest'
          nullable: true
          type: object
      required:
      - conditional
      - operator
      - variable
      title: ApplicationCriterionFieldRequest
      additionalProperties: false
    ApplicationCriterionFieldVariableEnum:
      enum:
      - $(arg_<name>)
      - $(args)
      - $(cookie_<name>)
      - $(device_group)
      - $(geoip_city_continent_code)
      - $(geoip_city_country_code)
      - $(geoip_city_country_name)
      - $(geoip_city)
      - $(geoip_continent_code)
      - $(geoip_country_code)
      - $(geoip_country_name)
      - $(geoip_region_name)
      - $(geoip_region)
      - $(host)
      - $(domain)
      - $(http_<header_name>)
      - $(remote_addr)
      - $(remote_user)
      - $(request_method)
      - $(request_uri)
      - $(request)
      - $(scheme)
      - $(sent_http_<header_name>)
      - $(status)
      - $(upstream_addr)
      - $(upstream_cookie_<name>)
      - $(upstream_http_<header_name>)
      - $(upstream_status)
      - $(uri)
      - $(server_addr)
      - $(server_port)
      - $(ssl_client_cert)
      - $(ssl_client_escaped_cert)
      - $(ssl_client_fingerprint)
      - $(ssl_client_i_dn)
      - $(ssl_client_s_dn_parsed)
      - $(ssl_client_s_dn)
      - $(ssl_client_serial)
      - $(ssl_client_v_end)
      - $(ssl_client_v_remain)
      - $(ssl_client_v_start)
      - $(ssl_client_verify)
      - $(tcpinfo_rtt)
      - $(remote_port)
      - $(request_body)
      type: string
      description: '* `$(arg_<name>)` - $(arg_<name>)

        * `$(args)` - $(args)

        * `$(cookie_<name>)` - $(cookie_<name>)

        * `$(device_group)` - $(device_group)

        * `$(geoip_city_continent_code)` - $(geoip_city_continent_code)

        * `$(geoip_city_country_code)` - $(geoip_city_country_code)

        * `$(geoip_city_country_name)` - $(geoip_city_country_name)

        * `$(geoip_city)` - $(geoip_city)

        * `$(geoip_continent_code)` - $(geoip_continent_code)

        * `$(geoip_country_code)` - $(geoip_country_code)

        * `$(geoip_country_name)` - $(geoip_country_name)

        * `$(geoip_region_name)` - $(geoip_region_name)

        * `$(geoip_region)` - $(geoip_region)

        * `$(host)` - $(host)

        * `$(domain)` - $(domain)

        * `$(http_<header_name>)` - $(http_<header_name>)

        * `$(remote_addr)` - $(remote_addr)

        * `$(remote_user)` - $(remote_user)

        * `$(request_method)` - $(request_method)

        * `$(request_uri)` - $(request_uri)

        * `$(request)` - $(request)

        * `$(scheme)` - $(scheme)

        * `$(sent_http_<header_name>)` - $(sent_http_<header_name>)

        * `$(status)` - $(status)

        * `$(upstream_addr)` - $(upstream_addr)

        * `$(upstream_cookie_<name>)` - $(upstream_cookie_<name>)

        * `$(upstream_http_<header_name>)` - $(upstream_http_<header_name>)

        * `$(upstream_status)` - $(upstream_status)

        * `$(uri)` - $(uri)

        * `$(server_addr)` - $(server_addr)

        * `$(server_port)` - $(server_port)

        * `$(ssl_client_cert)` - $(ssl_client_cert)

        * `$(ssl_client_escaped_cert)` - $(ssl_client_escaped_cert)

        * `$(ssl_client_fingerprint)` - $(ssl_client_fingerprint)

        * `$(ssl_client_i_dn)` - $(ssl_client_i_dn)

        * `$(ssl_client_s_dn_parsed)` - $(ssl_client_s_dn_parsed)

        * `$(ssl_client_s_dn)` - $(ssl_client_s_dn)

        * `$(ssl_client_serial)` - $(ssl_client_serial)

        * `$(ssl_client_v_end)` - $(ssl_client_v_end)

        * `$(ssl_client_v_remain)` - $(ssl_client_v_remain)

        * `$(ssl_client_v_start)` - $(ssl_client_v_start)

        * `$(ssl_client_verify)` - $(ssl_client_verify)

        * `$(tcpinfo_rtt)` - $(tcpinfo_rtt)

        * `$(remote_port)` - $(remote_port)

        * `$(request_body)` - $(request_body)'
      title: ApplicationCriterionFieldVariableEnum
      x-extensible-enum:
      - $(arg_<name>)
      - $(args)
      - $(cookie_<name>)
      - $(device_group)
      - $(geoip_city_continent_code)
      - $(geoip_city_country_code)
      - $(geoip_city_country_name)
      - $(geoip_city)
      - $(geoip_continent_code)
      - $(geoip_country_code)
      - $(geoip_country_name)
      - $(geoip_region_name)
      - $(geoip_region)
      - $(host)
      - $(domain)
      - $(http_<header_name>)
      - $(remote_addr)
      - $(remote_user)
      - $(request_method)
      - $(request_uri)
      - $(request)
      - $(scheme)
      - $(sent_http_<header_name>)
      - $(status)
      - $(upstream_addr)
      - $(upstream_cookie_<name>)
      - $(upstream_http_<header_name>)
      - $(upstream_status)
      - $(uri)
      - $(server_addr)
      - $(server_port)
      - $(ssl_client_cert)
      - $(ssl_client_escaped_cert)
      - $(ssl_client_fingerprint)
      - $(ssl_client_i_dn)
      - $(ssl_client_s_dn_parsed)
      - $(ssl_client_s_dn)
      - $(ssl_client_serial)
      - $(ssl_client_v_end)
      - $(ssl_client_v_remain)
      - $(ssl_client_v_start)
      - $(ssl_client_verify)
      - $(tcpinfo_rtt)
      - $(remote_port)
      - $(request_body)
    ApplicationCriterionArgument:
      nullable: true
      title: ApplicationCriterionArgument
      additionalProperties: false
      anyOf:
      - type: integer
        format: int64
      - type: string
    ApplicationCriterionArgumentRequest:
      nullable: true
      title: ApplicationCriterionArgumentRequest
      additionalProperties: false
      anyOf:
      - type: integer
        format: int64
      - type: string
    FirewallCriterionField:
      type: object
      description: 'The criterion which will be evaluated to define if the configured
        behaviors for this rule can be executed.


        | Variable | Description | Operators | Argument |

        | -------- | ----------- | --------- | ---------|

        | ${header_accept} |  | matches, does_not_match | string |

        | ${header_accept_encoding} |  | matches, does_not_match | string |

        | ${header_accept_language} |  | matches, does_not_match | string |

        | ${header_cookie} |  | matches, does_not_match | string |

        | ${header_origin} |  | matches, does_not_match | string |

        | ${header_referer} |  | matches, does_not_match | string |

        | ${header_user_agent} |  | matches, does_not_match | string |

        | ${host} |  | is_equal, is_not_equal, matches, does_not_match | string |

        | ${network} |  | is_in_list, is_not_in_list | string |

        | ${request_args} |  | is_equal, is_not_equal, matches, does_not_match, exists,
        does_not_exist | string |

        | ${request_method} |  | is_equal, is_not_equal | string |

        | ${request_uri} |  | starts_with, does_not_starts_with, is_equal, is_not_equal,
        matches, does_not_match | string |

        | ${scheme} |  | is_equal, is_not_equal | string |

        | ${ssl_verification_status} |  | is_equal, is_not_equal | SUCCESS, CERTIFICATE_VERIFICATION_ERROR,
        MISSING_CLIENT_CERTIFICATE |

        | ${client_certificate_validation} |  | is_equal, is_not_equal | string |



        About `operator` field: it''s the operator to be used to evaluate the current
        criterion. When used in the first criterion of a block it should be always
        the `if` operator.'
      properties:
        conditional:
          $ref: '#/components/schemas/ConditionalEnum'
        variable:
          $ref: '#/components/schemas/FirewallCriterionFieldVariableEnum'
        operator:
          $ref: '#/components/schemas/CriterionOperatorEnum'
        argument:
          allOf:
          - $ref: '#/components/schemas/FirewallCriterionArgument'
          nullable: true
          type: object
      required:
      - conditional
      - operator
      - variable
      title: FirewallCriterionField
      additionalProperties: false
    FirewallCriterionFieldRequest:
      type: object
      description: 'The criterion which will be evaluated to define if the configured
        behaviors for this rule can be executed.


        | Variable | Description | Operators | Argument |

        | -------- | ----------- | --------- | ---------|

        | ${header_accept} |  | matches, does_not_match | string |

        | ${header_accept_encoding} |  | matches, does_not_match | string |

        | ${header_accept_language} |  | matches, does_not_match | string |

        | ${header_cookie} |  | matches, does_not_match | string |

        | ${header_origin} |  | matches, does_not_match | string |

        | ${header_referer} |  | matches, does_not_match | string |

        | ${header_user_agent} |  | matches, does_not_match | string |

        | ${host} |  | is_equal, is_not_equal, matches, does_not_match | string |

        | ${network} |  | is_in_list, is_not_in_list | string |

        | ${request_args} |  | is_equal, is_not_equal, matches, does_not_match, exists,
        does_not_exist | string |

        | ${request_method} |  | is_equal, is_not_equal | string |

        | ${request_uri} |  | starts_with, does_not_starts_with, is_equal, is_not_equal,
        matches, does_not_match | string |

        | ${scheme} |  | is_equal, is_not_equal | string |

        | ${ssl_verification_status} |  | is_equal, is_not_equal | SUCCESS, CERTIFICATE_VERIFICATION_ERROR,
        MISSING_CLIENT_CERTIFICATE |

        | ${client_certificate_validation} |  | is_equal, is_not_equal | string |



        About `operator` field: it''s the operator to be used to evaluate the current
        criterion. When used in the first criterion of a block it should be always
        the `if` operator.'
      properties:
        conditional:
          $ref: '#/components/schemas/ConditionalEnum'
        variable:
          $ref: '#/components/schemas/FirewallCriterionFieldVariableEnum'
        operator:
          $ref: '#/components/schemas/CriterionOperatorEnum'
        argument:
          allOf:
          - $ref: '#/components/schemas/FirewallCriterionArgumentRequest'
          nullable: true
          type: object
      required:
      - conditional
      - operator
      - variable
      title: FirewallCriterionFieldRequest
      additionalProperties: false
    FirewallCriterionFieldVariableEnum:
      enum:
      - $(header_accept)
      - $(header_accept_encoding)
      - $(header_accept_language)
      - $(header_cookie)
      - $(header_origin)
      - $(header_referer)
      - $(header_user_agent)
      - $(host)
      - $(network)
      - $(request_args)
      - $(request_method)
      - $(request_uri)
      - $(scheme)
      - $(ssl_verification_status)
      - $(client_certificate_validation)
      type: string
      description: '* `$(header_accept)` - $(header_accept)

        * `$(header_accept_encoding)` - $(header_accept_encoding)

        * `$(header_accept_language)` - $(header_accept_language)

        * `$(header_cookie)` - $(header_cookie)

        * `$(header_origin)` - $(header_origin)

        * `$(header_referer)` - $(header_referer)

        * `$(header_user_agent)` - $(header_user_agent)

        * `$(host)` - $(host)

        * `$(network)` - $(network)

        * `$(request_args)` - $(request_args)

        * `$(request_method)` - $(request_method)

        * `$(request_uri)` - $(request_uri)

        * `$(scheme)` - $(scheme)

        * `$(ssl_verification_status)` - $(ssl_verification_status)

        * `$(client_certificate_validation)` - $(client_certificate_validation)'
      title: FirewallCriterionFieldVariableEnum
      x-extensible-enum:
      - $(header_accept)
      - $(header_accept_encoding)
      - $(header_accept_language)
      - $(header_cookie)
      - $(header_origin)
      - $(header_referer)
      - $(header_user_agent)
      - $(host)
      - $(network)
      - $(request_args)
      - $(request_method)
      - $(request_uri)
      - $(scheme)
      - $(ssl_verification_status)
      - $(client_certificate_validation)
    FirewallCriterionArgument:
      nullable: true
      title: FirewallCriterionArgument
      additionalProperties: false
      anyOf:
      - enum:
        - SUCCESS
        - CERTIFICATE_VERIFICATION_ERROR
        - MISSING_CLIENT_CERTIFICATE
        type: string
        description: These values are only valid when using ${ssl_verification_status}
          variable.
        x-extensible-enum:
        - SUCCESS
        - CERTIFICATE_VERIFICATION_ERROR
        - MISSING_CLIENT_CERTIFICATE
      - type: integer
        format: int64
      - type: string
    FirewallCriterionArgumentRequest:
      nullable: true
      title: FirewallCriterionArgumentRequest
      additionalProperties: false
      anyOf:
      - enum:
        - SUCCESS
        - CERTIFICATE_VERIFICATION_ERROR
        - MISSING_CLIENT_CERTIFICATE
        type: string
        description: These values are only valid when using ${ssl_verification_status}
          variable.
        x-extensible-enum:
        - SUCCESS
        - CERTIFICATE_VERIFICATION_ERROR
        - MISSING_CLIENT_CERTIFICATE
      - type: integer
        format: int64
      - type: string
    PaginatedConnectorList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/Connector'
      title: PaginatedConnectorList
      additionalProperties: false
    PatchedRequestPhaseRule:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          pattern: .*
          maxLength: 250
        active:
          type: boolean
          default: true
        criteria:
          type: array
          items:
            type: array
            items:
              $ref: '#/components/schemas/ApplicationCriterionFieldRequest'
            maxItems: 10
            minItems: 1
          maxItems: 5
          minItems: 1
        behaviors:
          type: array
          items:
            $ref: '#/components/schemas/RequestPhaseBehaviorRequest'
          maxItems: 10
          minItems: 1
        description:
          type: string
          pattern: .*
          maxLength: 1000
          minLength: 0
      title: PatchedRequestPhaseRule
      additionalProperties: false
    WAFExceptionCondition:
      oneOf:
      - $ref: '#/components/schemas/WAFExceptionGenericCondition'
      - $ref: '#/components/schemas/WAFExceptionSpecificConditionOnName'
      - $ref: '#/components/schemas/WAFExceptionSpecificConditionOnValue'
      discriminator:
        propertyName: match
        mapping:
          any_http_header_name: '#/components/schemas/WAFExceptionGenericCondition'
          any_http_header_value: '#/components/schemas/WAFExceptionGenericCondition'
          any_query_string_name: '#/components/schemas/WAFExceptionGenericCondition'
          any_query_string_value: '#/components/schemas/WAFExceptionGenericCondition'
          any_url: '#/components/schemas/WAFExceptionGenericCondition'
          body_form_field_name: '#/components/schemas/WAFExceptionGenericCondition'
          body_form_field_value: '#/components/schemas/WAFExceptionGenericCondition'
          file_extension: '#/components/schemas/WAFExceptionGenericCondition'
          raw_body: '#/components/schemas/WAFExceptionGenericCondition'
          specific_body_form_field_name: '#/components/schemas/WAFExceptionSpecificConditionOnName'
          specific_body_form_field_value: '#/components/schemas/WAFExceptionSpecificConditionOnValue'
          specific_http_header_name: '#/components/schemas/WAFExceptionSpecificConditionOnName'
          specific_http_header_value: '#/components/schemas/WAFExceptionSpecificConditionOnValue'
          specific_query_string_name: '#/components/schemas/WAFExceptionSpecificConditionOnName'
          specific_query_string_value: '#/components/schemas/WAFExceptionSpecificConditionOnValue'
      title: WAFExceptionCondition
      additionalProperties: false
    WAFExceptionConditionRequest:
      oneOf:
      - $ref: '#/components/schemas/WAFExceptionGenericConditionRequest'
      - $ref: '#/components/schemas/WAFExceptionSpecificConditionOnNameRequest'
      - $ref: '#/components/schemas/WAFExceptionSpecificConditionOnValueRequest'
      discriminator:
        propertyName: match
        mapping:
          any_http_header_name: '#/components/schemas/WAFExceptionGenericConditionRequest'
          any_http_header_value: '#/components/schemas/WAFExceptionGenericConditionRequest'
          any_query_string_name: '#/components/schemas/WAFExceptionGenericConditionRequest'
          any_query_string_value: '#/components/schemas/WAFExceptionGenericConditionRequest'
          any_url: '#/components/schemas/WAFExceptionGenericConditionRequest'
          body_form_field_name: '#/components/schemas/WAFExceptionGenericConditionRequest'
          body_form_field_value: '#/components/schemas/WAFExceptionGenericConditionRequest'
          file_extension: '#/components/schemas/WAFExceptionGenericConditionRequest'
          raw_body: '#/components/schemas/WAFExceptionGenericConditionRequest'
          specific_body_form_field_name: '#/components/schemas/WAFExceptionSpecificConditionOnNameRequest'
          specific_body_form_field_value: '#/components/schemas/WAFExceptionSpecificConditionOnValueRequest'
          specific_http_header_name: '#/components/schemas/WAFExceptionSpecificConditionOnNameRequest'
          specific_http_header_value: '#/components/schemas/WAFExceptionSpecificConditionOnValueRequest'
          specific_query_string_name: '#/components/schemas/WAFExceptionSpecificConditionOnNameRequest'
          specific_query_string_value: '#/components/schemas/WAFExceptionSpecificConditionOnValueRequest'
      title: WAFExceptionConditionRequest
      additionalProperties: false
    DatabaseDetail:
      type: object
      description: Detailed database representation with extended status information.
      properties:
        id:
          type: integer
          readOnly: true
          description: Unique identifier for the database
          format: int64
        name:
          type: string
          description: Name of the database
          pattern: ^[A-Za-z0-9-]{6,50}$
          maxLength: 50
          minLength: 6
        status:
          enum:
          - creating
          - created
          - deleting
          type: string
          readOnly: true
          default: creating
          description: 'Current status of the database


            * `creating` - creating

            * `created` - created

            * `deleting` - deleting'
          x-extensible-enum:
          - creating
          - created
          - deleting
        active:
          type: boolean
          default: true
          description: Whether the database is active
        last_modified:
          type: string
          format: date-time
          readOnly: true
          description: Last modification timestamp
        last_editor:
          type: string
          readOnly: true
          nullable: true
          description: Last editor of the schema.
        product_version:
          type: string
          readOnly: true
          description: Product version
      required:
      - id
      - last_editor
      - last_modified
      - name
      - product_version
      - status
      additionalProperties: false
    DatabaseDetailResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/DatabaseDetail'
      required:
      - data
      additionalProperties: false
    DatabaseRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 6
          description: Name of the database
          pattern: ^[A-Za-z0-9-]{6,50}$
          maxLength: 50
        active:
          type: boolean
          default: true
          description: Whether the database is active
      required:
      - name
      additionalProperties: false
    JSONAPIErrorObject:
      type: object
      description: Serializer for a single JSON:API error object.
      properties:
        status:
          type: string
          description: The HTTP status code applicable to this problem
          pattern: ^\d{3}$
          maxLength: 3
          minLength: 3
        code:
          type: string
          description: An application-specific error code
          pattern: ^\d{5}$
          maxLength: 5
          minLength: 5
        title:
          type: string
          description: A short, human-readable summary of the problem
          pattern: ^.*$
          maxLength: 4096
          minLength: 1
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of
            the problem
          pattern: ^.*$
          maxLength: 4096
          minLength: 1
        source:
          allOf:
          - $ref: '#/components/schemas/JSONAPIErrorSource'
          description: References to the primary source of the error
        meta:
          type: object
          additionalProperties: {}
          description: Non-standard meta-information about the error
      additionalProperties: false
    JSONAPIErrorSource:
      type: object
      description: Serializer for the 'source' object in a JSON:API error.
      properties:
        pointer:
          type: string
          description: JSON Pointer to the value in the request document that caused
            the error
          pattern: ^(/[^/]+)+$
          maxLength: 4096
          minLength: 1
        parameter:
          type: string
          description: URI query parameter that caused the error
          pattern: ^.*$
          maxLength: 4096
          minLength: 1
        header:
          type: string
          description: Request header name that caused the error
          pattern: ^.*$
          maxLength: 4096
          minLength: 1
      additionalProperties: false
    PaginatedDatabaseDetailList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
        results:
          type: array
          items:
            $ref: '#/components/schemas/DatabaseDetail'
      additionalProperties: false
    SQLResult:
      type: object
      properties:
        columns:
          type: array
          items: {}
          description: List of column names
        rows:
          type: array
          items: {}
          description: List of result rows
      required:
      - columns
      - rows
      additionalProperties: false
    SQLResultResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/SQLResult'
      required:
      - data
      additionalProperties: false
    SQLStatementsRequest:
      type: object
      properties:
        statements:
          type: array
          items:
            type: string
            minLength: 1
          description: List of SQL statements to execute
          maxItems: 1000
      required:
      - statements
      additionalProperties: false
    ErrorResponse:
      type: object
      description: Serializer for a JSON:API error response.
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/JSONAPIErrorObject'
          description: Array of error objects
      required:
      - errors
      additionalProperties: false
    Bucket:
      type: object
      properties:
        name:
          type: string
          readOnly: true
          maxLength: 63
          minLength: 6
          pattern: ^.*$
        workloads_access:
          enum:
          - read_only
          - read_write
          - restricted
          type: string
          description: '* `read_only` - read_only

            * `read_write` - read_write

            * `restricted` - restricted'
          x-extensible-enum:
          - read_only
          - read_write
          - restricted
        last_editor:
          type: string
          readOnly: true
          pattern: ^.*$
        last_modified:
          type: string
          format: date-time
          readOnly: true
          pattern: ^.*$
        product_version:
          type: string
          readOnly: true
          default: '1.0'
          pattern: \d+\.\d+
          maxLength: 50
          minLength: 3
      required:
      - last_editor
      - last_modified
      - name
      - product_version
      - workloads_access
      additionalProperties: false
    BucketCreate:
      type: object
      properties:
        name:
          type: string
          pattern: .{6,63}
          maxLength: 63
          minLength: 6
        workloads_access:
          enum:
          - read_only
          - read_write
          - restricted
          type: string
          description: '* `read_only` - read_only

            * `read_write` - read_write

            * `restricted` - restricted'
          x-extensible-enum:
          - read_only
          - read_write
          - restricted
        last_editor:
          type: string
          readOnly: true
          pattern: ^.*$
        last_modified:
          type: string
          format: date-time
          readOnly: true
          pattern: ^.*$
        product_version:
          type: string
          readOnly: true
          default: '1.0'
          pattern: \d+\.\d+
          maxLength: 50
          minLength: 3
      required:
      - last_editor
      - last_modified
      - name
      - product_version
      - workloads_access
      additionalProperties: false
    BucketCreateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 6
          pattern: .{6,63}
          maxLength: 63
        workloads_access:
          enum:
          - read_only
          - read_write
          - restricted
          type: string
          description: '* `read_only` - read_only

            * `read_write` - read_write

            * `restricted` - restricted'
          x-extensible-enum:
          - read_only
          - read_write
          - restricted
      required:
      - name
      - workloads_access
      additionalProperties: false
    BucketCreateResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/BucketCreate'
      required:
      - data
      additionalProperties: false
    BucketObject:
      type: object
      properties:
        key:
          type: string
          readOnly: true
          pattern: ^.*$
        last_modified:
          type: string
          format: date-time
          readOnly: true
          pattern: ^.*$
        size:
          type: integer
          readOnly: true
          description: Size of the object in bytes
          format: int64
        is_folder:
          type: boolean
          readOnly: true
          description: Whether this entry represents a folder
      required:
      - is_folder
      - key
      - last_modified
      - size
      additionalProperties: false
    ObjectResponseAsyncData:
      type: object
      properties:
        object_key:
          type: string
          pattern: ^[\w\s\-_.!@#$%^&*()+=\[\]{}|\\:;"\'<>,?/`~]+$
          maxLength: 1024
          minLength: 1
      required:
      - object_key
      additionalProperties: false
    ObjectResponseData:
      type: object
      properties:
        object_key:
          type: string
          pattern: ^[\w\s\-_.!@#$%^&*()+=\[\]{}|\\:;"\'<>,?/`~]+$
          maxLength: 1024
          minLength: 1
      required:
      - object_key
      additionalProperties: false
    PaginatedBucketList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
          pattern: ^.*$
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
          pattern: ^.*$
        results:
          type: array
          items:
            $ref: '#/components/schemas/Bucket'
      additionalProperties: false
    PatchedBucketRequest:
      type: object
      properties:
        workloads_access:
          enum:
          - read_only
          - read_write
          - restricted
          type: string
          description: '* `read_only` - read_only

            * `read_write` - read_write

            * `restricted` - restricted'
          x-extensible-enum:
          - read_only
          - read_write
          - restricted
      additionalProperties: false
    ResponseBucketObject:
      type: object
      properties:
        continuation_token:
          type: string
          nullable: true
          pattern: .{0,255}
          maxLength: 255
          minLength: 0
        results:
          type: array
          items:
            $ref: '#/components/schemas/BucketObject'
      required:
      - continuation_token
      - results
      additionalProperties: false
    SuccessObjectOperation:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/ObjectResponseData'
      required:
      - data
      additionalProperties: false
    SuccessObjectOperationAsync:
      type: object
      properties:
        state:
          type: string
          default: pending
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/ObjectResponseAsyncData'
      required:
      - data
      additionalProperties: false
    Certificate:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        certificate:
          type: string
          nullable: true
          pattern: .*
          maxLength: 1000000
          minLength: 1
        private_key:
          type: string
          writeOnly: true
          nullable: true
          pattern: .*
          maxLength: 64000
          minLength: 1
        issuer:
          type: string
          readOnly: true
          nullable: true
          pattern: .*
        subject_name:
          type: array
          items:
            type: string
            pattern: ^.*$
          readOnly: true
        validity:
          type: string
          readOnly: true
          nullable: true
          pattern: ^.*$
        type:
          enum:
          - certificate
          - trusted_ca_certificate
          type: string
          default: certificate
          description: 'The value can''t be changed after the certificate creation.


            * `certificate` - Certificate

            * `trusted_ca_certificate` - Trusted CA Certificate'
          x-extensible-enum:
          - certificate
          - trusted_ca_certificate
        managed:
          type: boolean
          readOnly: true
          default: false
        status:
          enum:
          - pending
          - challenge_verification
          - active
          - inactive
          - expired
          - failed
          type: string
          description: '* `pending` - Pending

            * `challenge_verification` - Challenge Verification

            * `active` - Active

            * `inactive` - Inactive

            * `expired` - Expired

            * `failed` - Failed'
          readOnly: true
          x-extensible-enum:
          - pending
          - challenge_verification
          - active
          - inactive
          - expired
          - failed
        status_detail:
          type: string
          readOnly: true
          default: ''
          pattern: .*
          maxLength: 500
          minLength: 0
        csr:
          type: string
          readOnly: true
          nullable: true
          pattern: .*
        challenge:
          enum:
          - dns
          - http
          type: string
          description: '* `dns` - Uses DNS to solve the ACME challenge.

            * `http` - Uses HTTP to solve the ACME challenge.'
          readOnly: true
          x-extensible-enum:
          - dns
          - http
        authority:
          enum:
          - lets_encrypt
          type: string
          description: '* `lets_encrypt` - lets_encrypt'
          readOnly: true
          x-extensible-enum:
          - lets_encrypt
        key_algorithm:
          type: string
          readOnly: true
          pattern: .*
        active:
          type: boolean
        product_version:
          type: string
          readOnly: true
          pattern: \d+\.\d+
          maxLength: 50
          minLength: 3
        last_editor:
          type: string
          readOnly: true
          pattern: ^.*$
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp of the certificate creation on the platform.
          pattern: ^.*$
        last_modified:
          type: string
          format: date-time
          readOnly: true
          description: Timestamp of the last modification made to the certificate
            content on the platform.
          pattern: ^.*$
        renewed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp indicating when the managed certificate was renewed
            on our platform.
          pattern: ^.*$
      required:
      - authority
      - challenge
      - created_at
      - csr
      - id
      - issuer
      - key_algorithm
      - last_editor
      - last_modified
      - managed
      - name
      - product_version
      - renewed_at
      - status
      - status_detail
      - subject_name
      - validity
      additionalProperties: false
    CertificateRequest:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        certificate:
          type: string
          nullable: true
          pattern: .*
          maxLength: 1000000
          minLength: 1
        private_key:
          type: string
          writeOnly: true
          nullable: true
          pattern: .*
          maxLength: 64000
          minLength: 1
        issuer:
          type: string
          readOnly: true
          nullable: true
          pattern: .*
        subject_name:
          type: array
          items:
            type: string
            pattern: ^.*$
          readOnly: true
        validity:
          type: string
          readOnly: true
          nullable: true
          pattern: ^.*$
        type:
          enum:
          - certificate
          - trusted_ca_certificate
          type: string
          default: certificate
          description: 'The value can''t be changed after the certificate creation.


            * `certificate` - Certificate

            * `trusted_ca_certificate` - Trusted CA Certificate'
          x-extensible-enum:
          - certificate
          - trusted_ca_certificate
        managed:
          type: boolean
          readOnly: true
          default: false
        status:
          enum:
          - pending
          - challenge_verification
          - active
          - inactive
          - expired
          - failed
          type: string
          description: '* `pending` - Pending

            * `challenge_verification` - Challenge Verification

            * `active` - Active

            * `inactive` - Inactive

            * `expired` - Expired

            * `failed` - Failed'
          readOnly: true
          x-extensible-enum:
          - pending
          - challenge_verification
          - active
          - inactive
          - expired
          - failed
        status_detail:
          type: string
          readOnly: true
          default: ''
          pattern: .*
          maxLength: 500
          minLength: 0
        csr:
          type: string
          readOnly: true
          nullable: true
          pattern: .*
        challenge:
          enum:
          - dns
          - http
          type: string
          description: '* `dns` - Uses DNS to solve the ACME challenge.

            * `http` - Uses HTTP to solve the ACME challenge.'
          x-extensible-enum:
          - dns
          - http
        authority:
          enum:
          - lets_encrypt
          type: string
          description: '* `lets_encrypt` - lets_encrypt'
          x-extensible-enum:
          - lets_encrypt
        key_algorithm:
          enum:
          - rsa_2048
          - rsa_4096
          - ecc_384
          type: string
          description: '* `rsa_2048` - 2048-bit RSA

            * `rsa_4096` - 4096-bit RSA

            * `ecc_384` - 384-bit Prime Field Curve'
          default: ecc_384
          x-extensible-enum:
          - rsa_2048
          - rsa_4096
          - ecc_384
        active:
          type: boolean
        product_version:
          type: string
          readOnly: true
          pattern: \d+\.\d+
          maxLength: 50
          minLength: 3
        last_editor:
          type: string
          readOnly: true
          pattern: ^.*$
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp of the certificate creation on the platform.
          pattern: ^.*$
        last_modified:
          type: string
          format: date-time
          readOnly: true
          description: Timestamp of the last modification made to the certificate
            content on the platform.
          pattern: ^.*$
        renewed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp indicating when the managed certificate was renewed
            on our platform.
          pattern: ^.*$
        common_name:
          type: string
          writeOnly: true
          maxLength: 64
          minLength: 1
          pattern: ^(((\*\.)?[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)$
        alternative_names:
          type: array
          items:
            type: string
            maxLength: 250
            minLength: 1
            pattern: ^(((\*\.)?[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)$
          writeOnly: true
        source_certificate:
          type: integer
          maximum: 2147483647
          minimum: 1
          writeOnly: true
          nullable: true
          format: int64
      required:
      - authority
      - challenge
      - common_name
      - name
      additionalProperties: false
    CertificateResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/Certificate'
      required:
      - data
      additionalProperties: false
    CertificateRevocationList:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        active:
          type: boolean
          default: true
          description: Indicates if the certificate revocation list is active. This
            field cannot be set to false.
        last_editor:
          type: string
          readOnly: true
          pattern: ^.*$
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp of the certificate revocation list creation on the
            platform.
          pattern: ^.*$
        last_modified:
          type: string
          format: date-time
          readOnly: true
          description: Timestamp of the last modification made to the certificate
            content on the platform.
          pattern: ^.*$
        product_version:
          type: string
          readOnly: true
          pattern: \d+\.\d+
          maxLength: 50
          minLength: 3
        issuer:
          type: string
          readOnly: true
          minLength: 1
          pattern: ^.*$
        last_update:
          type: string
          format: date-time
          readOnly: true
          description: Timestamp of the last update issued by the certification revocation
            list issuer.
          pattern: ^.*$
        next_update:
          type: string
          format: date-time
          readOnly: true
          description: Timestamp of the next scheduled update from the certification
            revocation list issuer.
          pattern: ^.*$
        crl:
          type: string
          pattern: .*
          maxLength: 30720000
          minLength: 1
      required:
      - created_at
      - crl
      - id
      - issuer
      - last_editor
      - last_modified
      - last_update
      - name
      - next_update
      - product_version
      additionalProperties: false
    CertificateRevocationListResponse:
      type: object
      properties:
        state:
          type: string
          default: executed
          pattern: .*
          maxLength: 8
          minLength: 1
        data:
          $ref: '#/components/schemas/CertificateRevocationList'
      required:
      - data
      additionalProperties: false
    CertificateSigningRequest:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        certificate:
          type: string
          nullable: true
          pattern: .*
          maxLength: 1000000
          minLength: 1
        private_key:
          type: string
          writeOnly: true
          nullable: true
          pattern: .*
          maxLength: 64000
          minLength: 1
        issuer:
          type: string
          readOnly: true
          nullable: true
          pattern: .*
        subject_name:
          type: array
          items:
            type: string
            pattern: ^.*$
          readOnly: true
        validity:
          type: string
          readOnly: true
          nullable: true
          pattern: ^.*$
        type:
          enum:
          - certificate
          - trusted_ca_certificate
          type: string
          default: certificate
          description: 'The value can''t be changed after the certificate creation.


            * `certificate` - Certificate

            * `trusted_ca_certificate` - Trusted CA Certificate'
          x-extensible-enum:
          - certificate
          - trusted_ca_certificate
        managed:
          type: boolean
          readOnly: true
          default: false
        status:
          enum:
          - pending
          - challenge_verification
          - active
          - inactive
          - expired
          - failed
          type: string
          description: '* `pending` - Pending

            * `challenge_verification` - Challenge Verification

            * `active` - Active

            * `inactive` - Inactive

            * `expired` - Expired

            * `failed` - Failed'
          readOnly: true
          x-extensible-enum:
          - pending
          - challenge_verification
          - active
          - inactive
          - expired
          - failed
        status_detail:
          type: string
          readOnly: true
          default: ''
          pattern: .*
          maxLength: 500
          minLength: 0
        csr:
          type: string
          readOnly: true
          nullable: true
          pattern: .*
        challenge:
          enum:
          - dns
          - http
          type: string
          description: '* `dns` - Uses DNS to solve the ACME challenge.

            * `http` - Uses HTTP to solve the ACME challenge.'
          readOnly: true
          x-extensible-enum:
          - dns
          - http
        authority:
          enum:
          - lets_encrypt
          type: string
          description: '* `lets_encrypt` - lets_encrypt'
          readOnly: true
          x-extensible-enum:
          - lets_encrypt
        key_algorithm:
          enum:
          - rsa_2048
          - rsa_4096
          - ecc_384
          type: string
          description: '* `rsa_2048` - 2048-bit RSA

            * `rsa_4096` - 4096-bit RSA

            * `ecc_384` - 384-bit Prime Field Curve'
          default: rsa_2048
          x-extensible-enum:
          - rsa_2048
          - rsa_4096
          - ecc_384
        active:
          type: boolean
        product_version:
          type: string
          readOnly: true
          pattern: \d+\.\d+
          maxLength: 50
          minLength: 3
        last_editor:
          type: string
          readOnly: true
          pattern: ^.*$
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp of the certificate creation on the platform.
          pattern: ^.*$
        last_modified:
          type: string
          format: date-time
          readOnly: true
          description: Timestamp of the last modification made to the certificate
            content on the platform.
          pattern: ^.*$
        renewed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp indicating when the managed certificate was renewed
            on our platform.
          pattern: ^.*$
        common_name:
          type: string
          writeOnly: true
          maxLength: 250
          minLength: 1
          pattern: ^(((\*\.)?[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)$
        alternative_names:
          type: array
          items:
            type: string
            maxLength: 250
            minLength: 1
            pattern: ^(((\*\.)?[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)$
          writeOnly: true
        country:
          type: string
          writeOnly: true
          pattern: '[a-zA-Z]{2}'
          maxLength: 2
          minLength: 2
        state:
          type: string
          writeOnly: true
          pattern: .*
          maxLength: 250
          minLength: 1
        locality:
          type: string
          writeOnly: true
          pattern: .*
          maxLength: 250
          minLength: 1
        organization:
          type: string
          writeOnly: true
          pattern: .*
          maxLength: 250
          minLength: 1
        organization_unity:
          type: string
          writeOnly: true
          pattern: .*
          maxLength: 250
          minLength: 1
        email:
          type: string
          format: email
          writeOnly: true
          pattern: ^.*$
      required:
      - common_name
      - country
      - email
      - locality
      - name
      - organization
      - organization_unity
      - state
      additionalProperties: false
    PaginatedCertificateList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
          pattern: ^.*$
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
          pattern: ^.*$
        results:
          type: array
          items:
            $ref: '#/components/schemas/Certificate'
      additionalProperties: false
    PatchedCertificate:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        certificate:
          type: string
          nullable: true
          pattern: .*
          maxLength: 1000000
          minLength: 1
        private_key:
          type: string
          writeOnly: true
          nullable: true
          pattern: .*
          maxLength: 64000
          minLength: 1
        issuer:
          type: string
          readOnly: true
          nullable: true
          pattern: .*
        subject_name:
          type: array
          items:
            type: string
            pattern: ^.*$
          readOnly: true
        validity:
          type: string
          readOnly: true
          nullable: true
          pattern: ^.*$
        type:
          enum:
          - certificate
          - trusted_ca_certificate
          type: string
          default: certificate
          description: 'The value can''t be changed after the certificate creation.


            * `certificate` - Certificate

            * `trusted_ca_certificate` - Trusted CA Certificate'
          x-extensible-enum:
          - certificate
          - trusted_ca_certificate
        managed:
          type: boolean
          readOnly: true
          default: false
        status:
          enum:
          - pending
          - challenge_verification
          - active
          - inactive
          - expired
          - failed
          type: string
          description: '* `pending` - Pending

            * `challenge_verification` - Challenge Verification

            * `active` - Active

            * `inactive` - Inactive

            * `expired` - Expired

            * `failed` - Failed'
          readOnly: true
          x-extensible-enum:
          - pending
          - challenge_verification
          - active
          - inactive
          - expired
          - failed
        status_detail:
          type: string
          readOnly: true
          default: ''
          pattern: .*
          maxLength: 500
          minLength: 0
        csr:
          type: string
          readOnly: true
          nullable: true
          pattern: .*
        challenge:
          enum:
          - dns
          - http
          type: string
          description: '* `dns` - Uses DNS to solve the ACME challenge.

            * `http` - Uses HTTP to solve the ACME challenge.'
          readOnly: true
          x-extensible-enum:
          - dns
          - http
        authority:
          enum:
          - lets_encrypt
          type: string
          description: '* `lets_encrypt` - lets_encrypt'
          readOnly: true
          x-extensible-enum:
          - lets_encrypt
        key_algorithm:
          type: string
          readOnly: true
          pattern: .*
        active:
          type: boolean
        product_version:
          type: string
          readOnly: true
          pattern: \d+\.\d+
          maxLength: 50
          minLength: 3
        last_editor:
          type: string
          readOnly: true
          pattern: ^.*$
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp of the certificate creation on the platform.
          pattern: ^.*$
        last_modified:
          type: string
          format: date-time
          readOnly: true
          description: Timestamp of the last modification made to the certificate
            content on the platform.
          pattern: ^.*$
        renewed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp indicating when the managed certificate was renewed
            on our platform.
          pattern: ^.*$
      additionalProperties: false
    PatchedCertificateRevocationList:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          format: int64
        name:
          type: string
          pattern: .*
          maxLength: 250
          minLength: 1
        active:
          type: boolean
          default: true
          description: Indicates if the certificate revocation list is active. This
            field cannot be set to false.
        last_editor:
          type: string
          readOnly: true
          pattern: ^.*$
        created_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp of the certificate revocation list creation on the
            platform.
          pattern: ^.*$
        last_modified:
          type: string
          format: date-time
          readOnly: true
          description: Timestamp of the last modification made to the certificate
            content on the platform.
          pattern: ^.*$
        product_version:
          type: string
          readOnly: true
          pattern: \d+\.\d+
          maxLength: 50
          minLength: 3
        issuer:
          type: string
          readOnly: true
          minLength: 1
          pattern: ^.*$
        last_update:
          type: string
          format: date-time
          readOnly: true
          description: Timestamp of the last update issued by the certification revocation
            list issuer.
          pattern: ^.*$
        next_update:
          type: string
          format: date-time
          readOnly: true
          description: Timestamp of the next scheduled update from the certification
            revocation list issuer.
          pattern: ^.*$
        crl:
          type: string
          pattern: .*
          maxLength: 30720000
          minLength: 1
      additionalProperties: false
    PaginatedCertificateRevocationList:
      type: object
      properties:
        count:
          type: integer
          minimum: 0
          maximum: 2147483647
          example: 123
          description: Total number of items
          format: int64
        total_pages:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 10
          description: Total number of pages
          format: int64
        page:
          type: integer
          minimum: 1
          maximum: 2147483647
          example: 1
          description: Current page number
          format: int64
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          example: 10
          description: Number of items per page
          format: int64
        next:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=3
          description: URL to the next page of results
          pattern: ^.*$
        previous:
          type: string
          nullable: true
          format: uri
          example: https://api.example.com/items?page=1
          description: URL to the previous page of results
          pattern: ^.*$
        results:
          type: array
          items:
            $ref: '#/components/schemas/CertificateRevocationList'
      additionalProperties: false
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: 'JWT Bearer Token authentication. Use the access token obtained
        from the login endpoint.


        **Format:** `Authorization: Bearer <access_token>`


        **How to obtain:**

        1. Call [`POST /account/auth/login`](#/operations/auth_user_login) with your
        credentials

        2. Use the returned `access_token` in subsequent requests

        3. Refresh the token using [`POST /account/auth/token`](#/operations/auth_token_create)
        before expiration


        **Example:**

        ```

        Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

        ```'
    JwtMfaAuthentication:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT MFA Token for Multi-Factor Authentication flows. Used when
        MFA verification is required after initial login.
    JwtRefreshAuthentication:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT Refresh Token for obtaining new access tokens. Use the refresh_token
        from login to get a new access_token without re-authenticating.
    TokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Personal Token authentication. Include your token in the Authorization
        header with the prefix "Token".


        **Format:** `Authorization: Token <your_personal_token>`


        **How to get a token:**

        1. Log in to [Azion Console](https://console.azion.com)

        2. Go to Account Menu > Personal Tokens

        3. Click "+ Personal Token"

        4. Set a name and expiration date

        5. Copy and securely store your token


        **Example:**

        ```

        Authorization: Token azion_1234567890abcdef

        ```'
  parameters:
    PageParam:
      name: page
      required: false
      in: query
      description: A page number within the paginated result set.
      schema:
        type: integer
        format: int64
    PageSizeParam:
      name: page_size
      required: false
      in: query
      description: A numeric value that indicates the number of items per page.
      schema:
        type: integer
        format: int64
    OrderingParam:
      name: ordering
      required: false
      in: query
      description: Which field to use when ordering the results.
      schema:
        type: string
    SearchParam:
      name: search
      required: false
      in: query
      description: A search term.
      schema:
        type: string
    FieldsParam:
      name: fields
      required: false
      in: query
      description: Comma-separated list of field names to include in the response.
        Nested fields can be accessed using dot notation.
      schema:
        type: string
  responses:
    BadRequest:
      description: Validation Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Error-10000:
              value:
                errors:
                - status: '400'
                  code: '10000'
                  title: Validation Error
                  detail: Invalid data provided in the request.
              summary: Validation Error
              description: Invalid data provided in the request.
    Unauthorized:
      description: Authentication Failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Error-10001:
              value:
                errors:
                - status: '401'
                  code: '10001'
                  title: Authentication Failed
                  detail: Invalid authentication credentials.
              summary: Authentication Failed
              description: Invalid authentication credentials.
    Forbidden:
      description: Permission Denied
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Error-10003:
              value:
                errors:
                - status: '403'
                  code: '10003'
                  title: Permission Denied
                  detail: You do not have permission to perform this action.
              summary: Permission Denied
              description: You do not have permission to perform this action.
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Error-10004:
              value:
                errors:
                - status: '404'
                  code: '10004'
                  title: Not Found
                  detail: Not found.
              summary: Not Found
              description: Not found.
    MethodNotAllowed:
      description: Method Not Allowed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Error-10005:
              value:
                errors:
                - status: '405'
                  code: '10005'
                  title: Method Not Allowed
                  detail: Method not allowed.
              summary: Method Not Allowed
              description: Method not allowed.
    NotAcceptable:
      description: Not Acceptable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Error-10006:
              value:
                errors:
                - status: '406'
                  code: '10006'
                  title: Not Acceptable
                  detail: Could not satisfy the request Accept header.
              summary: Not Acceptable
              description: Could not satisfy the request Accept header.
    TooManyRequests:
      description: Throttled
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Error-10010:
              value:
                errors:
                - status: '429'
                  code: '10010'
                  title: Throttled
                  detail: Request was throttled.
              summary: Throttled
              description: Request was throttled.
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Error-10500:
              value:
                errors:
                - status: '500'
                  code: '10500'
                  title: Internal Server Error
                  detail: An unexpected error occurred. Please try again later.
              summary: Internal Server Error
              description: An unexpected error occurred. Please try again later.
tags:
- name: Applications
  description: Manage Applications and their configurations.
- name: Applications - Cache Settings
  description: Configure cache settings for Applications.
- name: Applications - Device Groups
  description: Manage device groups for Applications.
- name: Applications - Function
  description: Manage Functions attached to Applications.
- name: Applications - Request Rules
  description: Configure request rules for Applications.
- name: Applications - Response Rules
  description: Configure response rules for Applications.
- name: Auth - Login
  description: Authentication endpoints for user login.
- name: Auth - MFA TOTP Device
  description: Manage Multi-Factor Authentication TOTP devices.
- name: Auth - Refresh Access Token
  description: Refresh access tokens for continued authentication.
- name: Auth - Revoke
  description: Revoke authentication tokens.
- name: Connectors
  description: Manage Connectors.
- name: Custom Pages
  description: Manage custom error pages.
- name: DNS - DNSSEC
  description: Manage DNSSEC configuration for DNS zones.
- name: DNS - Records
  description: Manage DNS records within zones.
- name: DNS - Zones
  description: Manage DNS zones.
- name: Data Stream - Data Sources
  description: Manage data sources for Data Stream.
- name: Data Stream - Streams
  description: Manage data streams.
- name: Data Stream - Templates
  description: Manage templates for Data Stream.
- name: Digital Certificates - Certificate Revocation Lists
  description: Manage Certificate Revocation Lists (CRLs).
- name: Digital Certificates - Certificate Signing Requests
  description: Manage Certificate Signing Requests (CSRs).
- name: Digital Certificates - Certificates
  description: Manage digital certificates.
- name: Digital Certificates - Request a Certificate
  description: Request new digital certificates.
- name: Firewalls
  description: Manage Firewalls.
- name: Firewalls - Function
  description: Manage Functions attached to Firewalls.
- name: Firewalls - Rules Engine
  description: Configure rules engine for Firewalls.
- name: Functions
  description: Manage Functions.
- name: Network Lists
  description: Manage network lists for access control.
- name: Purge
  description: Purge cached content.
- name: SQL
  description: Execute SQL queries on databases.
- name: Storage - Buckets
  description: Manage Storage buckets.
- name: Storage - Credentials
  description: Manage credentials for Storage.
- name: Storage - Objects
  description: Manage objects within Storage buckets.
- name: WAFs
  description: Manage Web Application Firewalls.
- name: WAFs - Exceptions
  description: Manage WAF exceptions and allowed rules.
- name: Workload Deployments
  description: Manage workload deployments.
- name: Workloads
  description: Manage workloads.
