openapi: 3.1.0
info:
  title: Gcore OpenAPI – WAAP API
  description: This OpenAPI is an aggregated OpenAPI specification that unifies all Gcore products into a single file. It covers Cloud, CDN, DNS, WAAP, DDoS Protection, Object Storage, Streaming, and FastEdge services.
  contact:
    email: support@gcore.com
  version: 3bdfb639062a
servers:
- url: https://api.gcore.com
paths:
  /waap/v1/clients/me:
    get:
      tags:
      - WAAP Service
      summary: Get WAAP service details
      description: Get information about WAAP service for the client
      operationId: get_client_info_v1_clients_me_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientInfo'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
        '422':
          description: Unprocessable Entity
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
        '500':
          description: Internal Server Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_account_overview = client.waap.get_account_overview()
          print(waap_account_overview.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapAccountOverview, err := client.Waap.GetAccountOverview(context.TODO())
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapAccountOverview.ID)
          }
  /waap/v1/statistics/series:
    get:
      tags:
      - WAAP Service
      summary: Get statistics as time series
      description: Retrieve statistics data as a time series. The `from` and `to` parameters are rounded down and up according to the `granularity`. This means that if the `granularity` is set to `1h`, the `from` and `to` parameters will be rounded down and up to the nearest hour, respectively. If the `granularity` is set to `1d`, the `from` and `to` parameters will be rounded down and up to the nearest day, respectively. The response will include explicit 0 values for any missing data points.
      operationId: get_statistics_series_v1_statistics_series_get
      parameters:
      - name: from
        in: query
        required: true
        schema:
          type: string
          format: date-time
          description: Beginning of the requested time period (ISO 8601 format, UTC)
          example: '2024-12-14T12:00:00Z'
          examples:
          - '2024-12-14T12:00:00Z'
          title: From
        description: Beginning of the requested time period (ISO 8601 format, UTC)
      - name: to
        in: query
        required: true
        schema:
          type: string
          format: date-time
          description: End of the requested time period (ISO 8601 format, UTC)
          example: '2024-12-14T12:00:00Z'
          examples:
          - '2024-12-14T12:00:00Z'
          title: To
        description: End of the requested time period (ISO 8601 format, UTC)
      - name: granularity
        in: query
        required: true
        schema:
          enum:
          - 1h
          - 1d
          type: string
          description: Duration of the time blocks into which the data will be divided.
          title: Granularity
        description: Duration of the time blocks into which the data will be divided.
      - name: metrics
        in: query
        required: true
        schema:
          type: array
          items:
            enum:
            - total_bytes
            - total_requests
            type: string
          description: List of metric types to retrieve statistics for.
          title: Metrics
        description: List of metric types to retrieve statistics for.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatisticsSeries'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from datetime import datetime
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_statistics_series = client.waap.statistics.get_usage_series(
              from_=datetime.fromisoformat("2024-12-14T12:00:00"),
              granularity="1h",
              metrics=["total_bytes"],
              to=datetime.fromisoformat("2024-12-14T12:00:00"),
          )
          print(waap_statistics_series.total_bytes)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"
          	"time"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapStatisticsSeries, err := client.Waap.Statistics.GetUsageSeries(context.TODO(), waap.StatisticGetUsageSeriesParams{
          		From:        time.Now(),
          		Granularity: waap.StatisticGetUsageSeriesParamsGranularity1h,
          		Metrics:     []string{"total_bytes"},
          		To:          time.Now(),
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapStatisticsSeries.TotalBytes)
          }
  /waap/v1/prebilling/total/{metric}:
    get:
      tags:
      - Pre-billing
      summary: Get aggregated billable consumption by metric
      description: Retrieve an aggregated report on the calling client's own billable consumption by given metric
      operationId: get_consumption_total_v1_prebilling_total__metric__get
      parameters:
      - name: metric
        in: path
        required: true
        schema:
          enum:
          - domains
          - volume
          - requests
          - requests_clean
          type: string
          description: The metric to get billable consumption for
          title: Metric
        description: The metric to get billable consumption for
      - name: from
        in: query
        required: true
        schema:
          type: string
          format: date
          description: The report start date (inclusive) in ISO 8601 format
          title: From
        description: The report start date (inclusive) in ISO 8601 format
      - name: to
        in: query
        required: true
        schema:
          type: string
          format: date
          description: The report end date (exclusive) in ISO 8601 format
          title: To
        description: The report end date (exclusive) in ISO 8601 format
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_BillingReportItem_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from datetime import date
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.prebilling.get_total(
              metric="domains",
              from_=date.fromisoformat("2019-12-27"),
              to=date.fromisoformat("2019-12-27"),
          )
          page = page.results[0]
          print(page.amount)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"
          	"time"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Prebilling.GetTotal(
          		context.TODO(),
          		waap.PrebillingGetTotalParamsMetricDomains,
          		waap.PrebillingGetTotalParams{
          			From: time.Now(),
          			To:   time.Now(),
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v1/prebilling/breakdown/{metric}:
    get:
      tags:
      - Pre-billing
      summary: Get billable consumption by metric per account
      description: Retrieve a report on the calling client's own billable consumption by given metric with per-account breakdown
      operationId: get_consumption_breakdown_v1_prebilling_breakdown__metric__get
      parameters:
      - name: metric
        in: path
        required: true
        schema:
          enum:
          - domains
          - volume
          - requests
          - requests_clean
          type: string
          description: The metric to get billable consumption for
          title: Metric
        description: The metric to get billable consumption for
      - name: from
        in: query
        required: true
        schema:
          type: string
          format: date
          description: The report start date (inclusive) in ISO 8601 format
          title: From
        description: The report start date (inclusive) in ISO 8601 format
      - name: to
        in: query
        required: true
        schema:
          type: string
          format: date
          description: The report end date (exclusive) in ISO 8601 format
          title: To
        description: The report end date (exclusive) in ISO 8601 format
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StructuredPaginatedResponse_BreakdownBillingReport_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/domains:
    get:
      tags:
      - Domains
      summary: Get Domains
      description: Retrieve a list of domains associated with the client. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [List domains (V2)](/api-reference/waap/domains/list-domains) instead.
      operationId: get_domains_v1_domains_get
      deprecated: true
      parameters:
      - name: ordering
        in: query
        required: false
        schema:
          enum:
          - id
          - name
          - status
          - created_at
          - -id
          - -name
          - -status
          - -created_at
          type: string
          description: Sort the response by given field.
          title: Ordering
        description: Sort the response by given field.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: status
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/DomainStatus'
          description: Filter domains based on the domain status
          examples:
          - active
        description: Filter domains based on the domain status
      - name: name
        in: query
        required: false
        schema:
          type: string
          description: Filter domains based on the domain name. Supports '*' as a wildcard character
          example: '*example.com'
          examples:
          - '*example.com'
          title: Name
        description: Filter domains based on the domain name. Supports '*' as a wildcard character
      - name: ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            exclusiveMinimum: 0
            description: The domain ID
          description: Filter domains based on their IDs
          example: 1
          examples:
          - 1
          - 2
          - 3
          title: Ids
        description: Filter domains based on their IDs
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_SummaryDomainResponse_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/domains/{domain_id}:
    get:
      tags:
      - Domains
      summary: Get Domain
      description: Retrieve detailed information about a specific domain. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Get domain details](/api-reference/waap/domains/get-domain-details) instead.
      operationId: get_domain_v1_domains__domain_id__get
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailedDomainResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
    patch:
      tags:
      - Domains
      summary: Update Domain
      description: Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Update domain](/api-reference/waap/domains/update-domain-1) instead.
      operationId: update_domain_v1_domains__domain_id__patch
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDomain'
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
    delete:
      tags:
      - Domains
      summary: Delete a domain
      description: Delete an inactive domain by ID. Only domains with status 'bypass' can be deleted. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Delete domain (V2)](/api-reference/waap/domains/delete-domain) instead.
      operationId: delete_domain_v1_domains__domain_id__delete
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/problem+json:
              example:
                title: Internal server error.
                type: internal-server-error
                status: 500
                detail: Something went wrong. Cannot enable WAAP for this domain. Please try again later or reach out to our support team.
  /waap/v1/domains/{domain_id}/settings:
    get:
      tags:
      - Domains
      summary: Get Domain Settings
      description: Retrieve settings for a specific domain. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Retrieve domain settings (V2)](/api-reference/waap/domains/retrieve-domain-settings) instead.
      operationId: get_domain_settings_v1_domains__domain_id__settings_get
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainSettings'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
    patch:
      tags:
      - Domains
      summary: Update Domain Settings
      description: Update settings for a specific domain. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Set domain settings (V2)](/api-reference/waap/domains/set-domain-settings) instead.
      operationId: update_domain_settings_v1_domains__domain_id__settings_patch
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDomainSettings'
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/domains/{domain_id}/rule-sets:
    get:
      tags:
      - Policies
      summary: Fetches rule sets associated with a specific domain
      description: Retrieve all rule sets linked to a particular domain, each with its policies embedded. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [List domain policy rule sets (V2)](/api-reference/waap/policies/list-domain-policy-rule-sets) for the rule sets and [List domain policies (V2)](/api-reference/waap/policies/list-domain-policies) for their policies instead
      operationId: get_rule_set_list_v1_domains__domain_id__rule_sets_get
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RuleSet'
                title: Response Get Rule Set List V1 Domains  Domain Id  Rule Sets Get
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/domains/{domain_id}/policies/{policy_id}/toggle:
    patch:
      tags:
      - Policies
      summary: Toggle the status of a given policy
      description: Modify the activation state of a policy associated with a domain. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Set domain policy settings (V2)](/api-reference/waap/policies/set-domain-policy-settings) instead
      operationId: toggle_domain_policy_v1_domains__domain_id__policies__policy_id__toggle_patch
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: policy_id
        in: path
        required: true
        schema:
          type: string
          description: The ID of the policy to toggle
          title: Policy Id
        description: The ID of the policy to toggle
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyMode'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/domains/{domain_id}/traffic:
    get:
      tags:
      - Analytics
      summary: Fetch the traffic data for a specific domain.
      description: Deprecated. Use [Get traffic data](/api-reference/waap/analytics/get-traffic-data) instead.
      operationId: get_traffic_v1_domains__domain_id__traffic_get
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: resolution
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/Resolution'
          description: Specifies the granularity of the result data.
        description: Specifies the granularity of the result data.
      - name: start
        in: query
        required: true
        schema:
          type: string
          description: Filter data items starting from a specified date in ISO 8601 format
          example: '2024-04-13T00:00:00+01:00'
          examples:
          - '2024-04-13T00:00:00+01:00'
          title: Start
        description: Filter data items starting from a specified date in ISO 8601 format
      - name: end
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
          examples:
          - '2024-04-14T12:00:00Z'
          title: End
        description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TrafficMetrics'
                title: Response Get Traffic V1 Domains  Domain Id  Traffic Get
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/domains/{domain_id}/stats:
    get:
      tags:
      - Analytics
      summary: Get Event Statistics
      description: Retrieve an domain's event statistics
      operationId: get_event_statistics_v1_domains__domain_id__stats_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: start
        in: query
        required: true
        schema:
          type: string
          description: Filter data items starting from a specified date in ISO 8601 format
          example: '2024-04-13T00:00:00+01:00'
          examples:
          - '2024-04-13T00:00:00+01:00'
          title: Start
        description: Filter data items starting from a specified date in ISO 8601 format
      - name: end
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
          examples:
          - '2024-04-14T12:00:00Z'
          title: End
        description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
      - name: ip
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              format: ipvanyaddress
          - type: 'null'
          description: A list of IPs to filter event statistics.
          examples:
          - 1.2.3.4
          - 5.6.7.8
          title: Ip
        description: A list of IPs to filter event statistics.
      - name: reference_id
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: A list of reference IDs to filter event statistics.
          examples:
          - 13a38422e6ddd05ff7ecee010286909b
          - 31a38422e6ddd05ff7ecee010286909a
          title: Reference Id
        description: A list of reference IDs to filter event statistics.
      - name: action
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/EventAction'
          - type: 'null'
          description: A list of action names to filter on.
          examples:
          - block
          - captcha
          title: Action
        description: A list of action names to filter on.
      - name: result
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/ComputedEventResult'
          - type: 'null'
          description: A list of results to filter event statistics.
          examples:
          - passed
          - allowed
          title: Result
        description: A list of results to filter event statistics.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventStatistics'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_event_statistics = client.waap.domains.statistics.get_events_aggregated(
              domain_id=1,
              start="2024-04-13T00:00:00+01:00",
          )
          print(waap_event_statistics.blocked)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapEventStatistics, err := client.Waap.Domains.Statistics.GetEventsAggregated(
          		context.TODO(),
          		1,
          		waap.DomainStatisticGetEventsAggregatedParams{
          			Start: "2024-04-13T00:00:00+01:00",
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapEventStatistics.Blocked)
          }
  /waap/v1/domains/{domain_id}/requests:
    get:
      tags:
      - Analytics
      summary: Get Requests
      description: |-
        Retrieve a domain's requests data.
        Deprecated. Use [Get security events (V2)](/api-reference/waap/analytics/get-security-events) instead.
      operationId: get_requests_v1_domains__domain_id__requests_get
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: ordering
        in: query
        required: false
        schema:
          type: string
          description: Sort the response by given field.
          title: Ordering
        description: Sort the response by given field.
      - name: ip
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: ipvanyaddress
          - type: 'null'
          description: Filter the response by IP.
          title: Ip
        description: Filter the response by IP.
      - name: reference_id
        in: query
        required: false
        schema:
          type: string
          pattern: ^[a-fA-F0-9]{32}$
          description: Filter the response by reference ID.
          example: ad07c06f19054e484974fa22e9fb6bb1
          examples:
          - ad07c06f19054e484974fa22e9fb6bb1
          title: Reference Id
        description: Filter the response by reference ID.
      - name: status_code
        in: query
        required: false
        schema:
          type: integer
          maximum: 599
          minimum: 100
          description: Filter the response by response code.
          title: Status Code
        description: Filter the response by response code.
      - name: security_rule_name
        in: query
        required: false
        schema:
          type: string
          maxLength: 100
          pattern: ^[a-zA-Z0-9_ ~!@#$%^&*()+\[\]{}|.,;:<>?/-]*$
          description: Filter the response by security rule name.
          title: Security Rule Name
        description: Filter the response by security rule name.
      - name: countries
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^\w{2}$
          description: Filter the response by country codes in ISO 3166-1 alpha-2 format.
          title: Countries
        description: Filter the response by country codes in ISO 3166-1 alpha-2 format.
      - name: actions
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/EventAction'
          description: Filter the response by actions.
          title: Actions
        description: Filter the response by actions.
      - name: traffic_types
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/TrafficType'
          description: Filter the response by traffic types.
          title: Traffic Types
        description: Filter the response by traffic types.
      - name: has_policy_override
        in: query
        required: false
        schema:
          anyOf:
          - type: boolean
          - type: 'null'
          description: True selects requests with applied overrides; false excludes them. Omit to include both.
          title: Has Policy Override
        description: True selects requests with applied overrides; false excludes them. Omit to include both.
      - name: start
        in: query
        required: true
        schema:
          type: string
          description: Filter data items starting from a specified date in ISO 8601 format
          example: '2024-04-13T00:00:00+01:00'
          examples:
          - '2024-04-13T00:00:00+01:00'
          title: Start
        description: Filter data items starting from a specified date in ISO 8601 format
      - name: end
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
          examples:
          - '2024-04-14T12:00:00Z'
          title: End
        description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_RequestSummary_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/domains/{domain_id}/requests/{request_id}/details:
    get:
      tags:
      - Analytics
      summary: Get Request Details
      description: Retrieves all the available information for a request that matches a given request id
      operationId: get_request_details_v1_domains__domain_id__requests__request_id__details_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: request_id
        in: path
        required: true
        schema:
          type: string
          description: The request ID
          title: Request Id
        description: The request ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestDetails'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_request_details = client.waap.domains.statistics.get_request_details(
              request_id="request_id",
              domain_id=1,
          )
          print(waap_request_details.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapRequestDetails, err := client.Waap.Domains.Statistics.GetRequestDetails(
          		context.TODO(),
          		"request_id",
          		waap.DomainStatisticGetRequestDetailsParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapRequestDetails.ID)
          }
  /waap/v1/domains/{domain_id}/ddos-info:
    get:
      tags:
      - Analytics
      summary: Get Ddos Info
      description: Returns the top DDoS counts grouped by URL, User-Agent or IP
      operationId: get_ddos_info_v1_domains__domain_id__ddos_info_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 10
          minimum: 0
          description: Number of items to return
          default: 10
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: group_by
        in: query
        required: true
        schema:
          enum:
          - URL
          - User-Agent
          - IP
          type: string
          description: The identity of the requests to group by
          title: Group By
        description: The identity of the requests to group by
      - name: start
        in: query
        required: true
        schema:
          type: string
          description: Filter data items starting from a specified date in ISO 8601 format
          example: '2024-04-13T00:00:00+01:00'
          examples:
          - '2024-04-13T00:00:00+01:00'
          title: Start
        description: Filter data items starting from a specified date in ISO 8601 format
      - name: end
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
          examples:
          - '2024-04-14T12:00:00Z'
          title: End
        description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_DdosInfo_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.domains.statistics.get_ddos_info(
              domain_id=1,
              group_by="URL",
              start="2024-04-13T00:00:00+01:00",
          )
          page = page.results[0]
          print(page.identity)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Domains.Statistics.GetDDOSInfo(
          		context.TODO(),
          		1,
          		waap.DomainStatisticGetDDOSInfoParams{
          			GroupBy: waap.DomainStatisticGetDDOSInfoParamsGroupByURL,
          			Start:   "2024-04-13T00:00:00+01:00",
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v1/domains/{domain_id}/ddos-attacks:
    get:
      tags:
      - Analytics
      summary: Get Ddos Attacks
      description: Retrieve a domain's DDoS attacks
      operationId: get_ddos_attacks_v1_domains__domain_id__ddos_attacks_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: ordering
        in: query
        required: false
        schema:
          enum:
          - start_time
          - -start_time
          - end_time
          - -end_time
          type: string
          description: Sort the response by given field.
          title: Ordering
        description: Sort the response by given field.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: start_time
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          description: Start time of the search interval. Excludes attacks that ended before it
          examples:
          - '2024-04-26T13:32:49Z'
          title: Start Time
        description: Start time of the search interval. Excludes attacks that ended before it
      - name: end_time
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          description: End time of the search interval. Excludes attacks that started after it
          examples:
          - '2024-04-27T13:00:00Z'
          title: End Time
        description: End time of the search interval. Excludes attacks that started after it
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_DdosAttack_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.domains.statistics.get_ddos_attacks(
              domain_id=1,
          )
          page = page.results[0]
          print(page.end_time)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Domains.Statistics.GetDDOSAttacks(
          		context.TODO(),
          		1,
          		waap.DomainStatisticGetDDOSAttacksParams{},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v1/custom-page-sets:
    post:
      tags:
      - Custom Page Sets
      summary: Create a custom page set
      description: |-
        Create a custom page set based on the provided data.
        For any custom page type (block, `block_csrf`, etc) that is not provided the default page will be used.
      operationId: create_custom_page_set_v1_custom_page_sets_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomPageSetCreate'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomPageSetResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_custom_page_set = client.waap.custom_page_sets.create(
              name="x",
          )
          print(waap_custom_page_set.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapCustomPageSet, err := client.Waap.CustomPageSets.New(context.TODO(), waap.CustomPageSetNewParams{
          		Name: "x",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapCustomPageSet.ID)
          }
    get:
      tags:
      - Custom Page Sets
      summary: Retrieve custom page sets available for use
      description: Retrieve a list of custom page sets available for use
      operationId: get_custom_page_sets_v1_custom_page_sets_get
      parameters:
      - name: ordering
        in: query
        required: false
        schema:
          enum:
          - name
          - -name
          - id
          - -id
          type: string
          description: Sort the response by given field.
          title: Ordering
        description: Sort the response by given field.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: name
        in: query
        required: false
        schema:
          type: string
          description: Filter page sets based on their name. Supports '*' as a wildcard character
          example: '*example'
          examples:
          - '*example'
          title: Name
        description: Filter page sets based on their name. Supports '*' as a wildcard character
      - name: ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          description: Filter page sets based on their IDs
          title: Ids
        description: Filter page sets based on their IDs
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_CustomPageSetResponse_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.custom_page_sets.list()
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.CustomPageSets.List(context.TODO(), waap.CustomPageSetListParams{})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v1/custom-page-sets/{set_id}:
    get:
      tags:
      - Custom Page Sets
      summary: Retrieve a custom page set
      description: Retrieve a custom page set based on the provided ID
      operationId: get_custom_page_set_v1_custom_page_sets__set_id__get
      parameters:
      - name: set_id
        in: path
        required: true
        schema:
          type: integer
          description: The ID of the custom page set
          title: Set Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomPageSetResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_custom_page_set = client.waap.custom_page_sets.get(
              0,
          )
          print(waap_custom_page_set.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapCustomPageSet, err := client.Waap.CustomPageSets.Get(context.TODO(), 0)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapCustomPageSet.ID)
          }
    patch:
      tags:
      - Custom Page Sets
      summary: Update a custom page set
      description: 'Update a custom page set based on the provided parameters. To update a field, provide the field with the new value. To remove a field, provide it as null. To keep a field unaltered, do not include it in the request. Note: `name` cannot be removed. When updating a custom page, include all the fields that you want it to have. Any field not included will be removed. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Update custom page set (V2)](/api-reference/waap/custom-page-sets/update-custom-page-set) instead.'
      operationId: update_custom_page_set_v1_custom_page_sets__set_id__patch
      deprecated: true
      parameters:
      - name: set_id
        in: path
        required: true
        schema:
          type: integer
          description: The ID of the custom page set
          title: Set Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomPageSetUpdate'
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
    delete:
      tags:
      - Custom Page Sets
      summary: Delete a custom page set
      description: Delete a custom page set
      operationId: delete_custom_page_set_v1_custom_page_sets__set_id__delete
      parameters:
      - name: set_id
        in: path
        required: true
        schema:
          type: integer
          description: The ID of the custom page set
          title: Set Id
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          client.waap.custom_page_sets.delete(
              0,
          )
      - lang: Go
        source: |
          package main

          import (
          	"context"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	err := client.Waap.CustomPageSets.Delete(context.TODO(), 0)
          	if err != nil {
          		panic(err.Error())
          	}
          }
  /waap/v1/preview-custom-page:
    post:
      tags:
      - Custom Page Sets
      summary: Preview a custom page
      description: Allows to preview a custom page without creating it based on the provided type and data
      operationId: preview_custom_page_v1_preview_custom_page_post
      parameters:
      - name: page_type
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/PageType'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PreviewCustomPage'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomPagePreviewResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_custom_page_preview = client.waap.custom_page_sets.preview(
              page_type="block.html",
          )
          print(waap_custom_page_preview.html)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapCustomPagePreview, err := client.Waap.CustomPageSets.Preview(context.TODO(), waap.CustomPageSetPreviewParams{
          		PageType: waap.CustomPageSetPreviewParamsPageTypeBlockHTML,
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapCustomPagePreview.HTML)
          }
  /waap/v1/domains/{domain_id}/custom-rules:
    get:
      tags:
      - Custom Rules
      summary: Retrieve a domains's custom rules
      description: Extracts a list of custom rules assigned to a domain, offering filter, ordering, and pagination capabilities
      operationId: get_custom_rules_v1_domains__domain_id__custom_rules_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: ordering
        in: query
        required: false
        schema:
          anyOf:
          - enum:
            - id
            - name
            - description
            - enabled
            - action
            - -id
            - -name
            - -description
            - -enabled
            - -action
            type: string
          - type: 'null'
          description: Determine the field to order results by
          examples:
          - -id
          title: Ordering
        description: Determine the field to order results by
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: name
        in: query
        required: false
        schema:
          type: string
          description: Filter rules based on their name. Supports '*' as a wildcard character.
          example: Block by specific IP rule.
          examples:
          - Block by specific IP rule.
          title: Name
        description: Filter rules based on their name. Supports '*' as a wildcard character.
      - name: description
        in: query
        required: false
        schema:
          type: string
          description: Filter rules based on their description. Supports '*' as a wildcard character.
          example: This rule blocks all the requests coming form a specific IP address.
          examples:
          - This rule blocks all the requests coming form a specific IP address.
          title: Description
        description: Filter rules based on their description. Supports '*' as a wildcard character.
      - name: action
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/RuleActionType'
          description: Filter to refine results by specific actions
          examples:
          - block
        description: Filter to refine results by specific actions
      - name: enabled
        in: query
        required: false
        schema:
          type: boolean
          description: Filter rules based on their active status
          example: false
          examples:
          - false
          title: Enabled
        description: Filter rules based on their active status
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_CustomRuleResponse_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.domains.custom_rules.list(
              domain_id=1,
          )
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Domains.CustomRules.List(
          		context.TODO(),
          		1,
          		waap.DomainCustomRuleListParams{},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
    post:
      tags:
      - Custom Rules
      summary: Create custom rule
      operationId: create_custom_rule_v1_domains__domain_id__custom_rules_post
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomRule'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomRuleResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Quota limit exceeded
          content:
            application/problem+json:
              example:
                title: Quota limit exceeded
                type: quota-check-limit-exceeded
                status: 403
                detail: You have reached the maximum limit allowed for your current plan. Please upgrade your plan to add more.
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_custom_rule = client.waap.domains.custom_rules.create(
              domain_id=1,
              action={},
              conditions=[{}],
              enabled=True,
              name="Block foobar bot",
          )
          print(waap_custom_rule.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapCustomRule, err := client.Waap.Domains.CustomRules.New(
          		context.TODO(),
          		1,
          		waap.DomainCustomRuleNewParams{
          			Action:     waap.DomainCustomRuleNewParamsAction{},
          			Conditions: []waap.DomainCustomRuleNewParamsCondition{{}},
          			Enabled:    true,
          			Name:       "Block foobar bot",
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapCustomRule.ID)
          }
  /waap/v1/domains/{domain_id}/custom-rules/{rule_id}:
    get:
      tags:
      - Custom Rules
      summary: Retrieve a specific custom rule
      description: Extracts a specific custom rule assigned to a domain
      operationId: get_custom_rule_v1_domains__domain_id__custom_rules__rule_id__get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The custom rule ID
          title: Rule Id
        description: The custom rule ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomRuleResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_custom_rule = client.waap.domains.custom_rules.get(
              rule_id=0,
              domain_id=1,
          )
          print(waap_custom_rule.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapCustomRule, err := client.Waap.Domains.CustomRules.Get(
          		context.TODO(),
          		0,
          		waap.DomainCustomRuleGetParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapCustomRule.ID)
          }
    delete:
      tags:
      - Custom Rules
      summary: Delete custom rule
      operationId: delete_custom_rule_v1_domains__domain_id__custom_rules__rule_id__delete
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The custom rule ID
          title: Rule Id
        description: The custom rule ID
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/problem+json:
              example:
                title: Internal server error.
                type: internal-server-error
                status: 500
                detail: Something went wrong. Cannot enable WAAP for this domain. Please try again later or reach out to our support team.
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          client.waap.domains.custom_rules.delete(
              rule_id=0,
              domain_id=1,
          )
      - lang: Go
        source: |
          package main

          import (
          	"context"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	err := client.Waap.Domains.CustomRules.Delete(
          		context.TODO(),
          		0,
          		waap.DomainCustomRuleDeleteParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          }
    patch:
      tags:
      - Custom Rules
      summary: Update a custom rule
      description: Only properties present in the request will be updated. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Update custom rule (V2)](/api-reference/waap/custom-rules/update-custom-rule) instead.
      operationId: update_custom_rule_v1_domains__domain_id__custom_rules__rule_id__patch
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The custom rule ID
          title: Rule Id
        description: The custom rule ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomRule'
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/domains/{domain_id}/custom-rules/bulk_delete:
    post:
      tags:
      - Custom Rules
      summary: Delete multiple WAAP rules
      description: Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Delete multiple custom WAAP rules (V2)](/api-reference/waap/custom-rules/delete-multiple-custom-waap-rules) instead.
      operationId: bulk_delete_custom_rule_v1_domains__domain_id__custom_rules_bulk_delete_post
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RulesBulkDelete'
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/problem+json:
              example:
                title: Internal server error.
                type: internal-server-error
                status: 500
                detail: Something went wrong. Cannot enable WAAP for this domain. Please try again later or reach out to our support team.
  /waap/v1/domains/{domain_id}/custom-rules/{rule_id}/{action}:
    patch:
      tags:
      - Custom Rules
      summary: Toggle a custom rule
      description: Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Toggle custom rule (V2)](/api-reference/waap/custom-rules/toggle-custom-rule) instead.
      operationId: toggle_rule_v1_domains__domain_id__custom_rules__rule_id___action__patch
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: action
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/CustomerRuleState'
          description: Enable or disable a custom rule
        description: Enable or disable a custom rule
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The custom rule ID
          title: Rule Id
        description: The custom rule ID
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/filter-templates:
    post:
      tags:
      - Filter Templates
      summary: Create a filter template
      description: Create a filter template for the authenticated user.
      operationId: create_filter_template_v1_filter_templates_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterTemplateCreate'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilterTemplateResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_filter_template = client.waap.filter_templates.create(
              filter_config={
                  "domains": "bar",
                  "event": "bar",
              },
              name="name",
          )
          print(waap_filter_template.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapFilterTemplate, err := client.Waap.FilterTemplates.New(context.TODO(), waap.FilterTemplateNewParams{
          		FilterConfig: map[string]any{
          			"domains": "bar",
          			"event":   "bar",
          		},
          		Name: "name",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapFilterTemplate.ID)
          }
    get:
      tags:
      - Filter Templates
      summary: List filter templates for the current user
      description: List filter templates owned by the authenticated user.
      operationId: get_filter_templates_v1_filter_templates_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: name
        in: query
        required: false
        schema:
          type: string
          description: Filter template names by case-insensitive substring match
          title: Name
        description: Filter template names by case-insensitive substring match
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_FilterTemplateResponse_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.filter_templates.list()
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.FilterTemplates.List(context.TODO(), waap.FilterTemplateListParams{})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v1/filter-templates/{template_id}:
    get:
      tags:
      - Filter Templates
      summary: Get a filter template by ID
      description: Retrieve a single filter template, scoped to the authenticated user.
      operationId: get_filter_template_v1_filter_templates__template_id__get
      parameters:
      - name: template_id
        in: path
        required: true
        schema:
          type: integer
          description: The ID of the filter template
          title: Template Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilterTemplateResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_filter_template = client.waap.filter_templates.get(
              0,
          )
          print(waap_filter_template.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapFilterTemplate, err := client.Waap.FilterTemplates.Get(context.TODO(), 0)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapFilterTemplate.ID)
          }
    patch:
      tags:
      - Filter Templates
      summary: Update a filter template
      description: Update or rename a filter template owned by the authenticated user.
      operationId: update_filter_template_v1_filter_templates__template_id__patch
      parameters:
      - name: template_id
        in: path
        required: true
        schema:
          type: integer
          description: The ID of the filter template
          title: Template Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterTemplateUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilterTemplateResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_filter_template = client.waap.filter_templates.update(
              template_id=0,
          )
          print(waap_filter_template.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapFilterTemplate, err := client.Waap.FilterTemplates.Update(
          		context.TODO(),
          		0,
          		waap.FilterTemplateUpdateParams{},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapFilterTemplate.ID)
          }
    delete:
      tags:
      - Filter Templates
      summary: Delete a filter template
      description: Delete a filter template owned by the authenticated user.
      operationId: delete_filter_template_v1_filter_templates__template_id__delete
      parameters:
      - name: template_id
        in: path
        required: true
        schema:
          type: integer
          description: The ID of the filter template
          title: Template Id
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          client.waap.filter_templates.delete(
              0,
          )
      - lang: Go
        source: |
          package main

          import (
          	"context"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	err := client.Waap.FilterTemplates.Delete(context.TODO(), 0)
          	if err != nil {
          		panic(err.Error())
          	}
          }
  /waap/v1/domains/{domain_id}/firewall-rules:
    get:
      tags:
      - Firewall Rules
      summary: Retrieve a domains's firewall rules
      description: Extracts a list of firewall rules assigned to a domain, offering filter, ordering, and pagination capabilities
      operationId: get_firewall_rules_v1_domains__domain_id__firewall_rules_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: ordering
        in: query
        required: false
        schema:
          anyOf:
          - enum:
            - id
            - name
            - description
            - enabled
            - action
            - -id
            - -name
            - -description
            - -enabled
            - -action
            type: string
          - type: 'null'
          description: Determine the field to order results by
          examples:
          - -id
          title: Ordering
        description: Determine the field to order results by
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: name
        in: query
        required: false
        schema:
          type: string
          description: Filter rules based on their name. Supports '*' as a wildcard character.
          example: Block by specific IP rule.
          examples:
          - Block by specific IP rule.
          title: Name
        description: Filter rules based on their name. Supports '*' as a wildcard character.
      - name: description
        in: query
        required: false
        schema:
          type: string
          description: Filter rules based on their description. Supports '*' as a wildcard character.
          example: This rule blocks all the requests coming form a specific IP address.
          examples:
          - This rule blocks all the requests coming form a specific IP address.
          title: Description
        description: Filter rules based on their description. Supports '*' as a wildcard character.
      - name: action
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/FirewallRuleActionType'
          description: Filter to refine results by specific firewall actions
          examples:
          - allow
        description: Filter to refine results by specific firewall actions
      - name: enabled
        in: query
        required: false
        schema:
          type: boolean
          description: Filter rules based on their active status
          example: false
          examples:
          - false
          title: Enabled
        description: Filter rules based on their active status
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_FirewallRuleResponse_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.domains.firewall_rules.list(
              domain_id=1,
          )
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Domains.FirewallRules.List(
          		context.TODO(),
          		1,
          		waap.DomainFirewallRuleListParams{},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
    post:
      tags:
      - Firewall Rules
      summary: Create firewall rule
      operationId: create_firewall_rule_v1_domains__domain_id__firewall_rules_post
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FirewallRule'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallRuleResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Quota limit exceeded
          content:
            application/problem+json:
              example:
                title: Quota limit exceeded
                type: quota-check-limit-exceeded
                status: 403
                detail: You have reached the maximum limit allowed for your current plan. Please upgrade your plan to add more.
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_firewall_rule = client.waap.domains.firewall_rules.create(
              domain_id=1,
              action={},
              conditions=[{}],
              enabled=True,
              name="Block foobar bot",
          )
          print(waap_firewall_rule.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapFirewallRule, err := client.Waap.Domains.FirewallRules.New(
          		context.TODO(),
          		1,
          		waap.DomainFirewallRuleNewParams{
          			Action:     waap.DomainFirewallRuleNewParamsAction{},
          			Conditions: []waap.DomainFirewallRuleNewParamsCondition{{}},
          			Enabled:    true,
          			Name:       "Block foobar bot",
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapFirewallRule.ID)
          }
  /waap/v1/domains/{domain_id}/firewall-rules/{rule_id}:
    get:
      tags:
      - Firewall Rules
      summary: Retrieve a specific firewall rule
      description: Extracts a specific firewall rule assigned to a domain
      operationId: get_firewall_rule_v1_domains__domain_id__firewall_rules__rule_id__get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The firewall rule ID
          title: Rule Id
        description: The firewall rule ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallRuleResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_firewall_rule = client.waap.domains.firewall_rules.get(
              rule_id=0,
              domain_id=1,
          )
          print(waap_firewall_rule.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapFirewallRule, err := client.Waap.Domains.FirewallRules.Get(
          		context.TODO(),
          		0,
          		waap.DomainFirewallRuleGetParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapFirewallRule.ID)
          }
    delete:
      tags:
      - Firewall Rules
      summary: Delete firewall rule
      operationId: delete_firewall_rule_v1_domains__domain_id__firewall_rules__rule_id__delete
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The firewall rule ID
          title: Rule Id
        description: The firewall rule ID
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/problem+json:
              example:
                title: Internal server error.
                type: internal-server-error
                status: 500
                detail: Something went wrong. Cannot enable WAAP for this domain. Please try again later or reach out to our support team.
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          client.waap.domains.firewall_rules.delete(
              rule_id=0,
              domain_id=1,
          )
      - lang: Go
        source: |
          package main

          import (
          	"context"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	err := client.Waap.Domains.FirewallRules.Delete(
          		context.TODO(),
          		0,
          		waap.DomainFirewallRuleDeleteParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          }
    patch:
      tags:
      - Firewall Rules
      summary: Update a firewall rule
      description: Only properties present in the request will be updated. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Update firewall rule (V2)](/api-reference/waap/firewall-rules/update-firewall-rule) instead.
      operationId: update_firewall_rule_v1_domains__domain_id__firewall_rules__rule_id__patch
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The firewall rule ID
          title: Rule Id
        description: The firewall rule ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFirewallRule'
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/domains/{domain_id}/firewall-rules/bulk_delete:
    post:
      tags:
      - Firewall Rules
      summary: Delete multiple WAAP rules
      description: Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Delete multiple WAAP firewall rules (V2)](/api-reference/waap/firewall-rules/delete-multiple-waap-firewall-rules) instead.
      operationId: bulk_delete_firewall_rule_v1_domains__domain_id__firewall_rules_bulk_delete_post
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RulesBulkDelete'
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/problem+json:
              example:
                title: Internal server error.
                type: internal-server-error
                status: 500
                detail: Something went wrong. Cannot enable WAAP for this domain. Please try again later or reach out to our support team.
  /waap/v1/domains/{domain_id}/firewall-rules/{rule_id}/{action}:
    patch:
      tags:
      - Firewall Rules
      summary: Toggle a firewall rule
      description: Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Toggle firewall rule (V2)](/api-reference/waap/firewall-rules/toggle-firewall-rule) instead.
      operationId: toggle_rule_v1_domains__domain_id__firewall_rules__rule_id___action__patch
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: action
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/CustomerRuleState'
          description: Enable or disable a firewall rule
        description: Enable or disable a firewall rule
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The firewall rule ID
          title: Rule Id
        description: The firewall rule ID
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/domains/{domain_id}/advanced-rules:
    get:
      tags:
      - Advanced Rules
      summary: Retrieve advanced rules
      description: Retrieve a list of advanced rules assigned to a domain, offering filter, ordering, and pagination capabilities
      operationId: get_advanced_rules_v1_domains__domain_id__advanced_rules_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: ordering
        in: query
        required: false
        schema:
          anyOf:
          - enum:
            - id
            - name
            - description
            - enabled
            - action
            - phase
            - -id
            - -name
            - -description
            - -enabled
            - -action
            - -phase
            type: string
          - type: 'null'
          description: Determine the field to order results by
          examples:
          - -id
          title: Ordering
        description: Determine the field to order results by
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: name
        in: query
        required: false
        schema:
          type: string
          description: Filter rules based on their name. Supports '*' as a wildcard character.
          example: Block by specific IP rule
          examples:
          - Block by specific IP rule
          title: Name
        description: Filter rules based on their name. Supports '*' as a wildcard character.
      - name: description
        in: query
        required: false
        schema:
          type: string
          description: Filter rules based on their description. Supports '*' as a wildcard character.
          example: This rule blocks all the requests coming form a specific IP address
          examples:
          - This rule blocks all the requests coming form a specific IP address
          title: Description
        description: Filter rules based on their description. Supports '*' as a wildcard character.
      - name: action
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/RuleActionType'
          description: Filter to refine results by specific actions
          examples:
          - block
        description: Filter to refine results by specific actions
      - name: enabled
        in: query
        required: false
        schema:
          type: boolean
          description: Filter rules based on their active status
          example: false
          examples:
          - false
          title: Enabled
        description: Filter rules based on their active status
      - name: phase
        in: query
        required: false
        schema:
          enum:
          - access
          - header_filter
          - body_filter
          type: string
          description: |-
            Filter rules based on the WAAP request/response phase for applying the rule.


            The "access" phase is responsible for modifying the request before it is sent to the origin server. 

            The "header_filter" phase is responsible for modifying the HTTP headers of a response before they are sent back to the client.

            The "body_filter" phase is responsible for modifying the body of a response before it is sent back to the client.
          example: access
          examples:
          - access
          title: Phase
        description: |-
          Filter rules based on the WAAP request/response phase for applying the rule.


          The "access" phase is responsible for modifying the request before it is sent to the origin server. 

          The "header_filter" phase is responsible for modifying the HTTP headers of a response before they are sent back to the client.

          The "body_filter" phase is responsible for modifying the body of a response before it is sent back to the client.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_AdvancedRuleResponse_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.domains.advanced_rules.list(
              domain_id=1,
          )
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Domains.AdvancedRules.List(
          		context.TODO(),
          		1,
          		waap.DomainAdvancedRuleListParams{},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
    post:
      tags:
      - Advanced Rules
      summary: Create advanced rule
      operationId: create_advanced_rule_v1_domains__domain_id__advanced_rules_post
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdvancedRule'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdvancedRuleResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Quota limit exceeded
          content:
            application/problem+json:
              example:
                title: Quota limit exceeded
                type: quota-check-limit-exceeded
                status: 403
                detail: You have reached the maximum limit allowed for your current plan. Please upgrade your plan to add more.
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_advanced_rule = client.waap.domains.advanced_rules.create(
              domain_id=1,
              action={},
              enabled=True,
              name="Block foobar bot",
              source="request.rate_limit([], '.*events', 5, 200, [], [], '', 'ip') and not ('mb-web-ui' in request.headers['Cookie'] or 'mb-mobile-ios' in request.headers['Cookie'] or 'session-token' in request.headers['Cookie']) and not request.headers['session']",
          )
          print(waap_advanced_rule.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapAdvancedRule, err := client.Waap.Domains.AdvancedRules.New(
          		context.TODO(),
          		1,
          		waap.DomainAdvancedRuleNewParams{
          			Action:  waap.DomainAdvancedRuleNewParamsAction{},
          			Enabled: true,
          			Name:    "Block foobar bot",
          			Source:  "request.rate_limit([], '.*events', 5, 200, [], [], '', 'ip') and not ('mb-web-ui' in request.headers['Cookie'] or 'mb-mobile-ios' in request.headers['Cookie'] or 'session-token' in request.headers['Cookie']) and not request.headers['session']",
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapAdvancedRule.ID)
          }
  /waap/v1/domains/{domain_id}/advanced-rules/{rule_id}:
    get:
      tags:
      - Advanced Rules
      summary: Retrieve a specific advanced rule
      description: Retrieve a specific advanced rule assigned to a domain
      operationId: get_advanced_rule_v1_domains__domain_id__advanced_rules__rule_id__get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The advanced rule ID
          title: Rule Id
        description: The advanced rule ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdvancedRuleResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_advanced_rule = client.waap.domains.advanced_rules.get(
              rule_id=0,
              domain_id=1,
          )
          print(waap_advanced_rule.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapAdvancedRule, err := client.Waap.Domains.AdvancedRules.Get(
          		context.TODO(),
          		0,
          		waap.DomainAdvancedRuleGetParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapAdvancedRule.ID)
          }
    delete:
      tags:
      - Advanced Rules
      summary: Delete advanced rule
      operationId: delete_advanced_rule_v1_domains__domain_id__advanced_rules__rule_id__delete
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The advanced rule ID
          title: Rule Id
        description: The advanced rule ID
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/problem+json:
              example:
                title: Internal server error.
                type: internal-server-error
                status: 500
                detail: Something went wrong. Cannot enable WAAP for this domain. Please try again later or reach out to our support team.
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          client.waap.domains.advanced_rules.delete(
              rule_id=0,
              domain_id=1,
          )
      - lang: Go
        source: |
          package main

          import (
          	"context"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	err := client.Waap.Domains.AdvancedRules.Delete(
          		context.TODO(),
          		0,
          		waap.DomainAdvancedRuleDeleteParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          }
    patch:
      tags:
      - Advanced Rules
      summary: Update an advanced rule
      description: Only properties present in the request will be updated. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Update advanced rule (V2)](/api-reference/waap/advanced-rules/update-advanced-rule) instead.
      operationId: update_advanced_rule_v1_domains__domain_id__advanced_rules__rule_id__patch
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The advanced rule ID
          title: Rule Id
        description: The advanced rule ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAdvancedRule'
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/domains/{domain_id}/advanced-rules/{rule_id}/{action}:
    patch:
      tags:
      - Advanced Rules
      summary: Toggle an advanced rule
      description: Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Toggle advanced rule (V2)](/api-reference/waap/advanced-rules/toggle-advanced-rule) instead.
      operationId: toggle_rule_v1_domains__domain_id__advanced_rules__rule_id___action__patch
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: action
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/CustomerRuleState'
          description: Enable or disable an advanced rule
        description: Enable or disable an advanced rule
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The advanced rule ID
          title: Rule Id
        description: The advanced rule ID
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/advanced-rules/descriptor:
    get:
      tags:
      - Advanced Rules
      summary: Retrieve an advanced rules descriptor
      operationId: get_advanced_rule_descriptor_v1_advanced_rules_descriptor_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdvancedRuleDescriptorResponse'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
        '422':
          description: Unprocessable Entity
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
        '500':
          description: Internal Server Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_advanced_rule_descriptor_list = client.waap.advanced_rules.list()
          print(waap_advanced_rule_descriptor_list.version)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapAdvancedRuleDescriptorList, err := client.Waap.AdvancedRules.List(context.TODO())
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapAdvancedRuleDescriptorList.Version)
          }
  /waap/v1/domains/{domain_id}/default-rule-overrides:
    get:
      tags:
      - Policy Overrides
      summary: Retrieve policy overrides
      operationId: get_policy_overrides_v1_domains__domain_id__default_rule_overrides_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: ordering
        in: query
        required: false
        schema:
          anyOf:
          - enum:
            - id
            - name
            - target_type
            - enabled
            - stale
            - created_at
            - updated_at
            - -id
            - -name
            - -target_type
            - -enabled
            - -stale
            - -created_at
            - -updated_at
            type: string
          - type: 'null'
          description: Determine the field used to order results.
          title: Ordering
        description: Determine the field used to order results.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: target_type
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/PolicyOverrideTargetType'
          - type: 'null'
          description: Filter by linked target type.
          title: Target Type
        description: Filter by linked target type.
      - name: enabled
        in: query
        required: false
        schema:
          anyOf:
          - type: boolean
          - type: 'null'
          description: Filter by enabled state.
          title: Enabled
        description: Filter by enabled state.
      - name: search
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
          description: Search policy override names and descriptions.
          title: Search
        description: Search policy override names and descriptions.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_PolicyOverrideResponse_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.domains.policy_overrides.list(
              domain_id=1,
          )
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Domains.PolicyOverrides.List(
          		context.TODO(),
          		1,
          		waap.DomainPolicyOverrideListParams{},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
    post:
      tags:
      - Policy Overrides
      summary: Create a policy override
      operationId: create_policy_override_v1_domains__domain_id__default_rule_overrides_post
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyOverrideCreate'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyOverrideResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Quota limit exceeded
          content:
            application/problem+json:
              example:
                title: Quota limit exceeded
                type: quota-check-limit-exceeded
                status: 403
                detail: You have reached the maximum limit allowed for your current plan. Please upgrade your plan to add more.
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_policy_override = client.waap.domains.policy_overrides.create(
              domain_id=1,
              enabled=True,
              name="x",
              target_ids=[1],
              target_type="detector",
          )
          print(waap_policy_override.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapPolicyOverride, err := client.Waap.Domains.PolicyOverrides.New(
          		context.TODO(),
          		1,
          		waap.DomainPolicyOverrideNewParams{
          			Enabled:    true,
          			Name:       "x",
          			TargetIDs:  []int64{1},
          			TargetType: waap.DomainPolicyOverrideNewParamsTargetTypeDetector,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapPolicyOverride.ID)
          }
  /waap/v1/domains/{domain_id}/default-rule-overrides/{policy_override_id}:
    get:
      tags:
      - Policy Overrides
      summary: Retrieve a policy override
      operationId: get_policy_override_v1_domains__domain_id__default_rule_overrides__policy_override_id__get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: policy_override_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: Policy override ID
          title: Policy Override Id
        description: Policy override ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyOverrideResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_policy_override = client.waap.domains.policy_overrides.get(
              policy_override_id=1,
              domain_id=1,
          )
          print(waap_policy_override.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapPolicyOverride, err := client.Waap.Domains.PolicyOverrides.Get(
          		context.TODO(),
          		1,
          		waap.DomainPolicyOverrideGetParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapPolicyOverride.ID)
          }
    patch:
      tags:
      - Policy Overrides
      summary: Update a policy override
      operationId: update_policy_override_v1_domains__domain_id__default_rule_overrides__policy_override_id__patch
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: policy_override_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: Policy override ID
          title: Policy Override Id
        description: Policy override ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyOverrideUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyOverrideResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Quota limit exceeded
          content:
            application/problem+json:
              example:
                title: Quota limit exceeded
                type: quota-check-limit-exceeded
                status: 403
                detail: You have reached the maximum limit allowed for your current plan. Please upgrade your plan to add more.
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/problem+json:
              example:
                title: Internal server error.
                type: internal-server-error
                status: 500
                detail: Something went wrong. Cannot enable WAAP for this domain. Please try again later or reach out to our support team.
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_policy_override = client.waap.domains.policy_overrides.update(
              policy_override_id=1,
              domain_id=1,
          )
          print(waap_policy_override.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapPolicyOverride, err := client.Waap.Domains.PolicyOverrides.Update(
          		context.TODO(),
          		1,
          		waap.DomainPolicyOverrideUpdateParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapPolicyOverride.ID)
          }
    delete:
      tags:
      - Policy Overrides
      summary: Delete a policy override
      operationId: delete_policy_override_v1_domains__domain_id__default_rule_overrides__policy_override_id__delete
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: policy_override_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: Policy override ID
          title: Policy Override Id
        description: Policy override ID
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/problem+json:
              example:
                title: Internal server error.
                type: internal-server-error
                status: 500
                detail: Something went wrong. Cannot enable WAAP for this domain. Please try again later or reach out to our support team.
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          client.waap.domains.policy_overrides.delete(
              policy_override_id=1,
              domain_id=1,
          )
      - lang: Go
        source: |
          package main

          import (
          	"context"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	err := client.Waap.Domains.PolicyOverrides.Delete(
          		context.TODO(),
          		1,
          		waap.DomainPolicyOverrideDeleteParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          }
  /waap/v1/domains/{domain_id}/policy-override-targets/owasp-top-threats:
    get:
      tags:
      - Policy Overrides
      summary: List OWASP Top Threats targets selectable as a policy override target
      operationId: get_owasp_top_threats_targets_v1_domains__domain_id__policy_override_targets_owasp_top_threats_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_OwaspTopThreatsTarget_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.domains.policy_overrides.list_owasp_top_threats_targets(
              domain_id=1,
          )
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Domains.PolicyOverrides.ListOwaspTopThreatsTargets(
          		context.TODO(),
          		1,
          		waap.DomainPolicyOverrideListOwaspTopThreatsTargetsParams{},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v1/tags:
    get:
      tags:
      - Tags
      summary: Retrieve tags available for use in WAAP rule conditions sorted by name
      description: Tags are shortcuts for the rules used in WAAP policies for the creation of more complex WAAP rules
      operationId: get_tags_v1_tags_get
      parameters:
      - name: ordering
        in: query
        required: false
        schema:
          anyOf:
          - enum:
            - name
            - readable_name
            - reserved
            - -name
            - -readable_name
            - -reserved
            type: string
          - type: 'null'
          description: Determine the field to order results by
          examples:
          - name
          title: Ordering
        description: Determine the field to order results by
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: name
        in: query
        required: false
        schema:
          type: string
          pattern: ^[a-zA-Z0-9*_]*$
          description: Filter tags by their name. Supports '*' as a wildcard character.
          example: xss
          examples:
          - xss
          title: Name
        description: Filter tags by their name. Supports '*' as a wildcard character.
      - name: readable_name
        in: query
        required: false
        schema:
          type: string
          pattern: ^[a-zA-Z0-9*_\- ]*$
          description: Filter tags by their readable name. Supports '*' as a wildcard character.
          example: Cross-Site Scripting
          examples:
          - Cross-Site Scripting
          title: Readable Name
        description: Filter tags by their readable name. Supports '*' as a wildcard character.
      - name: reserved
        in: query
        required: false
        schema:
          type: boolean
          description: Filter to include only reserved tags.
          title: Reserved
        description: Filter to include only reserved tags.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_Tag_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.tags.list()
          page = page.results[0]
          print(page.description)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Tags.List(context.TODO(), waap.TagListParams{})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v1/organizations:
    get:
      tags:
      - Network Organizations
      summary: Retrieve a list of network organizations
      description: This endpoint retrieves a list of network organizations that own IP ranges as identified by the Whois service.It supports pagination, filtering based on various parameters, and ordering of results.
      operationId: get_organizations_v1_organizations_get
      parameters:
      - name: ordering
        in: query
        required: false
        schema:
          anyOf:
          - enum:
            - name
            - id
            - -name
            - -id
            type: string
          - type: 'null'
          description: Determine the field to order results by
          examples:
          - name
          title: Ordering
        description: Determine the field to order results by
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: name
        in: query
        required: false
        schema:
          type: string
          description: Filter organizations by their name. Supports '*' as a wildcard character.
          example: Comcast
          examples:
          - Comcast
          title: Name
        description: Filter organizations by their name. Supports '*' as a wildcard character.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_Organization_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.organizations.list()
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Organizations.List(context.TODO(), waap.OrganizationListParams{})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v1/domains/{domain_id}/api-paths:
    get:
      tags:
      - API Discovery
      summary: Retrieve a list of API paths
      description: Retrieve a list of API paths for a specific domain. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [List API paths (V2)](/api-reference/waap/api-discovery/list-api-paths) instead.
      operationId: get_api_paths_v1_domains__domain_id__api_paths_get
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: ordering
        in: query
        required: false
        schema:
          enum:
          - id
          - path
          - method
          - api_version
          - http_scheme
          - first_detected
          - last_detected
          - status
          - source
          - -id
          - -path
          - -method
          - -api_version
          - -http_scheme
          - -first_detected
          - -last_detected
          - -status
          - -source
          type: string
          description: Sort the response by given field.
          title: Ordering
        description: Sort the response by given field.
      - name: ids
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              format: uuid
          - type: 'null'
          description: Filter by the path ID
          title: Ids
        description: Filter by the path ID
      - name: path
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 1024
          - type: 'null'
          description: Filter by the path. Supports '*' as a wildcard character
          title: Path
        description: Filter by the path. Supports '*' as a wildcard character
      - name: method
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/ApiPathMethod'
          - type: 'null'
          description: Filter by the API RESTful method
          title: Method
        description: Filter by the API RESTful method
      - name: api_version
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 32
          - type: 'null'
          description: Filter by the API version
          title: Api Version
        description: Filter by the API version
      - name: http_scheme
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/ApiPathHttpScheme'
          - type: 'null'
          description: Filter by the HTTP version of the API path
          title: Http Scheme
        description: Filter by the HTTP version of the API path
      - name: api_group
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by the API group associated with the API path
          title: Api Group
        description: Filter by the API group associated with the API path
      - name: status
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/ApiPathStatus'
          - type: 'null'
          description: Filter by the status of the discovered API path
          title: Status
        description: Filter by the status of the discovered API path
      - name: source
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/ApiPathSource'
          - type: 'null'
          description: Filter by the source of the discovered API
          title: Source
        description: Filter by the source of the discovered API
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 10
          minimum: 0
          description: Number of items to return
          default: 10
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_ApiPathResponse_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
    post:
      tags:
      - API Discovery
      summary: Create an API path
      description: Create an API path for a domain. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Create API path (V2)](/api-reference/waap/api-discovery/create-api-path) instead.
      operationId: create_api_path_v1_domains__domain_id__api_paths_post
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApiPath'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPathResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/domains/{domain_id}/api-paths/{path_id}:
    get:
      tags:
      - API Discovery
      summary: Retrieve an API path
      description: Retrieve a specific API path for a domain. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Get API path (V2)](/api-reference/waap/api-discovery/get-api-path) instead.
      operationId: get_api_path_v1_domains__domain_id__api_paths__path_id__get
      deprecated: true
      parameters:
      - name: path_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The path ID
          title: Path Id
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPathResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
    patch:
      tags:
      - API Discovery
      summary: Update an API path
      description: Update a specific API path for a domain. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Update API path (V2)](/api-reference/waap/api-discovery/update-api-path) instead.
      operationId: update_api_path_v1_domains__domain_id__api_paths__path_id__patch
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: path_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The path ID
          title: Path Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateApiPath'
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
    delete:
      tags:
      - API Discovery
      summary: Delete an API path
      description: Delete a specific API path for a domain. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Delete API path (V2)](/api-reference/waap/api-discovery/delete-api-path) instead.
      operationId: delete_api_path_v1_domains__domain_id__api_paths__path_id__delete
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: path_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The path ID
          title: Path Id
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/domains/{domain_id}/api-path-groups:
    get:
      tags:
      - API Discovery
      summary: Get a list of API path groups
      description: Retrieve a list of API path groups for a specific domain
      operationId: get_api_groups_v1_domains__domain_id__api_path_groups_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPathGroups'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          api_path_group_list = client.waap.domains.api_path_groups.list(
              1,
          )
          print(api_path_group_list.api_path_groups)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	apiPathGroupList, err := client.Waap.Domains.APIPathGroups.List(context.TODO(), 1)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", apiPathGroupList.APIPathGroups)
          }
  /waap/v1/domains/{domain_id}/api-discovery/upload:
    post:
      tags:
      - API Discovery
      summary: Upload and scan an API description file
      description: |-
        An API description file must adhere to the OpenAPI specification and be written in YAML or JSON format.
        The file name should be provided as the value for the `file_name` parameter.
        The contents of the file must be base64 encoded and supplied as the value for the `file_data` parameter.
      operationId: upload_spec_file_v1_domains__domain_id__api_discovery_upload_post
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSpecFile'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskResultId'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_task_id = client.waap.domains.api_discovery.openapi.upload(
              domain_id=1,
              file_data="file_data",
              file_name="file_name",
          )
          print(waap_task_id.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapTaskID, err := client.Waap.Domains.APIDiscovery.OpenAPI.Upload(
          		context.TODO(),
          		1,
          		waap.DomainAPIDiscoveryOpenAPIUploadParams{
          			FileData: "file_data",
          			FileName: "file_name",
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapTaskID.ID)
          }
  /waap/v1/domains/{domain_id}/api-discovery/scan:
    post:
      tags:
      - API Discovery
      summary: Scan an API description file
      description: |-
        Scan an API description file hosted online.
        The file must be in YAML or JSON format and adhere to the OpenAPI specification.
        The location of the API description file should be specified in the API discovery settings.
      operationId: scan_spec_file_v1_domains__domain_id__api_discovery_scan_post
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskResultId'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_task_id = client.waap.domains.api_discovery.openapi.scan(
              1,
          )
          print(waap_task_id.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapTaskID, err := client.Waap.Domains.APIDiscovery.OpenAPI.Scan(context.TODO(), 1)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapTaskID.ID)
          }
  /waap/v1/domains/{domain_id}/api-discovery/settings:
    get:
      tags:
      - API Discovery
      summary: Get the API discovery settings
      description: Retrieve the API discovery settings for a domain
      operationId: get_api_discovery_settings_v1_domains__domain_id__api_discovery_settings_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDiscoverySettings'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_api_discovery_settings = client.waap.domains.api_discovery.settings.get(
              1,
          )
          print(waap_api_discovery_settings.description_file_location)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapAPIDiscoverySettings, err := client.Waap.Domains.APIDiscovery.Settings.Get(context.TODO(), 1)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapAPIDiscoverySettings.DescriptionFileLocation)
          }
    patch:
      tags:
      - API Discovery
      summary: Update the API discovery settings
      description: Update the API discovery settings for a domain
      operationId: update_api_discovery_settings_v1_domains__domain_id__api_discovery_settings_patch
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateApiDiscoverySettings'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDiscoverySettings'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_api_discovery_settings = client.waap.domains.api_discovery.settings.update(
              domain_id=1,
          )
          print(waap_api_discovery_settings.description_file_location)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapAPIDiscoverySettings, err := client.Waap.Domains.APIDiscovery.Settings.Update(
          		context.TODO(),
          		1,
          		waap.DomainAPIDiscoverySettingUpdateParams{},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapAPIDiscoverySettings.DescriptionFileLocation)
          }
  /waap/v1/domains/{domain_id}/api-discovery/scan-results:
    get:
      tags:
      - API Discovery
      summary: Get Scan Results
      operationId: get_scan_results_v1_domains__domain_id__api_discovery_scan_results_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: ordering
        in: query
        required: false
        schema:
          enum:
          - id
          - type
          - start_time
          - end_time
          - status
          - message
          - -id
          - -type
          - -start_time
          - -end_time
          - -status
          - -message
          type: string
          description: Sort the response by given field.
          default: -start_time
          title: Ordering
        description: Sort the response by given field.
      - name: type
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/ApiScanType'
          - type: 'null'
          description: Filter by the path of the scan type
          title: Type
        description: Filter by the path of the scan type
      - name: status
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/TaskResultStatus'
          - type: 'null'
          description: Filter by the status of the scan
          title: Status
        description: Filter by the status of the scan
      - name: message
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 1024
          - type: 'null'
          description: Filter by the message of the scan. Supports '*' as a wildcard character
          title: Message
        description: Filter by the message of the scan. Supports '*' as a wildcard character
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_ApiScanResult_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.domains.api_discovery.scan_results.list(
              domain_id=1,
          )
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Domains.APIDiscovery.ScanResults.List(
          		context.TODO(),
          		1,
          		waap.DomainAPIDiscoveryScanResultListParams{},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v1/domains/{domain_id}/api-discovery/scan-results/{scan_id}:
    get:
      tags:
      - API Discovery
      summary: Get Scan Result
      operationId: get_scan_result_v1_domains__domain_id__api_discovery_scan_results__scan_id__get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: scan_id
        in: path
        required: true
        schema:
          type: string
          description: The scan ID
          title: Scan Id
        description: The scan ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiScanResult'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_api_scan_result = client.waap.domains.api_discovery.scan_results.get(
              scan_id="scan_id",
              domain_id=1,
          )
          print(waap_api_scan_result.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapAPIScanResult, err := client.Waap.Domains.APIDiscovery.ScanResults.Get(
          		context.TODO(),
          		"scan_id",
          		waap.DomainAPIDiscoveryScanResultGetParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapAPIScanResult.ID)
          }
  /waap/v1/ip-info/attack-map:
    get:
      tags:
      - IP Spotlight
      summary: Get a list of countries attacked by a specific IP
      description: Retrieve a list of countries attacked by the specified IP address
      operationId: get_attack_map_v1_ip_info_attack_map_get
      parameters:
      - name: ip
        in: query
        required: true
        schema:
          anyOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          description: The IP address to check
          title: Ip
        description: The IP address to check
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IpCountryAttack'
                maxItems: 10
                title: Response Get Attack Map V1 Ip Info Attack Map Get
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_ip_country_attacks = client.waap.ip_info.list_attacked_countries(
              ip="192.168.1.1",
          )
          print(waap_ip_country_attacks)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapIPCountryAttacks, err := client.Waap.IPInfo.ListAttackedCountries(context.TODO(), waap.IPInfoListAttackedCountriesParams{
          		IP: "192.168.1.1",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapIPCountryAttacks)
          }
  /waap/v1/ip-info/counts:
    get:
      tags:
      - IP Spotlight
      summary: Fetch request and session metrics for a given IP address (and optionally a domain)
      description: Retrieve metrics encompassing the counts of total requests, blocked requests and unique sessions associated with a specified IP address. Metrics provide a statistical overview, aiding in analyzing the interaction and access patterns of the IP address in context.
      operationId: get_counts_v1_ip_info_counts_get
      parameters:
      - name: ip
        in: query
        required: true
        schema:
          anyOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          description: The IP address to check
          title: Ip
        description: The IP address to check
      - name: domain_id
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            exclusiveMinimum: 0
            title: Domain ID
            description: The identifier for a domain. When specified, the response will exclusively contain data pertinent to the indicated domain, filtering out information from other domains.
          - type: 'null'
          title: Domain Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IpInfoCounts'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_ip_info_counts = client.waap.ip_info.metrics.list(
              ip="192.168.1.1",
          )
          print(waap_ip_info_counts.blocked_requests)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapIPInfoCounts, err := client.Waap.IPInfo.Metrics.List(context.TODO(), waap.IPInfoMetricListParams{
          		IP: "192.168.1.1",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapIPInfoCounts.BlockedRequests)
          }
  /waap/v1/ip-info/attack-time-series:
    get:
      tags:
      - IP Spotlight
      summary: Retrieve a time-series of attacks from a specified IP
      description: Retrieve a time-series of attacks originating from a specified IP address.
      operationId: get_attack_time_series_v1_ip_info_attack_time_series_get
      parameters:
      - name: ip
        in: query
        required: true
        schema:
          anyOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          description: The IP address to check
          title: Ip
        description: The IP address to check
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TimeSeriesAttack'
                title: Response Get Attack Time Series V1 Ip Info Attack Time Series Get
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_time_series_attacks = client.waap.ip_info.get_attack_time_series(
              ip="192.168.1.1",
          )
          print(waap_time_series_attacks)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapTimeSeriesAttacks, err := client.Waap.IPInfo.GetAttackTimeSeries(context.TODO(), waap.IPInfoGetAttackTimeSeriesParams{
          		IP: "192.168.1.1",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapTimeSeriesAttacks)
          }
  /waap/v1/ip-info/blocked-requests:
    get:
      tags:
      - IP Spotlight
      summary: Fetch metrics of blocked requests from a specific IP to a domain, categorized by rule and action
      description: Retrieve metrics, which enumerate blocked requests originating from a specific IP to a domain, grouped by rule name and taken action. Each metric provides insights into the request count blocked under a specific rule and the corresponding action that was executed.
      operationId: get_blocked_requests_v1_ip_info_blocked_requests_get
      parameters:
      - name: ip
        in: query
        required: true
        schema:
          anyOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          description: The IP address to check
          title: Ip
        description: The IP address to check
      - name: domain_id
        in: query
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          title: Domain ID
          description: The identifier for a domain. When specified, the response will exclusively contain data pertinent to the indicated domain, filtering out information from other domains.
        description: The identifier for a domain. When specified, the response will exclusively contain data pertinent to the indicated domain, filtering out information from other domains.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RuleBlockedRequests'
                maxItems: 10
                title: Response Get Blocked Requests V1 Ip Info Blocked Requests Get
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_rule_blocked_requests = client.waap.ip_info.get_blocked_requests(
              domain_id=1,
              ip="192.168.1.1",
          )
          print(waap_rule_blocked_requests)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapRuleBlockedRequests, err := client.Waap.IPInfo.GetBlockedRequests(context.TODO(), waap.IPInfoGetBlockedRequestsParams{
          		DomainID: 1,
          		IP:       "192.168.1.1",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapRuleBlockedRequests)
          }
  /waap/v1/ip-info/top-attacks:
    get:
      tags:
      - IP Spotlight
      summary: Get top attack types for a specific IP (account-wide)
      description: Returns top attack types with associated domains, paths, and counts across all account domains
      operationId: get_top_attacks_v1_ip_info_top_attacks_get
      parameters:
      - name: ip
        in: query
        required: true
        schema:
          anyOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          description: The IP address to check
          title: Ip
        description: The IP address to check
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TopAttack'
                maxItems: 10
                title: Response Get Top Attacks V1 Ip Info Top Attacks Get
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_top_attacks = client.waap.ip_info.get_top_attacks(
              ip="192.168.1.1",
          )
          print(waap_top_attacks)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapTopAttacks, err := client.Waap.IPInfo.GetTopAttacks(context.TODO(), waap.IPInfoGetTopAttacksParams{
          		IP: "192.168.1.1",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapTopAttacks)
          }
  /waap/v1/ip-info/top-urls:
    get:
      tags:
      - IP Spotlight
      summary: Retrieve top 10 accessed URLs for an IP on a domain
      description: Returns a list of the top 10 URLs accessed by a specified IP address within a specific domain. This data is vital to understand user navigation patterns, pinpoint high-traffic pages, and facilitate more targeted enhancements or security monitoring based on URL popularity.
      operationId: get_top_urls_v1_ip_info_top_urls_get
      parameters:
      - name: ip
        in: query
        required: true
        schema:
          anyOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          description: The IP address to check
          title: Ip
        description: The IP address to check
      - name: domain_id
        in: query
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          title: Domain ID
          description: The identifier for a domain. When specified, the response will exclusively contain data pertinent to the indicated domain, filtering out information from other domains.
        description: The identifier for a domain. When specified, the response will exclusively contain data pertinent to the indicated domain, filtering out information from other domains.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TopUrl'
                maxItems: 10
                title: Response Get Top Urls V1 Ip Info Top Urls Get
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_top_urls = client.waap.ip_info.get_top_urls(
              domain_id=1,
              ip="192.168.1.1",
          )
          print(waap_top_urls)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapTopURLs, err := client.Waap.IPInfo.GetTopURLs(context.TODO(), waap.IPInfoGetTopURLsParams{
          		DomainID: 1,
          		IP:       "192.168.1.1",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapTopURLs)
          }
  /waap/v1/ip-info/top-user-agents:
    get:
      tags:
      - IP Spotlight
      summary: Fetch top user agents
      description: Retrieve the top 10 user agents interacting with a specified domain, filtered by IP.
      operationId: get_top_user_agents_v1_ip_info_top_user_agents_get
      parameters:
      - name: ip
        in: query
        required: true
        schema:
          anyOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          description: The IP address to check
          title: Ip
        description: The IP address to check
      - name: domain_id
        in: query
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          title: Domain ID
          description: The identifier for a domain. When specified, the response will exclusively contain data pertinent to the indicated domain, filtering out information from other domains.
        description: The identifier for a domain. When specified, the response will exclusively contain data pertinent to the indicated domain, filtering out information from other domains.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TopUserAgent'
                maxItems: 10
                title: Response Get Top User Agents V1 Ip Info Top User Agents Get
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_top_user_agents = client.waap.ip_info.get_top_user_agents(
              domain_id=1,
              ip="192.168.1.1",
          )
          print(waap_top_user_agents)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapTopUserAgents, err := client.Waap.IPInfo.GetTopUserAgents(context.TODO(), waap.IPInfoGetTopUserAgentsParams{
          		DomainID: 1,
          		IP:       "192.168.1.1",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapTopUserAgents)
          }
  /waap/v1/ip-info/top-domains:
    get:
      tags:
      - IP Spotlight
      summary: Get top attacked domains from a specific IP (account-scoped)
      description: Retrieve top attacked domains for an IP address, scoped to the authenticated account's domains
      operationId: get_top_domains_v1_ip_info_top_domains_get
      parameters:
      - name: ip
        in: query
        required: true
        schema:
          anyOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          description: The IP address to check
          title: Ip
        description: The IP address to check
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TopDomainDetail'
                maxItems: 10
                title: Response Get Top Domains V1 Ip Info Top Domains Get
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_top_domain_details = client.waap.ip_info.get_top_domains(
              ip="192.168.1.1",
          )
          print(waap_top_domain_details)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapTopDomainDetails, err := client.Waap.IPInfo.GetTopDomains(context.TODO(), waap.IPInfoGetTopDomainsParams{
          		IP: "192.168.1.1",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapTopDomainDetails)
          }
  /waap/v1/ip-info/top-sessions:
    get:
      tags:
      - IP Spotlight
      summary: Retrieve top user sessions
      description: Obtain the top 10 user sessions interfacing with a particular domain, identified by IP.
      operationId: get_top_sessions_v1_ip_info_top_sessions_get
      parameters:
      - name: ip
        in: query
        required: true
        schema:
          anyOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          description: The IP address to check
          title: Ip
        description: The IP address to check
      - name: domain_id
        in: query
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          title: Domain ID
          description: The identifier for a domain. When specified, the response will exclusively contain data pertinent to the indicated domain, filtering out information from other domains.
        description: The identifier for a domain. When specified, the response will exclusively contain data pertinent to the indicated domain, filtering out information from other domains.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TopSession'
                maxItems: 10
                title: Response Get Top Sessions V1 Ip Info Top Sessions Get
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_top_sessions = client.waap.ip_info.get_top_user_sessions(
              domain_id=1,
              ip="192.168.1.1",
          )
          print(waap_top_sessions)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapTopSessions, err := client.Waap.IPInfo.GetTopUserSessions(context.TODO(), waap.IPInfoGetTopUserSessionsParams{
          		DomainID: 1,
          		IP:       "192.168.1.1",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapTopSessions)
          }
  /waap/v1/ip-info/ddos:
    get:
      tags:
      - IP Spotlight
      summary: Retrieve time-series DDoS metrics for a specific IP address
      description: Fetch and analyze DDoS (Distributed Denial of Service) attack metrics for a specified IP address. The endpoint provides time-series data, enabling users to evaluate the frequency and intensity of attacks across various time intervals, and it returns metrics in Prometheus format to offer a systematic view of DDoS attack patterns.
      operationId: get_ip_ddos_info_v1_ip_info_ddos_get
      parameters:
      - name: ip
        in: query
        required: true
        schema:
          anyOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          description: The IP address to check
          title: Ip
        description: The IP address to check
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IpDdosInfo'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_ip_ddos_info_model = client.waap.ip_info.get_ddos_attack_series(
              ip="192.168.1.1",
          )
          print(waap_ip_ddos_info_model.botnet_client)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapIPDDOSInfoModel, err := client.Waap.IPInfo.GetDDOSAttackSeries(context.TODO(), waap.IPInfoGetDDOSAttackSeriesParams{
          		IP: "192.168.1.1",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapIPDDOSInfoModel.BotnetClient)
          }
  /waap/v1/ip-info/ip-info:
    get:
      tags:
      - IP Spotlight
      summary: Retrieve comprehensive IP address data
      description: Fetch details about a particular IP address, including WHOIS data, risk score, and additional tags.
      operationId: get_ip_info_v1_ip_info_ip_info_get
      parameters:
      - name: ip
        in: query
        required: true
        schema:
          anyOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          description: The IP address to check
          title: Ip
        description: The IP address to check
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IpInfo'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_ip_info = client.waap.ip_info.get_ip_info(
              ip="192.168.1.1",
          )
          print(waap_ip_info.risk_score)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapIPInfo, err := client.Waap.IPInfo.GetIPInfo(context.TODO(), waap.IPInfoGetIPInfoParams{
          		IP: "192.168.1.1",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapIPInfo.RiskScore)
          }
  /waap/v1/domains/{domain_id}/insights:
    get:
      tags:
      - Security Insights
      summary: Retrieve a list of insights
      description: Retrieve a list of insights for a specific domain.
      operationId: get_insights_v1_domains__domain_id__insights_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: ordering
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/InsightSortBy'
          description: Sort the response by given field.
          default: -last_seen
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: id
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              format: uuid
          - type: 'null'
          description: The ID of the insight
          title: Id
        description: The ID of the insight
      - name: insight_type
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: The type of the insight
          title: Insight Type
        description: The type of the insight
      - name: status
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/InsightStatus'
          - type: 'null'
          description: The status of the insight
          title: Status
        description: The status of the insight
      - name: description
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 450
          - type: 'null'
          description: The description of the insight. Supports '*' as a wildcard.
          title: Description
        description: The description of the insight. Supports '*' as a wildcard.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_Insight_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.domains.insights.list(
              domain_id=1,
          )
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Domains.Insights.List(
          		context.TODO(),
          		1,
          		waap.DomainInsightListParams{},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v1/domains/{domain_id}/insights/{insight_id}:
    get:
      tags:
      - Security Insights
      summary: Retrieve a specific insight
      description: Retrieve a specific insight for a specific domain.
      operationId: get_insight_v1_domains__domain_id__insights__insight_id__get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: insight_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Insight Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Insight'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_insight = client.waap.domains.insights.get(
              insight_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
              domain_id=1,
          )
          print(waap_insight.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapInsight, err := client.Waap.Domains.Insights.Get(
          		context.TODO(),
          		"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
          		waap.DomainInsightGetParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapInsight.ID)
          }
    put:
      tags:
      - Security Insights
      summary: Update an insight
      description: Update the status of an insight for a specific domain.
      operationId: update_insight_v1_domains__domain_id__insights__insight_id__put
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: insight_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The ID of the insight
          title: Insight Id
        description: The ID of the insight
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateInsightPayload'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Insight'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_insight = client.waap.domains.insights.replace(
              insight_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
              domain_id=1,
              status="OPEN",
          )
          print(waap_insight.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapInsight, err := client.Waap.Domains.Insights.Replace(
          		context.TODO(),
          		"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
          		waap.DomainInsightReplaceParams{
          			DomainID: 1,
          			Status:   waap.DomainInsightReplaceParamsStatusOpen,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapInsight.ID)
          }
  /waap/v1/security-insights/types:
    get:
      tags:
      - Security Insights
      summary: Retrieve a list of insight types
      description: Insight types are generalized categories that encompass various specific occurrences of the same kind.
      operationId: get_insight_types_v1_security_insights_types_get
      parameters:
      - name: ordering
        in: query
        required: false
        schema:
          enum:
          - name
          - -name
          - slug
          - -slug
          - insight_frequency
          - -insight_frequency
          type: string
          description: Sort the response by given field.
          default: name
          title: Ordering
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: name
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by the name of the insight type
          title: Name
        description: Filter by the name of the insight type
      - name: slug
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
            description: The slug of the insight type
          - type: 'null'
          description: Filter by the slug of the insight type
          title: Slug
        description: Filter by the slug of the insight type
      - name: insight_frequency
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            exclusiveMinimum: 0
          - type: 'null'
          description: Filter by the frequency of the insight type
          title: Insight Frequency
        description: Filter by the frequency of the insight type
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_InsightType_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.insights.list_types()
          page = page.results[0]
          print(page.description)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Insights.ListTypes(context.TODO(), waap.InsightListTypesParams{})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v1/domains/{domain_id}/insight-silences:
    post:
      tags:
      - Security Insights
      summary: Create an insight silence
      description: Create a new insight silence for a specified domain. Insight silences help in temporarily disabling certain insights based on specific criteria. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Create insight silence (V2)](/api-reference/waap/security-insights/create-insight-silence) instead.
      operationId: create_insight_silence_v1_domains__domain_id__insight_silences_post
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateInsightSilencePayload'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsightSilence'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
    get:
      tags:
      - Security Insights
      summary: Retrieve a list of insight silences
      description: Retrieve a list of insight silences for a specific domain. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [List insight silences (V2)](/api-reference/waap/security-insights/list-insight-silences) instead.
      operationId: get_insight_silences_v1_domains__domain_id__insight_silences_get
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: ordering
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/InsightSilenceSortBy'
          description: Sort the response by given field.
          default: -id
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: id
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              format: uuid
          - type: 'null'
          description: The ID of the insight silence
          title: Id
        description: The ID of the insight silence
      - name: insight_type
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: The type of the insight silence
          title: Insight Type
        description: The type of the insight silence
      - name: comment
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The comment of the insight silence
          title: Comment
        description: The comment of the insight silence
      - name: author
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The author of the insight silence
          title: Author
        description: The author of the insight silence
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_InsightSilence_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/domains/{domain_id}/insight-silences/{silence_id}:
    get:
      tags:
      - Security Insights
      summary: Retrieve a specific insight silence
      description: Retrieve a specific insight silence for a specific domain. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Get insight silence (V2)](/api-reference/waap/security-insights/get-insight-silence) instead.
      operationId: get_insight_silence_v1_domains__domain_id__insight_silences__silence_id__get
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: silence_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: A generated unique identifier for the silence
          title: Silence Id
        description: A generated unique identifier for the silence
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsightSilence'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
    patch:
      tags:
      - Security Insights
      summary: Update an insight silence
      description: Update an insight silence for a specific domain. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Update insight silence (V2)](/api-reference/waap/security-insights/update-insight-silence) instead.
      operationId: update_insight_silence_v1_domains__domain_id__insight_silences__silence_id__patch
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: silence_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: A generated unique identifier for the silence
          title: Silence Id
        description: A generated unique identifier for the silence
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateInsightSilencePayload'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsightSilence'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
    delete:
      tags:
      - Security Insights
      summary: Delete an insight silence
      description: Delete an insight silence for a specific domain. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Delete insight silence (V2)](/api-reference/waap/security-insights/delete-insight-silence) instead.
      operationId: delete_insight_silence_v1_domains__domain_id__insight_silences__silence_id__delete
      deprecated: true
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: silence_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: A generated unique identifier for the silence
          title: Silence Id
        description: A generated unique identifier for the silence
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
  /waap/v1/ip-reputation:
    get:
      tags:
      - IP Reputation
      summary: Get a IP tags
      description: Retrieve a list of tags associated with the IP address grouped by domains. This will return records for all domains which were accessed by the IP and received tags.
      operationId: get_ip_reputation_summary_v1_ip_reputation_get
      parameters:
      - name: ip
        in: query
        required: true
        schema:
          type: string
          format: ipvanyaddress
          title: Ip
        description: The IP address to check
      - name: ordering
        in: query
        required: false
        schema:
          enum:
          - date
          - -date
          - domain_name
          - -domain_name
          type: string
          description: Sort the response by given field.
          default: -date
          title: Ordering
        description: Sort the response by given field.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_LocalIpTagsRecord_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.ip_reputation.list(
              ip="ip",
          )
          page = page.results[0]
          print(page.date)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.IPReputation.List(context.TODO(), waap.IPReputationListParams{
          		IP: "ip",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v1/ip-reputation/clear-local-tags:
    post:
      tags:
      - IP Reputation
      summary: Clear local IP tags
      description: Clear all tags associated between the provided IP addresses and domains. Deprecated. Will become unavailable after Sun, 13 Dec 2026. Use [Clear local IP reputation tags (V2)](/api-reference/waap/ip-reputation/clear-local-ip-reputation-tags) instead.
      operationId: delete_local_ip_tags_v1_ip_reputation_clear_local_tags_post
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/IPReputationDeleteRequest'
              type: array
              maxItems: 100
              minItems: 1
              title: Items
        required: true
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
        '422':
          description: Unprocessable Entity
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
        '500':
          description: Internal Server Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
      deprecated: true
  /waap/v1/analytics/stats/{dimension}:
    get:
      tags:
      - Analytics
      summary: Get Simple Event Statistics
      description: Retrieves event statistics per given dimension of a request characteristics. A WAAP _Event_ represents a request observed by the system. The report contains the total, blocked, suppressed, and allowed event counts for top ten points in the selected dimension.
      operationId: get_simple_event_statistics_v1_analytics_stats__dimension__get
      parameters:
      - name: dimension
        in: path
        required: true
        schema:
          enum:
          - country
          - rule
          - org
          - ip
          - useragent
          - target
          type: string
          description: A request characteristics dimension
          title: Dimension
        description: A request characteristics dimension
      - name: domains
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            exclusiveMinimum: 0
            description: Domain ID
          description: List of domain IDs. Empty list means all domains belonging to the current account.
          example: &id001
          - 1
          - 2
          - 3
          examples:
          - *id001
          title: Domains
        description: List of domain IDs. Empty list means all domains belonging to the current account.
      - name: order_by
        in: query
        required: false
        schema:
          enum:
          - total.desc
          - threats.desc
          type: string
          description: Ordering applied to the ranked points within the dimension. `total.desc` ranks by total event count descending; `threats.desc` ranks by threat (blocked and monitored) event count descending.
          default: total.desc
          title: Order By
        description: Ordering applied to the ranked points within the dimension. `total.desc` ranks by total event count descending; `threats.desc` ranks by threat (blocked and monitored) event count descending.
      - name: start
        in: query
        required: true
        schema:
          type: string
          description: Filter data items starting from a specified date in ISO 8601 format
          example: '2024-04-13T00:00:00+01:00'
          examples:
          - '2024-04-13T00:00:00+01:00'
          title: Start
        description: Filter data items starting from a specified date in ISO 8601 format
      - name: end
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
          examples:
          - '2024-04-14T12:00:00Z'
          title: End
        description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
      - name: ips
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            format: ipvanyaddress
          maxItems: 10
          description: Filter statistics by client IP addresses (max 10).
          example: &id002
          - 1.2.3.4
          - 2001:678:194::3c25:ddad
          examples:
          - *id002
          title: Ips
        description: Filter statistics by client IP addresses (max 10).
      - name: security_rule_names
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 100
            pattern: ^[a-zA-Z0-9_ ~!@#$%^&*()+\[\]{}|.,;:<>?/-]*$
          description: Filter data by name of a security rule matched the request.
          example: &id003
          - SQL injection
          examples:
          - *id003
          title: Security Rule Names
        description: Filter data by name of a security rule matched the request.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimpleEventStatistics'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_simple_event_statistics = client.waap.analytics.get_event_statistics(
              dimension="country",
              start="2024-04-13T00:00:00+01:00",
          )
          print(waap_simple_event_statistics.allowed)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapSimpleEventStatistics, err := client.Waap.Analytics.GetEventStatistics(
          		context.TODO(),
          		waap.AnalyticsGetEventStatisticsParamsDimensionCountry,
          		waap.AnalyticsGetEventStatisticsParams{
          			Start: "2024-04-13T00:00:00+01:00",
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapSimpleEventStatistics.Allowed)
          }
  /waap/v1/analytics/requests:
    get:
      tags:
      - Analytics
      summary: Get request log data
      description: |-
        Retrieve request log data over account's domains.
        The log records every request passing through WAAP towards the origin server.
        Deprecated. Use [Get security events (V2)](/api-reference/waap/analytics/get-security-events) instead.
      operationId: get_requests_v1_analytics_requests_get
      deprecated: true
      parameters:
      - name: domains
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            exclusiveMinimum: 0
            description: Domain ID
          description: List of domain IDs. Empty list means all domains belonging to the current account.
          example: &id004
          - 1
          - 2
          - 3
          examples:
          - *id004
          title: Domains
        description: List of domain IDs. Empty list means all domains belonging to the current account.
      - name: has_policy_override
        in: query
        required: false
        schema:
          anyOf:
          - type: boolean
          - type: 'null'
          description: True selects requests with applied overrides; false excludes them. Omit to include both.
          title: Has Policy Override
        description: True selects requests with applied overrides; false excludes them. Omit to include both.
      - name: ordering
        in: query
        required: false
        schema:
          type: string
          description: Results sorting order.
          example: request_time
          examples:
          - request_time
          - -request_time
          title: Ordering
        description: Results sorting order.
      - name: start
        in: query
        required: true
        schema:
          type: string
          description: Filter data items starting from a specified date in ISO 8601 format
          example: '2024-04-13T00:00:00+01:00'
          examples:
          - '2024-04-13T00:00:00+01:00'
          title: Start
        description: Filter data items starting from a specified date in ISO 8601 format
      - name: end
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
          examples:
          - '2024-04-14T12:00:00Z'
          title: End
        description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: ips
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            format: ipvanyaddress
          maxItems: 10
          description: Filter traffic data by client IP.
          example: &id005
          - 1.2.3.4
          - 2001:678:194::3c25:ddad
          examples:
          - *id005
          title: Ips
        description: Filter traffic data by client IP.
      - name: path
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Filter by URL path. '*' is wildcard.
          example: &id006
          - /home
          - /users/*/profile
          examples:
          - *id006
          title: Path
        description: Filter by URL path. '*' is wildcard.
      - name: countries
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^\w{2}$
          description: Filter data by a country code of the originating IP address in ISO 3166-1 alpha-2 format.
          example: &id007
          - DE
          - MY
          examples:
          - *id007
          title: Countries
        description: Filter data by a country code of the originating IP address in ISO 3166-1 alpha-2 format.
      - name: asns
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            maximum: 4294967295
            minimum: 1
          maxItems: 10
          description: Filter data by the ASN (Autonomous System Number) of the originating IP address. Not supported by `/v1/analytics/requests`.
          example: &id008
          - 15169
          - 13335
          examples:
          - *id008
          title: Asns
        description: Filter data by the ASN (Autonomous System Number) of the originating IP address. Not supported by `/v1/analytics/requests`.
      - name: status_codes
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            maximum: 599
            minimum: 100
          description: Filter data by HTTP response status code.
          example: &id009
          - '403'
          - '499'
          examples:
          - *id009
          title: Status Codes
        description: Filter data by HTTP response status code.
      - name: http_methods
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/HttpMethodType'
          description: Filter by HTTP methods
          example: &id010
          - GET
          - HEAD
          examples:
          - *id010
          title: Http Methods
        description: Filter by HTTP methods
      - name: reference_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}$
          description: Filter data by reference IDs.
          example: &id011
          - 1140fcddf208cbdf01694e8e2f818a68
          examples:
          - *id011
          title: Reference Ids
        description: Filter data by reference IDs.
      - name: request_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}-[0-9]{6}$
          description: Filter data by request IDs.
          example: &id012
          - 96763b8fb655e9f18a2e04097b704e39-458959
          examples:
          - *id012
          title: Request Ids
        description: Filter data by request IDs.
      - name: exclude_request_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}-[0-9]{6}$
          description: Exclude data by request IDs.
          example: &id013
          - 96763b8fb655e9f18a2e04097b704e39-458959
          examples:
          - *id013
          title: Exclude Request Ids
        description: Exclude data by request IDs.
      - name: session_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}$
          description: Filter data by session IDs.
          example: &id014
          - edab69d73b47cfecc3d3c038ada6c7de
          examples:
          - *id014
          title: Session Ids
        description: Filter data by session IDs.
      - name: security_rule_names
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 100
            pattern: ^[a-zA-Z0-9_ ~!@#$%^&*()+\[\]{}|.,;:<>?/-]*$
          description: Filter data by name of a security rule matched the request.
          example: &id015
          - SQL injection
          examples:
          - *id015
          title: Security Rule Names
        description: Filter data by name of a security rule matched the request.
      - name: decision
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/EventDecision'
            description: Filter data by the event decision.
          description: Filter data by decision.
          example: &id016
          - allowed
          - blocked
          examples:
          - *id016
          title: Decision
        description: Filter data by decision.
      - name: optional_action
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/OptionalAction'
            description: An optional action that may be applied in addition to the primary decision.
          description: Filter data by optional action.
          example: &id017
          - captcha
          - challenge
          examples:
          - *id017
          title: Optional Action
        description: Filter data by optional action.
      - name: exclude_ips
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            format: ipvanyaddress
          description: Exclude traffic data by client IP.
          example: &id018
          - 1.2.3.4
          - 2001:678:194::3c25:ddad
          examples:
          - *id018
          title: Exclude Ips
        description: Exclude traffic data by client IP.
      - name: exclude_countries
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^\w{2}$
          description: Exclude data by a country code of the originating IP address in ISO 3166-1 alpha-2 format.
          example: &id019
          - DE
          - MY
          examples:
          - *id019
          title: Exclude Countries
        description: Exclude data by a country code of the originating IP address in ISO 3166-1 alpha-2 format.
      - name: exclude_asns
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            maximum: 4294967295
            minimum: 1
          maxItems: 10
          description: Exclude data by the ASN (Autonomous System Number) of the originating IP address. Not supported by `/v1/analytics/requests`.
          example: &id020
          - 15169
          - 13335
          examples:
          - *id020
          title: Exclude Asns
        description: Exclude data by the ASN (Autonomous System Number) of the originating IP address. Not supported by `/v1/analytics/requests`.
      - name: exclude_session_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}$
          description: Exclude data by session IDs.
          title: Exclude Session Ids
        description: Exclude data by session IDs.
      - name: exclude_reference_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}$
          description: Exclude data by reference IDs.
          title: Exclude Reference Ids
        description: Exclude data by reference IDs.
      - name: exclude_security_rule_names
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 100
            pattern: ^[a-zA-Z0-9_ ~!@#$%^&*()+\[\]{}|.,;:<>?/-]*$
          description: Exclude data by name of a security rule matched the request.
          example: &id021
          - SQL injection
          examples:
          - *id021
          title: Exclude Security Rule Names
        description: Exclude data by name of a security rule matched the request.
      - name: exclude_domains
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          description: Exclude data by domain ID.
          title: Exclude Domains
        description: Exclude data by domain ID.
      - name: ja3
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[0-9a-fA-F]{32}$
          maxItems: 10
          description: Filter by JA3 TLS client fingerprint. Each value must be exactly 32 hexadecimal characters, mixed case allowed, normalized to lowercase. Supply multiple values to match any of them. Omit the parameter to apply no JA3 filter.
          example: &id022
          - e7d705a3286e19ea42f587b344ee6865
          examples:
          - *id022
          title: Ja3
        description: Filter by JA3 TLS client fingerprint. Each value must be exactly 32 hexadecimal characters, mixed case allowed, normalized to lowercase. Supply multiple values to match any of them. Omit the parameter to apply no JA3 filter.
      - name: ja4
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[0-9a-zA-Z]{10}_[0-9a-fA-F]{12}_[0-9a-fA-F]{12}$
          maxItems: 10
          description: Filter by JA4 TLS client fingerprint. When present, the value must match the JA4 form `<ja4_a>_<ja4_b>_<ja4_c>` (a 10-character prefix and two 12-character hexadecimal hashes, mixed case allowed, normalized to lowercase). Supply multiple values to match any of them. Omit the parameter entirely to apply no JA4 filter.
          example: &id023
          - t13d3113h2_e8f1e7e78f70_ce5650b735ce
          examples:
          - *id023
          title: Ja4
        description: Filter by JA4 TLS client fingerprint. When present, the value must match the JA4 form `<ja4_a>_<ja4_b>_<ja4_c>` (a 10-character prefix and two 12-character hexadecimal hashes, mixed case allowed, normalized to lowercase). Supply multiple values to match any of them. Omit the parameter entirely to apply no JA4 filter.
      - name: user_agent
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 300
          maxItems: 10
          description: Include entries whose user agent contains any of the supplied texts, case-insensitive partial match. Omit or provide an empty list to apply no user agent text filter.
          example: &id024
          - Mozilla/5.0
          - python-requests
          examples:
          - *id024
          title: User Agent
        description: Include entries whose user agent contains any of the supplied texts, case-insensitive partial match. Omit or provide an empty list to apply no user agent text filter.
      - name: user_agent_clients
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 10
          description: Include entries whose parsed user agent client exactly equals any supplied value. Omit or provide an empty list to apply no user agent client filter.
          example: &id025
          - Chrome
          - Firefox
          examples:
          - *id025
          title: User Agent Clients
        description: Include entries whose parsed user agent client exactly equals any supplied value. Omit or provide an empty list to apply no user agent client filter.
      - name: user_agent_devices
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 10
          description: Include entries whose parsed user agent device exactly equals any supplied value. Omit or provide an empty list to apply no user agent device filter.
          example: &id026
          - mac
          - Nokia
          - PlayStation
          examples:
          - *id026
          title: User Agent Devices
        description: Include entries whose parsed user agent device exactly equals any supplied value. Omit or provide an empty list to apply no user agent device filter.
      - name: tags
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 5
          description: Include entries whose tag exactly equals any supplied value. Omit or provide an empty list to apply no tag filter.
          example: &id027
          - evasiveclient
          - injectionattack
          examples:
          - *id027
          title: Tags
        description: Include entries whose tag exactly equals any supplied value. Omit or provide an empty list to apply no tag filter.
      - name: organizations
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 100
          maxItems: 10
          description: Include entries whose organization exactly equals any supplied value. Omit or provide an empty list to apply no organization filter.
          example: &id028
          - Example Org
          - Acme Corp
          examples:
          - *id028
          title: Organizations
        description: Include entries whose organization exactly equals any supplied value. Omit or provide an empty list to apply no organization filter.
      - name: exclude_user_agent
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 300
          maxItems: 10
          description: Exclude entries whose user agent contains any of the supplied texts, case-insensitive partial match. Omit or provide an empty list to apply no user agent text exclusion.
          example: &id029
          - python-requests
          - bot
          examples:
          - *id029
          title: Exclude User Agent
        description: Exclude entries whose user agent contains any of the supplied texts, case-insensitive partial match. Omit or provide an empty list to apply no user agent text exclusion.
      - name: exclude_user_agent_clients
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 10
          description: Exclude entries whose parsed user agent client exactly equals any supplied value. Omit or provide an empty list to apply no user agent client exclusion.
          example: &id030
          - OpenAI GPTBot
          - Uptimerobot
          examples:
          - *id030
          title: Exclude User Agent Clients
        description: Exclude entries whose parsed user agent client exactly equals any supplied value. Omit or provide an empty list to apply no user agent client exclusion.
      - name: exclude_user_agent_devices
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 10
          description: Exclude entries whose parsed user agent device exactly equals any supplied value. Omit or provide an empty list to apply no user agent device exclusion.
          example: &id031
          - SMART TV
          examples:
          - *id031
          title: Exclude User Agent Devices
        description: Exclude entries whose parsed user agent device exactly equals any supplied value. Omit or provide an empty list to apply no user agent device exclusion.
      - name: exclude_ja3
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[0-9a-fA-F]{32}$
          maxItems: 10
          description: Exclude entries whose JA3 TLS client fingerprint matches any of the supplied values. Each value must be exactly 32 hexadecimal characters, mixed case allowed, normalized to lowercase. Supply multiple values to exclude any of them. Omit the parameter to apply no JA3 exclusion.
          example: &id032
          - e7d705a3286e19ea42f587b344ee6865
          examples:
          - *id032
          title: Exclude Ja3
        description: Exclude entries whose JA3 TLS client fingerprint matches any of the supplied values. Each value must be exactly 32 hexadecimal characters, mixed case allowed, normalized to lowercase. Supply multiple values to exclude any of them. Omit the parameter to apply no JA3 exclusion.
      - name: exclude_ja4
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[0-9a-zA-Z]{10}_[0-9a-fA-F]{12}_[0-9a-fA-F]{12}$
          maxItems: 10
          description: Exclude entries whose JA4 TLS client fingerprint equals any of the supplied values. An item must match the JA4 form `<ja4_a>_<ja4_b>_<ja4_c>` (a 10-character prefix and two 12-character hexadecimal hashes, mixed case allowed, normalized to lowercase). Omit the parameter to apply no JA4 exclusion.
          example: &id033
          - t13d3113h2_e8f1e7e78f70_ce5650b735ce
          examples:
          - *id033
          title: Exclude Ja4
        description: Exclude entries whose JA4 TLS client fingerprint equals any of the supplied values. An item must match the JA4 form `<ja4_a>_<ja4_b>_<ja4_c>` (a 10-character prefix and two 12-character hexadecimal hashes, mixed case allowed, normalized to lowercase). Omit the parameter to apply no JA4 exclusion.
      - name: exclude_tags
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 5
          description: Exclude entries whose tag exactly equals any supplied value. Omit or provide an empty list to apply no tag exclusion.
          example: &id034
          - mousedevice
          examples:
          - *id034
          title: Exclude Tags
        description: Exclude entries whose tag exactly equals any supplied value. Omit or provide an empty list to apply no tag exclusion.
      - name: exclude_organizations
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 100
          maxItems: 10
          description: Exclude entries whose organization exactly equals any supplied value. Omit or provide an empty list to apply no organization exclusion.
          example: &id035
          - Acme corp
          examples:
          - *id035
          title: Exclude Organizations
        description: Exclude entries whose organization exactly equals any supplied value. Omit or provide an empty list to apply no organization exclusion.
      - name: exclude_status_codes
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            maximum: 599
            minimum: 100
          description: Exclude entries with any of the given HTTP response status codes.
          example: &id036
          - '500'
          - '501'
          examples:
          - *id036
          title: Exclude Status Codes
        description: Exclude entries with any of the given HTTP response status codes.
      - name: exclude_http_methods
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/HttpMethodType'
          description: Exclude entries with any of the given HTTP methods.
          example: &id037
          - POST
          - PUT
          examples:
          - *id037
          title: Exclude Http Methods
        description: Exclude entries with any of the given HTTP methods.
      - name: exclude_optional_action
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/OptionalAction'
            description: An optional action that may be applied in addition to the primary decision.
          description: Exclude entries that match any of the given optional action values.
          example: &id038
          - captcha
          - challenge
          examples:
          - *id038
          title: Exclude Optional Action
        description: Exclude entries that match any of the given optional action values.
      - name: exclude_decision
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/EventDecision'
            description: Decision applied to a request.
          description: Exclude entries that match any of the given decisions.
          example: &id039
          - allowed
          - blocked
          examples:
          - *id039
          title: Exclude Decision
        description: Exclude entries that match any of the given decisions.
      - name: exclude_path
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Exclude entries that match the given URL path pattern; '*' is wildcard.
          example: &id040
          - /home
          - /users/*/profile
          examples:
          - *id040
          title: Exclude Path
        description: Exclude entries that match the given URL path pattern; '*' is wildcard.
      - name: traffic_types
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/TrafficType'
          description: Include entries that have any of the given traffic types.
          example: &id041
          - api
          - ajax
          examples:
          - *id041
          title: Traffic Types
        description: Include entries that have any of the given traffic types.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_RequestSummary_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.analytics.get_requests(
              start="2024-04-13T00:00:00+01:00",
          )
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Analytics.GetRequests(context.TODO(), waap.AnalyticsGetRequestsParams{
          		Start: "2024-04-13T00:00:00+01:00",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v1/analytics/traffic:
    get:
      tags:
      - Analytics
      summary: Get traffic data
      description: Retrieves a comprehensive report on traffic statistics for a set of domains. The report includes details such as API requests, blocked events, error counts, and many more traffic-related metrics.
      operationId: get_traffic_v1_analytics_traffic_get
      parameters:
      - name: domains
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            exclusiveMinimum: 0
            description: Domain ID
          description: List of domain IDs. Empty list means all domains belonging to the current account.
          example: &id042
          - 1
          - 2
          - 3
          examples:
          - *id042
          title: Domains
        description: List of domain IDs. Empty list means all domains belonging to the current account.
      - name: resolution
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/Resolution'
          description: Specifies the granularity of the result data.
        description: Specifies the granularity of the result data.
      - name: bucket_size
        in: query
        required: false
        schema:
          anyOf:
          - enum:
            - 60
            - 300
            - 600
            - 900
            - 1800
            - 3600
            - 7200
            - 10800
            - 21600
            - 43200
            - 86400
            type: integer
          - type: 'null'
          description: Optional explicit aggregation bucket width in seconds. When supplied, `bucket_size` supersedes `resolution` for aggregation granularity.
          title: Bucket Size
        description: Optional explicit aggregation bucket width in seconds. When supplied, `bucket_size` supersedes `resolution` for aggregation granularity.
      - name: start
        in: query
        required: true
        schema:
          type: string
          description: Filter data items starting from a specified date in ISO 8601 format
          example: '2024-04-13T00:00:00+01:00'
          examples:
          - '2024-04-13T00:00:00+01:00'
          title: Start
        description: Filter data items starting from a specified date in ISO 8601 format
      - name: end
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
          examples:
          - '2024-04-14T12:00:00Z'
          title: End
        description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TrafficMetrics'
                title: Response Get Traffic V1 Analytics Traffic Get
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_traffic_metrics = client.waap.analytics.get_traffic(
              resolution="daily",
              start="2024-04-13T00:00:00+01:00",
          )
          print(waap_traffic_metrics)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapTrafficMetrics, err := client.Waap.Analytics.GetTraffic(context.TODO(), waap.AnalyticsGetTrafficParams{
          		Resolution: waap.AnalyticsGetTrafficParamsResolutionDaily,
          		Start:      "2024-04-13T00:00:00+01:00",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapTrafficMetrics)
          }
  /waap/v1/analytics/traffic-filtered:
    get:
      tags:
      - Analytics
      summary: Get filtered traffic data
      description: Retrieves a traffic time series data over a set of domains. The response is suitable for plotting a time series chart. This method allows filtering the traffic data by various criteria.
      operationId: get_traffic_filtered_v1_analytics_traffic_filtered_get
      parameters:
      - name: domains
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            exclusiveMinimum: 0
            description: Domain ID
          description: List of domain IDs. Empty list means all domains belonging to the current account.
          example: &id043
          - 1
          - 2
          - 3
          examples:
          - *id043
          title: Domains
        description: List of domain IDs. Empty list means all domains belonging to the current account.
      - name: resolution
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/Resolution'
          description: Specifies the granularity of the result data.
        description: Specifies the granularity of the result data.
      - name: bucket_size
        in: query
        required: false
        schema:
          anyOf:
          - enum:
            - 60
            - 300
            - 600
            - 900
            - 1800
            - 3600
            - 7200
            - 10800
            - 21600
            - 43200
            - 86400
            type: integer
          - type: 'null'
          description: Optional explicit aggregation bucket width in seconds. When supplied, `bucket_size` supersedes `resolution` for aggregation granularity.
          title: Bucket Size
        description: Optional explicit aggregation bucket width in seconds. When supplied, `bucket_size` supersedes `resolution` for aggregation granularity.
      - name: start
        in: query
        required: true
        schema:
          type: string
          description: Filter data items starting from a specified date in ISO 8601 format
          example: '2024-04-13T00:00:00+01:00'
          examples:
          - '2024-04-13T00:00:00+01:00'
          title: Start
        description: Filter data items starting from a specified date in ISO 8601 format
      - name: end
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
          examples:
          - '2024-04-14T12:00:00Z'
          title: End
        description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
      - name: ips
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            format: ipvanyaddress
          maxItems: 10
          description: Filter traffic data by client IP.
          example: &id044
          - 1.2.3.4
          - 2001:678:194::3c25:ddad
          examples:
          - *id044
          title: Ips
        description: Filter traffic data by client IP.
      - name: path
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Filter by URL path. '*' is wildcard.
          example: &id045
          - /home
          - /users/*/profile
          examples:
          - *id045
          title: Path
        description: Filter by URL path. '*' is wildcard.
      - name: countries
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^\w{2}$
          description: Filter data by a country code of the originating IP address in ISO 3166-1 alpha-2 format.
          example: &id046
          - DE
          - MY
          examples:
          - *id046
          title: Countries
        description: Filter data by a country code of the originating IP address in ISO 3166-1 alpha-2 format.
      - name: asns
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            maximum: 4294967295
            minimum: 1
          maxItems: 10
          description: Filter data by the ASN (Autonomous System Number) of the originating IP address. Not supported by `/v1/analytics/requests`.
          example: &id047
          - 15169
          - 13335
          examples:
          - *id047
          title: Asns
        description: Filter data by the ASN (Autonomous System Number) of the originating IP address. Not supported by `/v1/analytics/requests`.
      - name: status_codes
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            maximum: 599
            minimum: 100
          description: Filter data by HTTP response status code.
          example: &id048
          - '403'
          - '499'
          examples:
          - *id048
          title: Status Codes
        description: Filter data by HTTP response status code.
      - name: http_methods
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/HttpMethodType'
          description: Filter by HTTP methods
          example: &id049
          - GET
          - HEAD
          examples:
          - *id049
          title: Http Methods
        description: Filter by HTTP methods
      - name: reference_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}$
          description: Filter data by reference IDs.
          example: &id050
          - 1140fcddf208cbdf01694e8e2f818a68
          examples:
          - *id050
          title: Reference Ids
        description: Filter data by reference IDs.
      - name: request_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}-[0-9]{6}$
          description: Filter data by request IDs.
          example: &id051
          - 96763b8fb655e9f18a2e04097b704e39-458959
          examples:
          - *id051
          title: Request Ids
        description: Filter data by request IDs.
      - name: exclude_request_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}-[0-9]{6}$
          description: Exclude data by request IDs.
          example: &id052
          - 96763b8fb655e9f18a2e04097b704e39-458959
          examples:
          - *id052
          title: Exclude Request Ids
        description: Exclude data by request IDs.
      - name: session_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}$
          description: Filter data by session IDs.
          example: &id053
          - edab69d73b47cfecc3d3c038ada6c7de
          examples:
          - *id053
          title: Session Ids
        description: Filter data by session IDs.
      - name: security_rule_names
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 100
            pattern: ^[a-zA-Z0-9_ ~!@#$%^&*()+\[\]{}|.,;:<>?/-]*$
          description: Filter data by name of a security rule matched the request.
          example: &id054
          - SQL injection
          examples:
          - *id054
          title: Security Rule Names
        description: Filter data by name of a security rule matched the request.
      - name: decision
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/EventDecision'
            description: Filter data by the event decision.
          description: Filter data by decision.
          example: &id055
          - allowed
          - blocked
          examples:
          - *id055
          title: Decision
        description: Filter data by decision.
      - name: optional_action
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/OptionalAction'
            description: An optional action that may be applied in addition to the primary decision.
          description: Filter data by optional action.
          example: &id056
          - captcha
          - challenge
          examples:
          - *id056
          title: Optional Action
        description: Filter data by optional action.
      - name: exclude_ips
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            format: ipvanyaddress
          description: Exclude traffic data by client IP.
          example: &id057
          - 1.2.3.4
          - 2001:678:194::3c25:ddad
          examples:
          - *id057
          title: Exclude Ips
        description: Exclude traffic data by client IP.
      - name: exclude_countries
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^\w{2}$
          description: Exclude data by a country code of the originating IP address in ISO 3166-1 alpha-2 format.
          example: &id058
          - DE
          - MY
          examples:
          - *id058
          title: Exclude Countries
        description: Exclude data by a country code of the originating IP address in ISO 3166-1 alpha-2 format.
      - name: exclude_asns
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            maximum: 4294967295
            minimum: 1
          maxItems: 10
          description: Exclude data by the ASN (Autonomous System Number) of the originating IP address. Not supported by `/v1/analytics/requests`.
          example: &id059
          - 15169
          - 13335
          examples:
          - *id059
          title: Exclude Asns
        description: Exclude data by the ASN (Autonomous System Number) of the originating IP address. Not supported by `/v1/analytics/requests`.
      - name: exclude_session_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}$
          description: Exclude data by session IDs.
          title: Exclude Session Ids
        description: Exclude data by session IDs.
      - name: exclude_reference_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}$
          description: Exclude data by reference IDs.
          title: Exclude Reference Ids
        description: Exclude data by reference IDs.
      - name: exclude_security_rule_names
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 100
            pattern: ^[a-zA-Z0-9_ ~!@#$%^&*()+\[\]{}|.,;:<>?/-]*$
          description: Exclude data by name of a security rule matched the request.
          example: &id060
          - SQL injection
          examples:
          - *id060
          title: Exclude Security Rule Names
        description: Exclude data by name of a security rule matched the request.
      - name: exclude_domains
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          description: Exclude data by domain ID.
          title: Exclude Domains
        description: Exclude data by domain ID.
      - name: ja3
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[0-9a-fA-F]{32}$
          maxItems: 10
          description: Filter by JA3 TLS client fingerprint. Each value must be exactly 32 hexadecimal characters, mixed case allowed, normalized to lowercase. Supply multiple values to match any of them. Omit the parameter to apply no JA3 filter.
          example: &id061
          - e7d705a3286e19ea42f587b344ee6865
          examples:
          - *id061
          title: Ja3
        description: Filter by JA3 TLS client fingerprint. Each value must be exactly 32 hexadecimal characters, mixed case allowed, normalized to lowercase. Supply multiple values to match any of them. Omit the parameter to apply no JA3 filter.
      - name: ja4
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[0-9a-zA-Z]{10}_[0-9a-fA-F]{12}_[0-9a-fA-F]{12}$
          maxItems: 10
          description: Filter by JA4 TLS client fingerprint. When present, the value must match the JA4 form `<ja4_a>_<ja4_b>_<ja4_c>` (a 10-character prefix and two 12-character hexadecimal hashes, mixed case allowed, normalized to lowercase). Supply multiple values to match any of them. Omit the parameter entirely to apply no JA4 filter.
          example: &id062
          - t13d3113h2_e8f1e7e78f70_ce5650b735ce
          examples:
          - *id062
          title: Ja4
        description: Filter by JA4 TLS client fingerprint. When present, the value must match the JA4 form `<ja4_a>_<ja4_b>_<ja4_c>` (a 10-character prefix and two 12-character hexadecimal hashes, mixed case allowed, normalized to lowercase). Supply multiple values to match any of them. Omit the parameter entirely to apply no JA4 filter.
      - name: user_agent
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 300
          maxItems: 10
          description: Include entries whose user agent contains any of the supplied texts, case-insensitive partial match. Omit or provide an empty list to apply no user agent text filter.
          example: &id063
          - Mozilla/5.0
          - python-requests
          examples:
          - *id063
          title: User Agent
        description: Include entries whose user agent contains any of the supplied texts, case-insensitive partial match. Omit or provide an empty list to apply no user agent text filter.
      - name: user_agent_clients
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 10
          description: Include entries whose parsed user agent client exactly equals any supplied value. Omit or provide an empty list to apply no user agent client filter.
          example: &id064
          - Chrome
          - Firefox
          examples:
          - *id064
          title: User Agent Clients
        description: Include entries whose parsed user agent client exactly equals any supplied value. Omit or provide an empty list to apply no user agent client filter.
      - name: user_agent_devices
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 10
          description: Include entries whose parsed user agent device exactly equals any supplied value. Omit or provide an empty list to apply no user agent device filter.
          example: &id065
          - mac
          - Nokia
          - PlayStation
          examples:
          - *id065
          title: User Agent Devices
        description: Include entries whose parsed user agent device exactly equals any supplied value. Omit or provide an empty list to apply no user agent device filter.
      - name: tags
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 5
          description: Include entries whose tag exactly equals any supplied value. Omit or provide an empty list to apply no tag filter.
          example: &id066
          - evasiveclient
          - injectionattack
          examples:
          - *id066
          title: Tags
        description: Include entries whose tag exactly equals any supplied value. Omit or provide an empty list to apply no tag filter.
      - name: organizations
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 100
          maxItems: 10
          description: Include entries whose organization exactly equals any supplied value. Omit or provide an empty list to apply no organization filter.
          example: &id067
          - Example Org
          - Acme Corp
          examples:
          - *id067
          title: Organizations
        description: Include entries whose organization exactly equals any supplied value. Omit or provide an empty list to apply no organization filter.
      - name: exclude_user_agent
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 300
          maxItems: 10
          description: Exclude entries whose user agent contains any of the supplied texts, case-insensitive partial match. Omit or provide an empty list to apply no user agent text exclusion.
          example: &id068
          - python-requests
          - bot
          examples:
          - *id068
          title: Exclude User Agent
        description: Exclude entries whose user agent contains any of the supplied texts, case-insensitive partial match. Omit or provide an empty list to apply no user agent text exclusion.
      - name: exclude_user_agent_clients
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 10
          description: Exclude entries whose parsed user agent client exactly equals any supplied value. Omit or provide an empty list to apply no user agent client exclusion.
          example: &id069
          - OpenAI GPTBot
          - Uptimerobot
          examples:
          - *id069
          title: Exclude User Agent Clients
        description: Exclude entries whose parsed user agent client exactly equals any supplied value. Omit or provide an empty list to apply no user agent client exclusion.
      - name: exclude_user_agent_devices
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 10
          description: Exclude entries whose parsed user agent device exactly equals any supplied value. Omit or provide an empty list to apply no user agent device exclusion.
          example: &id070
          - SMART TV
          examples:
          - *id070
          title: Exclude User Agent Devices
        description: Exclude entries whose parsed user agent device exactly equals any supplied value. Omit or provide an empty list to apply no user agent device exclusion.
      - name: exclude_ja3
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[0-9a-fA-F]{32}$
          maxItems: 10
          description: Exclude entries whose JA3 TLS client fingerprint matches any of the supplied values. Each value must be exactly 32 hexadecimal characters, mixed case allowed, normalized to lowercase. Supply multiple values to exclude any of them. Omit the parameter to apply no JA3 exclusion.
          example: &id071
          - e7d705a3286e19ea42f587b344ee6865
          examples:
          - *id071
          title: Exclude Ja3
        description: Exclude entries whose JA3 TLS client fingerprint matches any of the supplied values. Each value must be exactly 32 hexadecimal characters, mixed case allowed, normalized to lowercase. Supply multiple values to exclude any of them. Omit the parameter to apply no JA3 exclusion.
      - name: exclude_ja4
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[0-9a-zA-Z]{10}_[0-9a-fA-F]{12}_[0-9a-fA-F]{12}$
          maxItems: 10
          description: Exclude entries whose JA4 TLS client fingerprint equals any of the supplied values. An item must match the JA4 form `<ja4_a>_<ja4_b>_<ja4_c>` (a 10-character prefix and two 12-character hexadecimal hashes, mixed case allowed, normalized to lowercase). Omit the parameter to apply no JA4 exclusion.
          example: &id072
          - t13d3113h2_e8f1e7e78f70_ce5650b735ce
          examples:
          - *id072
          title: Exclude Ja4
        description: Exclude entries whose JA4 TLS client fingerprint equals any of the supplied values. An item must match the JA4 form `<ja4_a>_<ja4_b>_<ja4_c>` (a 10-character prefix and two 12-character hexadecimal hashes, mixed case allowed, normalized to lowercase). Omit the parameter to apply no JA4 exclusion.
      - name: exclude_tags
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 5
          description: Exclude entries whose tag exactly equals any supplied value. Omit or provide an empty list to apply no tag exclusion.
          example: &id073
          - mousedevice
          examples:
          - *id073
          title: Exclude Tags
        description: Exclude entries whose tag exactly equals any supplied value. Omit or provide an empty list to apply no tag exclusion.
      - name: exclude_organizations
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 100
          maxItems: 10
          description: Exclude entries whose organization exactly equals any supplied value. Omit or provide an empty list to apply no organization exclusion.
          example: &id074
          - Acme corp
          examples:
          - *id074
          title: Exclude Organizations
        description: Exclude entries whose organization exactly equals any supplied value. Omit or provide an empty list to apply no organization exclusion.
      - name: exclude_status_codes
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            maximum: 599
            minimum: 100
          description: Exclude entries with any of the given HTTP response status codes.
          example: &id075
          - '500'
          - '501'
          examples:
          - *id075
          title: Exclude Status Codes
        description: Exclude entries with any of the given HTTP response status codes.
      - name: exclude_http_methods
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/HttpMethodType'
          description: Exclude entries with any of the given HTTP methods.
          example: &id076
          - POST
          - PUT
          examples:
          - *id076
          title: Exclude Http Methods
        description: Exclude entries with any of the given HTTP methods.
      - name: exclude_optional_action
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/OptionalAction'
            description: An optional action that may be applied in addition to the primary decision.
          description: Exclude entries that match any of the given optional action values.
          example: &id077
          - captcha
          - challenge
          examples:
          - *id077
          title: Exclude Optional Action
        description: Exclude entries that match any of the given optional action values.
      - name: exclude_decision
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/EventDecision'
            description: Decision applied to a request.
          description: Exclude entries that match any of the given decisions.
          example: &id078
          - allowed
          - blocked
          examples:
          - *id078
          title: Exclude Decision
        description: Exclude entries that match any of the given decisions.
      - name: exclude_path
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Exclude entries that match the given URL path pattern; '*' is wildcard.
          example: &id079
          - /home
          - /users/*/profile
          examples:
          - *id079
          title: Exclude Path
        description: Exclude entries that match the given URL path pattern; '*' is wildcard.
      - name: traffic_types
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/TrafficType'
          description: Include entries that have any of the given traffic types.
          example: &id080
          - api
          - ajax
          examples:
          - *id080
          title: Traffic Types
        description: Include entries that have any of the given traffic types.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CompactTrafficMetrics'
                title: Response Get Traffic Filtered V1 Analytics Traffic Filtered Get
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_compact_traffic_metrics = client.waap.analytics.get_traffic_filtered(
              resolution="daily",
              start="2024-04-13T00:00:00+01:00",
          )
          print(waap_compact_traffic_metrics)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapCompactTrafficMetrics, err := client.Waap.Analytics.GetTrafficFiltered(context.TODO(), waap.AnalyticsGetTrafficFilteredParams{
          		Resolution: waap.AnalyticsGetTrafficFilteredParamsResolutionDaily,
          		Start:      "2024-04-13T00:00:00+01:00",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapCompactTrafficMetrics)
          }
  /waap/v1/analytics/filters/{type}:
    get:
      tags:
      - Analytics
      summary: Get filter value suggestions
      description: Retrieves autocomplete suggestions for specified filter parameter values observed within the current client account during the requested time range. Use the returned `value` in the filter parameters of an analytics data request ([Get security events (V2)](/api-reference/waap/analytics/get-security-events) and [Get filtered traffic data](/api-reference/waap/analytics/get-filtered-traffic-data)). `count` reports how many times the value was observed in the requested range.
      operationId: get_filter_values_v1_analytics_filters__type__get
      parameters:
      - name: type
        in: path
        required: true
        schema:
          enum:
          - user-agent-clients
          - user-agent-devices
          - organizations
          type: string
          description: Parsed user-agent field type.
          title: Type
        description: Parsed user-agent field type.
      - name: domains
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            exclusiveMinimum: 0
            description: Domain ID
          description: List of domain IDs. Empty list means all domains belonging to the current account.
          example: &id081
          - 1
          - 2
          - 3
          examples:
          - *id081
          title: Domains
        description: List of domain IDs. Empty list means all domains belonging to the current account.
      - name: name
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 2
            maxLength: 100
          - type: 'null'
          description: Case-insensitive partial autocomplete pattern matched against the value name by the value provider. Must be between 2 and 100 characters; empty or omitted returns the available suggestions for the current account and time range.
          title: Name
        description: Case-insensitive partial autocomplete pattern matched against the value name by the value provider. Must be between 2 and 100 characters; empty or omitted returns the available suggestions for the current account and time range.
      - name: ordering
        in: query
        required: false
        schema:
          enum:
          - count
          - value
          type: string
          description: Suggestion ordering. `count` sorts by observed occurrence count descending (most frequent first) with value as a tie breaker; `value` sorts alphabetically by value ascending with count as a tie breaker.
          default: count
          title: Ordering
        description: Suggestion ordering. `count` sorts by observed occurrence count descending (most frequent first) with value as a tie breaker; `value` sorts alphabetically by value ascending with count as a tie breaker.
      - name: start
        in: query
        required: true
        schema:
          type: string
          description: Filter data items starting from a specified date in ISO 8601 format
          example: '2024-04-13T00:00:00+01:00'
          examples:
          - '2024-04-13T00:00:00+01:00'
          title: Start
        description: Filter data items starting from a specified date in ISO 8601 format
      - name: end
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
          examples:
          - '2024-04-14T12:00:00Z'
          title: End
        description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 200
          minimum: 50
          description: Number of items to return
          default: 50
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_FilterValueSuggestion_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.analytics.get_filters(
              type="user-agent-clients",
              start="2024-04-13T00:00:00+01:00",
          )
          page = page.results[0]
          print(page.count)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Analytics.GetFilters(
          		context.TODO(),
          		waap.AnalyticsGetFiltersParamsTypeUserAgentClients,
          		waap.AnalyticsGetFiltersParams{
          			Start: "2024-04-13T00:00:00+01:00",
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v2/firewall-rules:
    get:
      tags:
      - Firewall Rules
      summary: List account firewall rules
      description: Returns all firewall rules across all domains belonging to the authenticated account. Supports filtering, ordering, and pagination.
      operationId: get_account_firewall_rules_v2_firewall_rules_get
      parameters:
      - name: ordering
        in: query
        required: false
        schema:
          anyOf:
          - enum:
            - id
            - name
            - description
            - enabled
            - action
            - -id
            - -name
            - -description
            - -enabled
            - -action
            type: string
          - type: 'null'
          description: Order results by field (prefix with - for descending)
          title: Ordering
        description: Order results by field (prefix with - for descending)
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: name
        in: query
        required: false
        schema:
          type: string
          description: Filter rules by name (supports wildcards)
          example: Block by specific IP rule.
          examples:
          - Block by specific IP rule.
          title: Name
        description: Filter rules by name (supports wildcards)
      - name: description
        in: query
        required: false
        schema:
          type: string
          description: Filter rules by description (supports wildcards)
          example: Blocks all requests from a specific IP address.
          examples:
          - Blocks all requests from a specific IP address.
          title: Description
        description: Filter rules by description (supports wildcards)
      - name: action
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/FirewallRuleActionType'
          description: Filter by action type
          examples:
          - allow
        description: Filter by action type
      - name: enabled
        in: query
        required: false
        schema:
          type: boolean
          description: Filter by enabled status
          example: true
          examples:
          - true
          title: Enabled
        description: Filter by enabled status
      - name: domain_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          description: Filter by domain IDs (can specify multiple)
          example: &id082
          - 123
          - 456
          examples:
          - *id082
          title: Domain Ids
        description: Filter by domain IDs (can specify multiple)
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_AccountFirewallRuleResponse_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.firewall_rules.list()
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.FirewallRules.List(context.TODO(), waap.FirewallRuleListParams{})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v2/domains/{domain_id}/firewall-rules/{rule_id}/{action}:
    patch:
      tags:
      - Firewall Rules
      summary: Toggle firewall rule
      operationId: toggle_rule_v2_domains__domain_id__firewall_rules__rule_id___action__patch
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: action
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/CustomerRuleState'
          description: Enable or disable a firewall rule
        description: Enable or disable a firewall rule
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The firewall rule ID
          title: Rule Id
        description: The firewall rule ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerRuleToggleResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_rule_toggle_response = client.waap.domains.firewall_rules.toggle(
              action="enable",
              domain_id=1,
              rule_id=0,
          )
          print(waap_rule_toggle_response.enabled)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapRuleToggleResponse, err := client.Waap.Domains.FirewallRules.Toggle(
          		context.TODO(),
          		waap.DomainFirewallRuleToggleParamsActionEnable,
          		waap.DomainFirewallRuleToggleParams{
          			DomainID: 1,
          			RuleID:   0,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapRuleToggleResponse.Enabled)
          }
  /waap/v2/domains/{domain_id}/firewall-rules/{rule_id}:
    patch:
      tags:
      - Firewall Rules
      summary: Update firewall rule
      description: Only properties present in the request will be updated
      operationId: update_firewall_rule_v2_domains__domain_id__firewall_rules__rule_id__patch
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The firewall rule ID
          title: Rule Id
        description: The firewall rule ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFirewallRule'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirewallRuleResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_firewall_rule = client.waap.domains.firewall_rules.update(
              rule_id=0,
              domain_id=1,
          )
          print(waap_firewall_rule.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapFirewallRule, err := client.Waap.Domains.FirewallRules.Update(
          		context.TODO(),
          		0,
          		waap.DomainFirewallRuleUpdateParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapFirewallRule.ID)
          }
  /waap/v2/domains/{domain_id}/firewall-rules/bulk_delete:
    post:
      tags:
      - Firewall Rules
      summary: Delete multiple WAAP firewall rules
      operationId: bulk_delete_firewall_rule_v2_domains__domain_id__firewall_rules_bulk_delete_post
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RulesBulkDelete'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RulesBulkDeleteResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/problem+json:
              example:
                title: Internal server error.
                type: internal-server-error
                status: 500
                detail: Something went wrong. Cannot enable WAAP for this domain. Please try again later or reach out to our support team.
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_rules_bulk_delete_response = client.waap.domains.firewall_rules.delete_multiple(
              domain_id=1,
              rule_ids=[0],
          )
          print(waap_rules_bulk_delete_response.deleted_ids)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapRulesBulkDeleteResponse, err := client.Waap.Domains.FirewallRules.DeleteMultiple(
          		context.TODO(),
          		1,
          		waap.DomainFirewallRuleDeleteMultipleParams{
          			RuleIDs: []int64{0},
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapRulesBulkDeleteResponse.DeletedIDs)
          }
  /waap/v2/custom-page-sets/{set_id}:
    patch:
      tags:
      - Custom Page Sets
      summary: Update Custom Page Set
      description: Fields with a value are updated, fields set to null are removed, and fields omitted are left unchanged (`name` cannot be removed). When updating a custom page, include all fields it should have — any field not included is removed.
      operationId: update_custom_page_set_v2_custom_page_sets__set_id__patch
      parameters:
      - name: set_id
        in: path
        required: true
        schema:
          type: integer
          description: The ID of the custom page set
          title: Set Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomPageSetUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomPageSetResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_custom_page_set = client.waap.custom_page_sets.update(
              set_id=0,
          )
          print(waap_custom_page_set.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapCustomPageSet, err := client.Waap.CustomPageSets.Update(
          		context.TODO(),
          		0,
          		waap.CustomPageSetUpdateParams{},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapCustomPageSet.ID)
          }
  /waap/v2/domains/{domain_id}/custom-rules/{rule_id}:
    patch:
      tags:
      - Custom Rules
      summary: Update custom rule
      description: Only properties present in the request will be updated
      operationId: update_custom_rule_v2_domains__domain_id__custom_rules__rule_id__patch
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The custom rule ID
          title: Rule Id
        description: The custom rule ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomRule'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomRuleResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_custom_rule = client.waap.domains.custom_rules.update(
              rule_id=0,
              domain_id=1,
          )
          print(waap_custom_rule.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapCustomRule, err := client.Waap.Domains.CustomRules.Update(
          		context.TODO(),
          		0,
          		waap.DomainCustomRuleUpdateParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapCustomRule.ID)
          }
  /waap/v2/domains/{domain_id}/custom-rules/{rule_id}/{action}:
    patch:
      tags:
      - Custom Rules
      summary: Toggle custom rule
      operationId: toggle_rule_v2_domains__domain_id__custom_rules__rule_id___action__patch
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: action
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/CustomerRuleState'
          description: Enable or disable a custom rule
        description: Enable or disable a custom rule
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The custom rule ID
          title: Rule Id
        description: The custom rule ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerRuleToggleResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_rule_toggle_response = client.waap.domains.custom_rules.toggle(
              action="enable",
              domain_id=1,
              rule_id=0,
          )
          print(waap_rule_toggle_response.enabled)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapRuleToggleResponse, err := client.Waap.Domains.CustomRules.Toggle(
          		context.TODO(),
          		waap.DomainCustomRuleToggleParamsActionEnable,
          		waap.DomainCustomRuleToggleParams{
          			DomainID: 1,
          			RuleID:   0,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapRuleToggleResponse.Enabled)
          }
  /waap/v2/domains/{domain_id}/custom-rules/bulk_delete:
    post:
      tags:
      - Custom Rules
      summary: Delete multiple custom WAAP rules
      operationId: bulk_delete_custom_rule_v2_domains__domain_id__custom_rules_bulk_delete_post
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RulesBulkDelete'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RulesBulkDeleteResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/problem+json:
              example:
                title: Internal server error.
                type: internal-server-error
                status: 500
                detail: Something went wrong. Cannot enable WAAP for this domain. Please try again later or reach out to our support team.
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_rules_bulk_delete_response = client.waap.domains.custom_rules.delete_multiple(
              domain_id=1,
              rule_ids=[0],
          )
          print(waap_rules_bulk_delete_response.deleted_ids)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapRulesBulkDeleteResponse, err := client.Waap.Domains.CustomRules.DeleteMultiple(
          		context.TODO(),
          		1,
          		waap.DomainCustomRuleDeleteMultipleParams{
          			RuleIDs: []int64{0},
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapRulesBulkDeleteResponse.DeletedIDs)
          }
  /waap/v2/domains/{domain_id}/advanced-rules/{rule_id}/{action}:
    patch:
      tags:
      - Advanced Rules
      summary: Toggle advanced rule
      operationId: toggle_rule_v2_domains__domain_id__advanced_rules__rule_id___action__patch
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: action
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/CustomerRuleState'
          description: Enable or disable an advanced rule
        description: Enable or disable an advanced rule
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The advanced rule ID
          title: Rule Id
        description: The advanced rule ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerRuleToggleResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_rule_toggle_response = client.waap.domains.advanced_rules.toggle(
              action="enable",
              domain_id=1,
              rule_id=0,
          )
          print(waap_rule_toggle_response.enabled)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapRuleToggleResponse, err := client.Waap.Domains.AdvancedRules.Toggle(
          		context.TODO(),
          		waap.DomainAdvancedRuleToggleParamsActionEnable,
          		waap.DomainAdvancedRuleToggleParams{
          			DomainID: 1,
          			RuleID:   0,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapRuleToggleResponse.Enabled)
          }
  /waap/v2/domains/{domain_id}/advanced-rules/{rule_id}:
    patch:
      tags:
      - Advanced Rules
      summary: Update advanced rule
      description: Only properties present in the request will be updated
      operationId: update_advanced_rule_v2_domains__domain_id__advanced_rules__rule_id__patch
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: rule_id
        in: path
        required: true
        schema:
          type: integer
          description: The advanced rule ID
          title: Rule Id
        description: The advanced rule ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAdvancedRule'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdvancedRuleResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_advanced_rule = client.waap.domains.advanced_rules.update(
              rule_id=0,
              domain_id=1,
          )
          print(waap_advanced_rule.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapAdvancedRule, err := client.Waap.Domains.AdvancedRules.Update(
          		context.TODO(),
          		0,
          		waap.DomainAdvancedRuleUpdateParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapAdvancedRule.ID)
          }
  /waap/v2/domains/{domain_id}/api-paths:
    get:
      tags:
      - API Discovery
      summary: List API paths
      description: Retrieve a list of API paths for a specific domain
      operationId: get_api_paths_v2_domains__domain_id__api_paths_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: ordering
        in: query
        required: false
        schema:
          enum:
          - id
          - path
          - method
          - api_version
          - http_scheme
          - first_detected
          - last_detected
          - status
          - source
          - -id
          - -path
          - -method
          - -api_version
          - -http_scheme
          - -first_detected
          - -last_detected
          - -status
          - -source
          type: string
          description: Sort the response by given field.
          title: Ordering
        description: Sort the response by given field.
      - name: ids
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              format: uuid
          - type: 'null'
          description: Filter by the path ID
          title: Ids
        description: Filter by the path ID
      - name: path
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 1024
          - type: 'null'
          description: Filter by the path. Supports '*' as a wildcard character
          title: Path
        description: Filter by the path. Supports '*' as a wildcard character
      - name: method
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/ApiPathMethod'
          - type: 'null'
          description: Filter by the API RESTful method
          title: Method
        description: Filter by the API RESTful method
      - name: api_version
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 32
          - type: 'null'
          description: Filter by the API version
          title: Api Version
        description: Filter by the API version
      - name: http_scheme
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/ApiPathHttpScheme'
          - type: 'null'
          description: Filter by the HTTP version of the API path
          title: Http Scheme
        description: Filter by the HTTP version of the API path
      - name: api_group
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by the API group associated with the API path
          title: Api Group
        description: Filter by the API group associated with the API path
      - name: status
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/ApiPathStatus'
          - type: 'null'
          description: Filter by the status of the discovered API path
          title: Status
        description: Filter by the status of the discovered API path
      - name: source
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/ApiPathSource'
          - type: 'null'
          description: Filter by the source of the discovered API
          title: Source
        description: Filter by the source of the discovered API
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 10
          minimum: 0
          description: Number of items to return
          default: 10
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_ApiPathResponse_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.domains.api_paths.list(
              domain_id=1,
          )
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Domains.APIPaths.List(
          		context.TODO(),
          		1,
          		waap.DomainAPIPathListParams{},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
    post:
      tags:
      - API Discovery
      summary: Create API Path
      description: Create an API path for a domain
      operationId: create_api_path_v2_domains__domain_id__api_paths_post
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApiPath'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPathResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_api_path = client.waap.domains.api_paths.create(
              domain_id=1,
              http_scheme="HTTP",
              method="GET",
              path="/api/v1/paths/{path_id}",
          )
          print(waap_api_path.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapAPIPath, err := client.Waap.Domains.APIPaths.New(
          		context.TODO(),
          		1,
          		waap.DomainAPIPathNewParams{
          			HTTPScheme: waap.DomainAPIPathNewParamsHTTPSchemeHTTP,
          			Method:     waap.DomainAPIPathNewParamsMethodGet,
          			Path:       "/api/v1/paths/{path_id}",
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapAPIPath.ID)
          }
  /waap/v2/domains/{domain_id}/api-paths/{path_id}:
    get:
      tags:
      - API Discovery
      summary: Get API Path
      description: Retrieve a specific API path for a domain
      operationId: get_api_path_v2_domains__domain_id__api_paths__path_id__get
      parameters:
      - name: path_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The path ID
          title: Path Id
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPathResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_api_path = client.waap.domains.api_paths.get(
              path_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
              domain_id=1,
          )
          print(waap_api_path.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapAPIPath, err := client.Waap.Domains.APIPaths.Get(
          		context.TODO(),
          		"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
          		waap.DomainAPIPathGetParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapAPIPath.ID)
          }
    patch:
      tags:
      - API Discovery
      summary: Update API Path
      description: Update a specific API path for a domain
      operationId: update_api_path_v2_domains__domain_id__api_paths__path_id__patch
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: path_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The path ID
          title: Path Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateApiPath'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPathResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_api_path = client.waap.domains.api_paths.update(
              path_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
              domain_id=1,
          )
          print(waap_api_path.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapAPIPath, err := client.Waap.Domains.APIPaths.Update(
          		context.TODO(),
          		"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
          		waap.DomainAPIPathUpdateParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapAPIPath.ID)
          }
    delete:
      tags:
      - API Discovery
      summary: Delete API Path
      description: Delete a specific API path for a domain
      operationId: delete_api_path_v2_domains__domain_id__api_paths__path_id__delete
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: path_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The path ID
          title: Path Id
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          client.waap.domains.api_paths.delete(
              path_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
              domain_id=1,
          )
      - lang: Go
        source: |
          package main

          import (
          	"context"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	err := client.Waap.Domains.APIPaths.Delete(
          		context.TODO(),
          		"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
          		waap.DomainAPIPathDeleteParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          }
  /waap/v2/ip-reputation/clear-local-tags:
    post:
      tags:
      - IP Reputation
      summary: Clear Local IP Reputation Tags
      description: Clear all tags associated between the provided IP addresses and domains.
      operationId: delete_local_ip_tags_v2_ip_reputation_clear_local_tags_post
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/IPReputationDeleteRequest'
              type: array
              maxItems: 100
              minItems: 1
              title: Items
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClearLocalTagsResponse'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Not Found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
        '422':
          description: Unprocessable Entity
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
        '500':
          description: Internal Server Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_clear_local_tags_response = client.waap.ip_reputation.clear_local_tags(
              items=[{
                  "domain_id": 1,
                  "ip": "ip",
              }],
          )
          print(waap_clear_local_tags_response.num_cleared)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapClearLocalTagsResponse, err := client.Waap.IPReputation.ClearLocalTags(context.TODO(), waap.IPReputationClearLocalTagsParams{
          		Items: []waap.IPReputationClearLocalTagsParamsItem{{
          			DomainID: 1,
          			IP:       "ip",
          		}},
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapClearLocalTagsResponse.NumCleared)
          }
  /waap/v2/ip-info/counts:
    get:
      tags:
      - IP Spotlight
      summary: Get extended IP metrics (account-wide)
      description: Retrieve comprehensive metrics for an IP address including distinct counts of attack types, domains, paths, and user agents across all account domains
      operationId: get_counts_v2_ip_info_counts_get
      parameters:
      - name: ip
        in: query
        required: true
        schema:
          anyOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          description: The IP address to check
          title: Ip
        description: The IP address to check
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IpInfoCountsV2'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_ip_info_counts_v2 = client.waap.ip_info.get_account_counts(
              ip="192.168.1.1",
          )
          print(waap_ip_info_counts_v2.attack_types)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapIPInfoCountsV2, err := client.Waap.IPInfo.GetAccountCounts(context.TODO(), waap.IPInfoGetAccountCountsParams{
          		IP: "192.168.1.1",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapIPInfoCountsV2.AttackTypes)
          }
  /waap/v2/ip-info/attack-time-series:
    get:
      tags:
      - IP Spotlight
      summary: Get attack time series from a specific IP (account-scoped)
      description: Retrieve a time-series of attacks originating from a specified IP address, scoped to the authenticated account's domains
      operationId: get_attack_time_series_v2_ip_info_attack_time_series_get
      parameters:
      - name: ip
        in: query
        required: true
        schema:
          anyOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          description: The IP address to check
          title: Ip
        description: The IP address to check
      - name: days
        in: query
        required: false
        schema:
          type: integer
          maximum: 30
          minimum: 1
          description: Number of days to look back for attack data
          default: 30
          title: Days
        description: Number of days to look back for attack data
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TimeSeriesAttack'
                title: Response Get Attack Time Series V2 Ip Info Attack Time Series Get
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_time_series_attacks = client.waap.ip_info.get_account_attack_time_series(
              ip="192.168.1.1",
          )
          print(waap_time_series_attacks)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapTimeSeriesAttacks, err := client.Waap.IPInfo.GetAccountAttackTimeSeries(context.TODO(), waap.IPInfoGetAccountAttackTimeSeriesParams{
          		IP: "192.168.1.1",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapTimeSeriesAttacks)
          }
  /waap/v2/ip-info/top-paths:
    get:
      tags:
      - IP Spotlight
      summary: Get top attacked paths from a specific IP (account-scoped)
      description: Retrieve top attacked paths for an IP address, scoped to the authenticated account's domains
      operationId: get_top_paths_v2_ip_info_top_paths_get
      parameters:
      - name: ip
        in: query
        required: true
        schema:
          anyOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          description: The IP address to check
          title: Ip
        description: The IP address to check
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TopPathDetail'
                maxItems: 10
                title: Response Get Top Paths V2 Ip Info Top Paths Get
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_top_path_details = client.waap.ip_info.get_top_paths(
              ip="192.168.1.1",
          )
          print(waap_top_path_details)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapTopPathDetails, err := client.Waap.IPInfo.GetTopPaths(context.TODO(), waap.IPInfoGetTopPathsParams{
          		IP: "192.168.1.1",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapTopPathDetails)
          }
  /waap/v2/ip-info/top-user-agents:
    get:
      tags:
      - IP Spotlight
      summary: Get top user agents for an IP (account-scoped)
      description: Retrieve up to 10 top user agents associated with an IP across all account domains.
      operationId: get_top_user_agents_v2_ip_info_top_user_agents_get
      parameters:
      - name: ip
        in: query
        required: true
        schema:
          anyOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          description: The IP address to check
          title: Ip
        description: The IP address to check
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TopUserAgentDetail'
                maxItems: 10
                title: Response Get Top User Agents V2 Ip Info Top User Agents Get
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_top_user_agent_details = client.waap.ip_info.get_account_top_user_agents(
              ip="192.168.1.1",
          )
          print(waap_top_user_agent_details)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapTopUserAgentDetails, err := client.Waap.IPInfo.GetAccountTopUserAgents(context.TODO(), waap.IPInfoGetAccountTopUserAgentsParams{
          		IP: "192.168.1.1",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapTopUserAgentDetails)
          }
  /waap/v2/analytics/events:
    get:
      tags:
      - Analytics
      summary: Get security events
      description: |-
        Retrieve security events over account's domains.
        A security event is recorded for every request passing through WAAP towards the origin server.
      operationId: get_events_v2_analytics_events_get
      parameters:
      - name: domains
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            exclusiveMinimum: 0
            description: Domain ID
          description: List of domain IDs. Empty list means all domains belonging to the current account.
          example: &id083
          - 1
          - 2
          - 3
          examples:
          - *id083
          title: Domains
        description: List of domain IDs. Empty list means all domains belonging to the current account.
      - name: has_policy_override
        in: query
        required: false
        schema:
          anyOf:
          - type: boolean
          - type: 'null'
          description: True selects events with applied overrides; false excludes them. Omit to include both.
          title: Has Policy Override
        description: True selects events with applied overrides; false excludes them. Omit to include both.
      - name: order_by
        in: query
        required: false
        schema:
          enum:
          - request_time.asc
          - request_time.desc
          type: string
          description: Result sorting order.
          example: request_time.asc
          examples:
          - request_time.asc
          - request_time.desc
          default: request_time.desc
          title: Order By
        description: Result sorting order.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: next
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Cursor value to fetch next page of events log.
          title: Next
        description: Cursor value to fetch next page of events log.
      - name: start
        in: query
        required: true
        schema:
          type: string
          description: Filter data items starting from a specified date in ISO 8601 format
          example: '2024-04-13T00:00:00+01:00'
          examples:
          - '2024-04-13T00:00:00+01:00'
          title: Start
        description: Filter data items starting from a specified date in ISO 8601 format
      - name: end
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
          examples:
          - '2024-04-14T12:00:00Z'
          title: End
        description: Filter data items up to a specified end date in ISO 8601 format. If not provided, defaults to the current date and time.
      - name: ips
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            format: ipvanyaddress
          maxItems: 10
          description: Filter traffic data by client IP.
          example: &id084
          - 1.2.3.4
          - 2001:678:194::3c25:ddad
          examples:
          - *id084
          title: Ips
        description: Filter traffic data by client IP.
      - name: path
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Filter by URL path. '*' is wildcard.
          example: &id085
          - /home
          - /users/*/profile
          examples:
          - *id085
          title: Path
        description: Filter by URL path. '*' is wildcard.
      - name: countries
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^\w{2}$
          description: Filter data by a country code of the originating IP address in ISO 3166-1 alpha-2 format.
          example: &id086
          - DE
          - MY
          examples:
          - *id086
          title: Countries
        description: Filter data by a country code of the originating IP address in ISO 3166-1 alpha-2 format.
      - name: asns
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            maximum: 4294967295
            minimum: 1
          maxItems: 10
          description: Filter data by the ASN (Autonomous System Number) of the originating IP address. Not supported by `/v1/analytics/requests`.
          example: &id087
          - 15169
          - 13335
          examples:
          - *id087
          title: Asns
        description: Filter data by the ASN (Autonomous System Number) of the originating IP address. Not supported by `/v1/analytics/requests`.
      - name: status_codes
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            maximum: 599
            minimum: 100
          description: Filter data by HTTP response status code.
          example: &id088
          - '403'
          - '499'
          examples:
          - *id088
          title: Status Codes
        description: Filter data by HTTP response status code.
      - name: http_methods
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/HttpMethodType'
          description: Filter by HTTP methods
          example: &id089
          - GET
          - HEAD
          examples:
          - *id089
          title: Http Methods
        description: Filter by HTTP methods
      - name: reference_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}$
          description: Filter data by reference IDs.
          example: &id090
          - 1140fcddf208cbdf01694e8e2f818a68
          examples:
          - *id090
          title: Reference Ids
        description: Filter data by reference IDs.
      - name: request_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}-[0-9]{6}$
          description: Filter data by request IDs.
          example: &id091
          - 96763b8fb655e9f18a2e04097b704e39-458959
          examples:
          - *id091
          title: Request Ids
        description: Filter data by request IDs.
      - name: exclude_request_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}-[0-9]{6}$
          description: Exclude data by request IDs.
          example: &id092
          - 96763b8fb655e9f18a2e04097b704e39-458959
          examples:
          - *id092
          title: Exclude Request Ids
        description: Exclude data by request IDs.
      - name: session_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}$
          description: Filter data by session IDs.
          example: &id093
          - edab69d73b47cfecc3d3c038ada6c7de
          examples:
          - *id093
          title: Session Ids
        description: Filter data by session IDs.
      - name: security_rule_names
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 100
            pattern: ^[a-zA-Z0-9_ ~!@#$%^&*()+\[\]{}|.,;:<>?/-]*$
          description: Filter data by name of a security rule matched the request.
          example: &id094
          - SQL injection
          examples:
          - *id094
          title: Security Rule Names
        description: Filter data by name of a security rule matched the request.
      - name: decision
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/EventDecision'
            description: Filter data by the event decision.
          description: Filter data by decision.
          example: &id095
          - allowed
          - blocked
          examples:
          - *id095
          title: Decision
        description: Filter data by decision.
      - name: optional_action
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/OptionalAction'
            description: An optional action that may be applied in addition to the primary decision.
          description: Filter data by optional action.
          example: &id096
          - captcha
          - challenge
          examples:
          - *id096
          title: Optional Action
        description: Filter data by optional action.
      - name: exclude_ips
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            format: ipvanyaddress
          description: Exclude traffic data by client IP.
          example: &id097
          - 1.2.3.4
          - 2001:678:194::3c25:ddad
          examples:
          - *id097
          title: Exclude Ips
        description: Exclude traffic data by client IP.
      - name: exclude_countries
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^\w{2}$
          description: Exclude data by a country code of the originating IP address in ISO 3166-1 alpha-2 format.
          example: &id098
          - DE
          - MY
          examples:
          - *id098
          title: Exclude Countries
        description: Exclude data by a country code of the originating IP address in ISO 3166-1 alpha-2 format.
      - name: exclude_asns
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            maximum: 4294967295
            minimum: 1
          maxItems: 10
          description: Exclude data by the ASN (Autonomous System Number) of the originating IP address. Not supported by `/v1/analytics/requests`.
          example: &id099
          - 15169
          - 13335
          examples:
          - *id099
          title: Exclude Asns
        description: Exclude data by the ASN (Autonomous System Number) of the originating IP address. Not supported by `/v1/analytics/requests`.
      - name: exclude_session_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}$
          description: Exclude data by session IDs.
          title: Exclude Session Ids
        description: Exclude data by session IDs.
      - name: exclude_reference_ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[a-f0-9]{32}$
          description: Exclude data by reference IDs.
          title: Exclude Reference Ids
        description: Exclude data by reference IDs.
      - name: exclude_security_rule_names
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 100
            pattern: ^[a-zA-Z0-9_ ~!@#$%^&*()+\[\]{}|.,;:<>?/-]*$
          description: Exclude data by name of a security rule matched the request.
          example: &id100
          - SQL injection
          examples:
          - *id100
          title: Exclude Security Rule Names
        description: Exclude data by name of a security rule matched the request.
      - name: exclude_domains
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          description: Exclude data by domain ID.
          title: Exclude Domains
        description: Exclude data by domain ID.
      - name: ja3
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[0-9a-fA-F]{32}$
          maxItems: 10
          description: Filter by JA3 TLS client fingerprint. Each value must be exactly 32 hexadecimal characters, mixed case allowed, normalized to lowercase. Supply multiple values to match any of them. Omit the parameter to apply no JA3 filter.
          example: &id101
          - e7d705a3286e19ea42f587b344ee6865
          examples:
          - *id101
          title: Ja3
        description: Filter by JA3 TLS client fingerprint. Each value must be exactly 32 hexadecimal characters, mixed case allowed, normalized to lowercase. Supply multiple values to match any of them. Omit the parameter to apply no JA3 filter.
      - name: ja4
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[0-9a-zA-Z]{10}_[0-9a-fA-F]{12}_[0-9a-fA-F]{12}$
          maxItems: 10
          description: Filter by JA4 TLS client fingerprint. When present, the value must match the JA4 form `<ja4_a>_<ja4_b>_<ja4_c>` (a 10-character prefix and two 12-character hexadecimal hashes, mixed case allowed, normalized to lowercase). Supply multiple values to match any of them. Omit the parameter entirely to apply no JA4 filter.
          example: &id102
          - t13d3113h2_e8f1e7e78f70_ce5650b735ce
          examples:
          - *id102
          title: Ja4
        description: Filter by JA4 TLS client fingerprint. When present, the value must match the JA4 form `<ja4_a>_<ja4_b>_<ja4_c>` (a 10-character prefix and two 12-character hexadecimal hashes, mixed case allowed, normalized to lowercase). Supply multiple values to match any of them. Omit the parameter entirely to apply no JA4 filter.
      - name: user_agent
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 300
          maxItems: 10
          description: Include entries whose user agent contains any of the supplied texts, case-insensitive partial match. Omit or provide an empty list to apply no user agent text filter.
          example: &id103
          - Mozilla/5.0
          - python-requests
          examples:
          - *id103
          title: User Agent
        description: Include entries whose user agent contains any of the supplied texts, case-insensitive partial match. Omit or provide an empty list to apply no user agent text filter.
      - name: user_agent_clients
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 10
          description: Include entries whose parsed user agent client exactly equals any supplied value. Omit or provide an empty list to apply no user agent client filter.
          example: &id104
          - Chrome
          - Firefox
          examples:
          - *id104
          title: User Agent Clients
        description: Include entries whose parsed user agent client exactly equals any supplied value. Omit or provide an empty list to apply no user agent client filter.
      - name: user_agent_devices
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 10
          description: Include entries whose parsed user agent device exactly equals any supplied value. Omit or provide an empty list to apply no user agent device filter.
          example: &id105
          - mac
          - Nokia
          - PlayStation
          examples:
          - *id105
          title: User Agent Devices
        description: Include entries whose parsed user agent device exactly equals any supplied value. Omit or provide an empty list to apply no user agent device filter.
      - name: tags
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 5
          description: Include entries whose tag exactly equals any supplied value. Omit or provide an empty list to apply no tag filter.
          example: &id106
          - evasiveclient
          - injectionattack
          examples:
          - *id106
          title: Tags
        description: Include entries whose tag exactly equals any supplied value. Omit or provide an empty list to apply no tag filter.
      - name: organizations
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 100
          maxItems: 10
          description: Include entries whose organization exactly equals any supplied value. Omit or provide an empty list to apply no organization filter.
          example: &id107
          - Example Org
          - Acme Corp
          examples:
          - *id107
          title: Organizations
        description: Include entries whose organization exactly equals any supplied value. Omit or provide an empty list to apply no organization filter.
      - name: exclude_user_agent
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 300
          maxItems: 10
          description: Exclude entries whose user agent contains any of the supplied texts, case-insensitive partial match. Omit or provide an empty list to apply no user agent text exclusion.
          example: &id108
          - python-requests
          - bot
          examples:
          - *id108
          title: Exclude User Agent
        description: Exclude entries whose user agent contains any of the supplied texts, case-insensitive partial match. Omit or provide an empty list to apply no user agent text exclusion.
      - name: exclude_user_agent_clients
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 10
          description: Exclude entries whose parsed user agent client exactly equals any supplied value. Omit or provide an empty list to apply no user agent client exclusion.
          example: &id109
          - OpenAI GPTBot
          - Uptimerobot
          examples:
          - *id109
          title: Exclude User Agent Clients
        description: Exclude entries whose parsed user agent client exactly equals any supplied value. Omit or provide an empty list to apply no user agent client exclusion.
      - name: exclude_user_agent_devices
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 10
          description: Exclude entries whose parsed user agent device exactly equals any supplied value. Omit or provide an empty list to apply no user agent device exclusion.
          example: &id110
          - SMART TV
          examples:
          - *id110
          title: Exclude User Agent Devices
        description: Exclude entries whose parsed user agent device exactly equals any supplied value. Omit or provide an empty list to apply no user agent device exclusion.
      - name: exclude_ja3
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[0-9a-fA-F]{32}$
          maxItems: 10
          description: Exclude entries whose JA3 TLS client fingerprint matches any of the supplied values. Each value must be exactly 32 hexadecimal characters, mixed case allowed, normalized to lowercase. Supply multiple values to exclude any of them. Omit the parameter to apply no JA3 exclusion.
          example: &id111
          - e7d705a3286e19ea42f587b344ee6865
          examples:
          - *id111
          title: Exclude Ja3
        description: Exclude entries whose JA3 TLS client fingerprint matches any of the supplied values. Each value must be exactly 32 hexadecimal characters, mixed case allowed, normalized to lowercase. Supply multiple values to exclude any of them. Omit the parameter to apply no JA3 exclusion.
      - name: exclude_ja4
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            pattern: ^[0-9a-zA-Z]{10}_[0-9a-fA-F]{12}_[0-9a-fA-F]{12}$
          maxItems: 10
          description: Exclude entries whose JA4 TLS client fingerprint equals any of the supplied values. An item must match the JA4 form `<ja4_a>_<ja4_b>_<ja4_c>` (a 10-character prefix and two 12-character hexadecimal hashes, mixed case allowed, normalized to lowercase). Omit the parameter to apply no JA4 exclusion.
          example: &id112
          - t13d3113h2_e8f1e7e78f70_ce5650b735ce
          examples:
          - *id112
          title: Exclude Ja4
        description: Exclude entries whose JA4 TLS client fingerprint equals any of the supplied values. An item must match the JA4 form `<ja4_a>_<ja4_b>_<ja4_c>` (a 10-character prefix and two 12-character hexadecimal hashes, mixed case allowed, normalized to lowercase). Omit the parameter to apply no JA4 exclusion.
      - name: exclude_tags
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 50
          maxItems: 5
          description: Exclude entries whose tag exactly equals any supplied value. Omit or provide an empty list to apply no tag exclusion.
          example: &id113
          - mousedevice
          examples:
          - *id113
          title: Exclude Tags
        description: Exclude entries whose tag exactly equals any supplied value. Omit or provide an empty list to apply no tag exclusion.
      - name: exclude_organizations
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            maxLength: 100
          maxItems: 10
          description: Exclude entries whose organization exactly equals any supplied value. Omit or provide an empty list to apply no organization exclusion.
          example: &id114
          - Acme corp
          examples:
          - *id114
          title: Exclude Organizations
        description: Exclude entries whose organization exactly equals any supplied value. Omit or provide an empty list to apply no organization exclusion.
      - name: exclude_status_codes
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            maximum: 599
            minimum: 100
          description: Exclude entries with any of the given HTTP response status codes.
          example: &id115
          - '500'
          - '501'
          examples:
          - *id115
          title: Exclude Status Codes
        description: Exclude entries with any of the given HTTP response status codes.
      - name: exclude_http_methods
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/HttpMethodType'
          description: Exclude entries with any of the given HTTP methods.
          example: &id116
          - POST
          - PUT
          examples:
          - *id116
          title: Exclude Http Methods
        description: Exclude entries with any of the given HTTP methods.
      - name: exclude_optional_action
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/OptionalAction'
            description: An optional action that may be applied in addition to the primary decision.
          description: Exclude entries that match any of the given optional action values.
          example: &id117
          - captcha
          - challenge
          examples:
          - *id117
          title: Exclude Optional Action
        description: Exclude entries that match any of the given optional action values.
      - name: exclude_decision
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/EventDecision'
            description: Decision applied to a request.
          description: Exclude entries that match any of the given decisions.
          example: &id118
          - allowed
          - blocked
          examples:
          - *id118
          title: Exclude Decision
        description: Exclude entries that match any of the given decisions.
      - name: exclude_path
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Exclude entries that match the given URL path pattern; '*' is wildcard.
          example: &id119
          - /home
          - /users/*/profile
          examples:
          - *id119
          title: Exclude Path
        description: Exclude entries that match the given URL path pattern; '*' is wildcard.
      - name: traffic_types
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/TrafficType'
          description: Include entries that have any of the given traffic types.
          example: &id120
          - api
          - ajax
          examples:
          - *id120
          title: Traffic Types
        description: Include entries that have any of the given traffic types.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventsResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.analytics.get_events(
              start="2024-04-13T00:00:00+01:00",
          )
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Analytics.GetEvents(context.TODO(), waap.AnalyticsGetEventsParams{
          		Start: "2024-04-13T00:00:00+01:00",
          	})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v2/domains/{domain_id}/rule-sets:
    get:
      tags:
      - Policies
      summary: List domain policy rule sets
      description: Retrieve a paginated list of policy rule sets available for a particular domain. Use [List domain policies](/api-reference/waap/policies/list-domain-policies) to fetch the policies.
      operationId: list_policy_rule_sets_v2_domains__domain_id__rule_sets_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_BaseRuleSet_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.domains.list_rule_sets(
              domain_id=1,
          )
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Domains.ListRuleSets(
          		context.TODO(),
          		1,
          		waap.DomainListRuleSetsParams{},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v2/domains/{domain_id}/policies:
    get:
      tags:
      - Policies
      summary: List domain policies
      description: Retrieve a paginated list of policies linked to a particular domain, optionally filtered by rule set
      operationId: list_domain_policies_v2_domains__domain_id__policies_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: rule_set_id
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          description: Filter policies by rule set ID
          title: Rule Set Id
        description: Filter policies by rule set ID
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_DomainPolicy_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.domains.policies.list(
              domain_id=1,
          )
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Domains.Policies.List(
          		context.TODO(),
          		1,
          		waap.DomainPolicyListParams{},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v2/domains/{domain_id}/policies/{policy_id}:
    patch:
      tags:
      - Policies
      summary: Set domain policy settings
      description: Configure a security policy on a domain.
      operationId: set_domain_policy_settings_v2_domains__domain_id__policies__policy_id__patch
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: policy_id
        in: path
        required: true
        schema:
          type: string
          description: The ID of the policy to update
          title: Policy Id
        description: The ID of the policy to update
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DomainPolicySettings'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainPolicySettings'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Feature check fail
          content:
            application/problem+json:
              example:
                title: Feature check fail
                type: feature-check
                status: 401
                detail: This feature is not available under your current plan. Please upgrade your plan to access this feature.
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_domain_policy_settings = client.waap.domains.policies.update(
              policy_id="policy_id",
              domain_id=1,
              mode=True,
          )
          print(waap_domain_policy_settings.mode)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapDomainPolicySettings, err := client.Waap.Domains.Policies.Update(
          		context.TODO(),
          		"policy_id",
          		waap.DomainPolicyUpdateParams{
          			DomainID: 1,
          			WaapDomainPolicySettings: waap.WaapDomainPolicySettingsParam{
          				Mode: true,
          			},
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapDomainPolicySettings.Mode)
          }
    get:
      tags:
      - Policies
      summary: Get domain policy settings
      description: Retrieve the configuration of a security policy on a domain.
      operationId: get_domain_policy_settings_v2_domains__domain_id__policies__policy_id__get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: policy_id
        in: path
        required: true
        schema:
          type: string
          description: The ID of the policy to retrieve
          example: S1234
          examples:
          - S1234
          title: Policy Id
        description: The ID of the policy to retrieve
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainPolicySettings'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_domain_policy_settings = client.waap.domains.policies.get(
              policy_id="S1234",
              domain_id=1,
          )
          print(waap_domain_policy_settings.mode)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapDomainPolicySettings, err := client.Waap.Domains.Policies.Get(
          		context.TODO(),
          		"S1234",
          		waap.DomainPolicyGetParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapDomainPolicySettings.Mode)
          }
  /waap/v2/domains/{domain_id}/insight-silences:
    post:
      tags:
      - Security Insights
      summary: Create insight silence
      description: Create a new insight silence for a specified domain. Insight silences help in temporarily disabling certain insights based on specific criteria.
      operationId: create_insight_silence_v2_domains__domain_id__insight_silences_post
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateInsightSilencePayload'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsightSilence'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_insight_silence = client.waap.domains.insight_silences.create(
              domain_id=1,
              author="author",
              comment="comment",
              insight_type="26f1klzn5713-56bincal4ca-60zz1k91s4",
              labels={
                  "foo": "string"
              },
          )
          print(waap_insight_silence.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapInsightSilence, err := client.Waap.Domains.InsightSilences.New(
          		context.TODO(),
          		1,
          		waap.DomainInsightSilenceNewParams{
          			Author:      "author",
          			Comment:     "comment",
          			InsightType: "26f1klzn5713-56bincal4ca-60zz1k91s4",
          			Labels: map[string]string{
          				"foo": "string",
          			},
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapInsightSilence.ID)
          }
    get:
      tags:
      - Security Insights
      summary: List insight silences
      description: Retrieve a list of insight silences for a specific domain
      operationId: get_insight_silences_v2_domains__domain_id__insight_silences_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: ordering
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/InsightSilenceSortBy'
          description: Sort the response by given field.
          default: -id
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: id
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              format: uuid
          - type: 'null'
          description: The ID of the insight silence
          title: Id
        description: The ID of the insight silence
      - name: insight_type
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: The type of the insight silence
          title: Insight Type
        description: The type of the insight silence
      - name: comment
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The comment of the insight silence
          title: Comment
        description: The comment of the insight silence
      - name: author
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The author of the insight silence
          title: Author
        description: The author of the insight silence
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_InsightSilence_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.domains.insight_silences.list(
              domain_id=1,
          )
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Domains.InsightSilences.List(
          		context.TODO(),
          		1,
          		waap.DomainInsightSilenceListParams{},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v2/domains/{domain_id}/insight-silences/{silence_id}:
    get:
      tags:
      - Security Insights
      summary: Get insight silence
      description: Retrieve a specific insight silence for a specific domain
      operationId: get_insight_silence_v2_domains__domain_id__insight_silences__silence_id__get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: silence_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: A generated unique identifier for the silence
          title: Silence Id
        description: A generated unique identifier for the silence
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsightSilence'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_insight_silence = client.waap.domains.insight_silences.get(
              silence_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
              domain_id=1,
          )
          print(waap_insight_silence.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapInsightSilence, err := client.Waap.Domains.InsightSilences.Get(
          		context.TODO(),
          		"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
          		waap.DomainInsightSilenceGetParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapInsightSilence.ID)
          }
    patch:
      tags:
      - Security Insights
      summary: Update insight silence
      description: Update an insight silence for a specific domain.
      operationId: update_insight_silence_v2_domains__domain_id__insight_silences__silence_id__patch
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: silence_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: A generated unique identifier for the silence
          title: Silence Id
        description: A generated unique identifier for the silence
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateInsightSilencePayload'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsightSilence'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from datetime import datetime
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_insight_silence = client.waap.domains.insight_silences.update(
              silence_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
              domain_id=1,
              author="author",
              comment="comment",
              expire_at=datetime.fromisoformat("2019-12-27T18:11:19.117"),
          )
          print(waap_insight_silence.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"
          	"time"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapInsightSilence, err := client.Waap.Domains.InsightSilences.Update(
          		context.TODO(),
          		"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
          		waap.DomainInsightSilenceUpdateParams{
          			DomainID: 1,
          			Author:   "author",
          			Comment:  "comment",
          			ExpireAt: gcore.Time(time.Now()),
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapInsightSilence.ID)
          }
    delete:
      tags:
      - Security Insights
      summary: Delete insight silence
      description: Delete an insight silence for a specific domain.
      operationId: delete_insight_silence_v2_domains__domain_id__insight_silences__silence_id__delete
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      - name: silence_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: A generated unique identifier for the silence
          title: Silence Id
        description: A generated unique identifier for the silence
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          client.waap.domains.insight_silences.delete(
              silence_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
              domain_id=1,
          )
      - lang: Go
        source: |
          package main

          import (
          	"context"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	err := client.Waap.Domains.InsightSilences.Delete(
          		context.TODO(),
          		"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
          		waap.DomainInsightSilenceDeleteParams{
          			DomainID: 1,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          }
  /waap/v2/domains:
    get:
      tags:
      - Domains
      summary: List Domains
      description: Retrieve a list of domains associated with the client, including traffic statistics
      operationId: get_domains_v2_domains_get
      parameters:
      - name: ordering
        in: query
        required: false
        schema:
          enum:
          - id
          - name
          - status
          - created_at
          - -id
          - -name
          - -status
          - -created_at
          - total_requests
          - -total_requests
          - attacks_detected
          - -attacks_detected
          type: string
          description: Sort the response by given field.
          title: Ordering
        description: Sort the response by given field.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: Number of items to return
          default: 100
          title: Limit
        description: Number of items to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 100000
          minimum: 0
          description: Number of items to skip
          default: 0
          title: Offset
        description: Number of items to skip
      - name: status
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/DomainStatus'
          description: Filter domains based on the domain status
          examples:
          - active
        description: Filter domains based on the domain status
      - name: name
        in: query
        required: false
        schema:
          type: string
          description: Filter domains based on the domain name. Supports '*' as a wildcard character
          example: '*example.com'
          examples:
          - '*example.com'
          title: Name
        description: Filter domains based on the domain name. Supports '*' as a wildcard character
      - name: ids
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
            exclusiveMinimum: 0
            description: The domain ID
          description: Filter domains based on their IDs
          example: 1
          examples:
          - 1
          - 2
          - 3
          title: Ids
        description: Filter domains based on their IDs
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_SummaryDomainWithStatsResponse_'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          page = client.waap.domains.list()
          page = page.results[0]
          print(page.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	page, err := client.Waap.Domains.List(context.TODO(), waap.DomainListParams{})
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", page)
          }
  /waap/v2/domains/{domain_id}:
    get:
      tags:
      - Domains
      summary: Get domain details
      description: Retrieve detailed information about a specific domain
      operationId: get_domain_v2_domains__domain_id__get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailedDomainResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_detailed_domain = client.waap.domains.get(
              1,
          )
          print(waap_detailed_domain.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapDetailedDomain, err := client.Waap.Domains.Get(context.TODO(), 1)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapDetailedDomain.ID)
          }
    patch:
      tags:
      - Domains
      summary: Update domain
      operationId: update_domain_v2_domains__domain_id__patch
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDomain'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailedDomainResponse'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_detailed_domain = client.waap.domains.update(
              domain_id=1,
              status="active",
          )
          print(waap_detailed_domain.id)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapDetailedDomain, err := client.Waap.Domains.Update(
          		context.TODO(),
          		1,
          		waap.DomainUpdateParams{
          			Status: waap.DomainUpdateParamsStatusActive,
          		},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapDetailedDomain.ID)
          }
    delete:
      tags:
      - Domains
      summary: Delete Domain
      description: Delete an inactive domain by ID. Only domains with status 'bypass' can be deleted.
      operationId: delete_domain_v2_domains__domain_id__delete
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      responses:
        '204':
          description: Successful Response
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          description: Resource not found
          content:
            application/problem+json:
              example:
                title: Resource not found
                type: quota-check-no-resource
                status: 404
                detail: The quota resource requested does not exist. Cannot enable WAAP for this domain. Please reach out to our support team.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          description: Internal server error.
          content:
            application/problem+json:
              example:
                title: Internal server error.
                type: internal-server-error
                status: 500
                detail: Something went wrong. Cannot enable WAAP for this domain. Please try again later or reach out to our support team.
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          client.waap.domains.delete(
              1,
          )
      - lang: Go
        source: |
          package main

          import (
          	"context"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	err := client.Waap.Domains.Delete(context.TODO(), 1)
          	if err != nil {
          		panic(err.Error())
          	}
          }
  /waap/v2/domains/{domain_id}/settings:
    get:
      tags:
      - Domains
      summary: Retrieve Domain Settings
      description: Retrieve settings for a specific domain
      operationId: get_domain_settings_v2_domains__domain_id__settings_get
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainSettings'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_domain_settings_model = client.waap.domains.settings.get(
              1,
          )
          print(waap_domain_settings_model.api)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapDomainSettingsModel, err := client.Waap.Domains.Settings.Get(context.TODO(), 1)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapDomainSettingsModel.API)
          }
    patch:
      tags:
      - Domains
      summary: Set Domain Settings
      description: Set various settings for a specific domain. Omitted settings will remain unchanged.
      operationId: update_domain_settings_v2_domains__domain_id__settings_patch
      parameters:
      - name: domain_id
        in: path
        required: true
        schema:
          type: integer
          exclusiveMinimum: 0
          description: The domain ID
          title: Domain Id
        description: The domain ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDomainSettings'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainSettings'
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-bad-request
                title: Bad Request
                status: 400
                detail: 'Invalid domain name: '''''''''
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              example:
                detail: Auth token is missing or invalid
        '403':
          description: Unauthenticated
          content:
            application/problem+json:
              example:
                detail: Permission denied
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: http-not-found
                title: Not Found
                status: 404
                detail: The resource is not found
          description: Not Found
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APICompositeError'
              example:
                type: request-validation-failed
                title: Request validation error.
                status: 422
                detail: One or more fields have validation errors.
                errors:
                - loc:
                  - body
                  - name
                  detail: Input should be a valid string
                - loc:
                  - body
                  - date
                  detail: Field required
                - loc:
                  - query
                  - limit
                  detail: Field required
          description: Unprocessable Entity
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                type: internal-server-error
                title: Internal server error.
                status: 500
                detail: An unexpected condition was encountered which prevented the server from fulfilling the request.
          description: Internal Server Error
      x-codeSamples:
      - lang: Python
        source: |-
          import os
          from gcore import Gcore

          client = Gcore(
              api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
          )
          waap_domain_settings_model = client.waap.domains.settings.update(
              domain_id=1,
          )
          print(waap_domain_settings_model.api)
      - lang: Go
        source: |
          package main

          import (
          	"context"
          	"fmt"

          	"github.com/G-Core/gcore-go"
          	"github.com/G-Core/gcore-go/option"
          	"github.com/G-Core/gcore-go/waap"
          )

          func main() {
          	client := gcore.NewClient(
          		option.WithAPIKey("My API Key"),
          	)
          	waapDomainSettingsModel, err := client.Waap.Domains.Settings.Update(
          		context.TODO(),
          		1,
          		waap.DomainSettingUpdateParams{},
          	)
          	if err != nil {
          		panic(err.Error())
          	}
          	fmt.Printf("%+v\n", waapDomainSettingsModel.API)
          }
components:
  schemas:
    APICompositeError:
      properties:
        type:
          type: string
          title: Type
          description: A URI identifier that categorizes the type of error.
        title:
          type: string
          title: Title
          description: A brief, human-readable title for the error.
        status:
          type: integer
          title: Status
          description: The HTTP status code applicable to this error.
        detail:
          anyOf:
          - type: string
          - type: 'null'
          title: Detail
          description: A detailed human-readable explanation of the error.
        errors:
          items:
            $ref: '#/components/schemas/APIFieldError'
          type: array
          title: Errors
          description: A list of detailed errors for individual fields.
      type: object
      required:
      - type
      - title
      - status
      - detail
      - errors
      title: APICompositeError
    APIError:
      properties:
        type:
          type: string
          title: Type
          description: A URI identifier that categorizes the type of error.
        title:
          type: string
          title: Title
          description: A brief, human-readable title for the error.
        status:
          type: integer
          title: Status
          description: The HTTP status code applicable to this error.
        detail:
          anyOf:
          - type: string
          - type: 'null'
          title: Detail
          description: A detailed human-readable explanation of the error.
      type: object
      required:
      - type
      - title
      - status
      - detail
      title: APIError
    APIFieldError:
      properties:
        loc:
          anyOf:
          - items:
              anyOf:
              - type: integer
              - type: string
            type: array
          - {}
          title: Loc
          description: The location of the field or a character number causing the error.
        detail:
          type: string
          title: Detail
          description: A human-readable message describing the error.
      type: object
      required:
      - loc
      - detail
      title: APIFieldError
    AccountFirewallRuleResponse:
      properties:
        id:
          type: integer
          title: Id
          description: The unique identifier for the rule
        name:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^[A-Za-z0-9\s.:'";<>?&|\\_-]+$
          title: Name
          description: The name assigned to the rule
          example: Block foobar bot
          examples:
          - Block foobar bot
        enabled:
          type: boolean
          title: Enabled
          description: Whether or not the rule is enabled
        description:
          type: string
          maxLength: 100
          title: Description
          description: A description assigned to the rule.
        action:
          $ref: '#/components/schemas/FirewallRuleAction'
          description: The action that the rule takes when triggered
        conditions:
          items:
            $ref: '#/components/schemas/FirewallRuleCondition'
          type: array
          maxItems: 1
          minItems: 1
          title: Conditions
          description: The condition required for the WAAP engine to trigger the rule.
        domain:
          $ref: '#/components/schemas/app__models__domains__DomainInfo'
          description: The domain this firewall rule belongs to
      type: object
      required:
      - id
      - name
      - enabled
      - description
      - action
      - conditions
      - domain
      title: AccountFirewallRuleResponse
      description: Firewall rule response for account-level queries with domain information
    AdvancedRule:
      properties:
        name:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^[A-Za-z0-9\s.:'";<>?&|\\_-]+$
          title: Name
          description: The name assigned to the rule
          example: Block foobar bot
          examples:
          - Block foobar bot
        enabled:
          type: boolean
          title: Enabled
          description: Whether or not the rule is enabled
        description:
          type: string
          maxLength: 100
          title: Description
          description: A human-readable description.
          default: ''
        action:
          $ref: '#/components/schemas/CustomerRuleAction'
          description: The action that the rule takes when triggered. Only one action can be set per rule.
        source:
          type: string
          minLength: 1
          title: Source
          description: |-
            A CEL syntax expression that contains the rule's conditions. Allowed objects are: request, whois, session, response, tags, `user_defined_tags`, `user_agent`, `client_data`.

            More info can be found here: https://gcore.com/docs/waap/waap-rules/advanced-rules
          example: request.rate_limit([], '.*events', 5, 200, [], [], '', 'ip') and not ('mb-web-ui' in request.headers['Cookie'] or 'mb-mobile-ios' in request.headers['Cookie'] or 'session-token' in request.headers['Cookie']) and not request.headers['session']
          examples:
          - request.rate_limit([], '.*events', 5, 200, [], [], '', 'ip') and not ('mb-web-ui' in request.headers['Cookie'] or 'mb-mobile-ios' in request.headers['Cookie'] or 'session-token' in request.headers['Cookie']) and not request.headers['session']
        phase:
          anyOf:
          - type: string
            enum:
            - access
            - header_filter
            - body_filter
          - type: 'null'
          title: Phase
          description: |-
            The WAAP request/response phase for applying the rule. Default is "access".


            The "access" phase is responsible for modifying the request before it is sent to the origin server. 

            The "header_filter" phase is responsible for modifying the HTTP headers of a response before they are sent back to the client.

            The "body_filter" phase is responsible for modifying the body of a response before it is sent back to the client.
          default: access
      type: object
      required:
      - name
      - enabled
      - action
      - source
      title: AdvancedRule
      description: Advanced rule data in the rule creation request context
    AdvancedRuleDescriptor:
      properties:
        name:
          type: string
          title: Name
          description: The object's name
        type:
          type: string
          title: Type
          description: The object's type
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: The object's description
        attrs:
          anyOf:
          - items:
              $ref: '#/components/schemas/AdvancedRuleDescriptorAttr'
            type: array
          - type: 'null'
          title: Attrs
          description: The object's attributes list
      type: object
      required:
      - name
      - type
      title: AdvancedRuleDescriptor
      description: Advanced rules descriptor object
    AdvancedRuleDescriptorArg:
      properties:
        name:
          type: string
          title: Name
          description: The argument's name
        type:
          type: string
          title: Type
          description: The argument's type
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: The argument's description
      type: object
      required:
      - name
      - type
      title: AdvancedRuleDescriptorArg
      description: An argument of a descriptor's object
    AdvancedRuleDescriptorAttr:
      properties:
        name:
          type: string
          title: Name
          description: The attribute's name
        type:
          type: string
          title: Type
          description: The attribute's type
        hint:
          anyOf:
          - type: string
          - type: 'null'
          title: Hint
          description: The attribute's hint
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: The attribute's description
        args:
          anyOf:
          - items:
              $ref: '#/components/schemas/AdvancedRuleDescriptorArg'
            type: array
          - type: 'null'
          title: Args
          description: A list of arguments for the attribute
      type: object
      required:
      - name
      - type
      title: AdvancedRuleDescriptorAttr
      description: An attribute of a descriptor's object
    AdvancedRuleDescriptorResponse:
      properties:
        version:
          type: string
          title: Version
          description: The descriptor's version
        objects:
          anyOf:
          - items:
              $ref: '#/components/schemas/AdvancedRuleDescriptor'
            type: array
          - type: 'null'
          title: Objects
      type: object
      required:
      - version
      title: AdvancedRuleDescriptorResponse
      description: A response from a request to retrieve an advanced rules descriptor
    AdvancedRuleResponse:
      properties:
        id:
          type: integer
          title: Id
          description: The unique identifier for the rule
        name:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^[A-Za-z0-9\s.:'";<>?&|\\_-]+$
          title: Name
          description: The name assigned to the rule
          example: Block foobar bot
          examples:
          - Block foobar bot
        enabled:
          type: boolean
          title: Enabled
          description: Whether or not the rule is enabled
        description:
          type: string
          maxLength: 100
          title: Description
          description: A description assigned to the rule.
        action:
          $ref: '#/components/schemas/CustomerRuleAction'
          description: The action that the rule takes when triggered. Only one action can be set per rule.
        source:
          type: string
          minLength: 1
          title: Source
          description: |-
            A CEL syntax expression that contains the rule's conditions. Allowed objects are: request, whois, session, response, tags, `user_defined_tags`, `user_agent`, `client_data`.

            More info can be found here: https://gcore.com/docs/waap/waap-rules/advanced-rules
          example: request.rate_limit([], '.*events', 5, 200, [], [], '', 'ip') and not ('mb-web-ui' in request.headers['Cookie'] or 'mb-mobile-ios' in request.headers['Cookie'] or 'session-token' in request.headers['Cookie']) and not request.headers['session']
          examples:
          - request.rate_limit([], '.*events', 5, 200, [], [], '', 'ip') and not ('mb-web-ui' in request.headers['Cookie'] or 'mb-mobile-ios' in request.headers['Cookie'] or 'session-token' in request.headers['Cookie']) and not request.headers['session']
        phase:
          anyOf:
          - type: string
            enum:
            - access
            - header_filter
            - body_filter
          - type: 'null'
          title: Phase
          description: |-
            The WAAP request/response phase for applying the rule. Default is "access".


            The "access" phase is responsible for modifying the request before it is sent to the origin server. 

            The "header_filter" phase is responsible for modifying the HTTP headers of a response before they are sent back to the client.

            The "body_filter" phase is responsible for modifying the body of a response before it is sent back to the client.
          default: access
      type: object
      required:
      - id
      - name
      - enabled
      - description
      - action
      - source
      title: AdvancedRuleResponse
      description: Full advanced rule representation
    ApiDiscoverySettings:
      properties:
        descriptionFileLocation:
          anyOf:
          - type: string
          - type: 'null'
          title: Descriptionfilelocation
          description: The URL of the API description file. This will be periodically scanned if `descriptionFileScanEnabled` is enabled. Supported formats are YAML and JSON, and it must adhere to OpenAPI versions 2, 3, or 3.1.
        descriptionFileScanEnabled:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Descriptionfilescanenabled
          description: Indicates if periodic scan of the description file is enabled
        descriptionFileScanIntervalHours:
          anyOf:
          - type: integer
          - type: 'null'
          title: Descriptionfilescanintervalhours
          description: The interval in hours for scanning the description file
        trafficScanEnabled:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Trafficscanenabled
          description: Indicates if traffic scan is enabled. Traffic scan is used to discover undocumented APIs
        trafficScanIntervalHours:
          anyOf:
          - type: integer
          - type: 'null'
          title: Trafficscanintervalhours
          description: The interval in hours for scanning the traffic
      type: object
      title: ApiDiscoverySettings
      description: Response model for the API discovery settings
    ApiPathGroups:
      properties:
        api_path_groups:
          items:
            type: string
          type: array
          title: Api Path Groups
          description: An array of api groups associated with the API path
          example: &id121
          - accounts
          - internal
          examples:
          - *id121
      type: object
      required:
      - api_path_groups
      title: ApiPathGroups
      description: Response model for the API path groups
    ApiPathHttpScheme:
      type: string
      enum:
      - HTTP
      - HTTPS
      title: ApiPathHttpScheme
      description: The different HTTP schemes an API path can have
    ApiPathMethod:
      type: string
      enum:
      - GET
      - POST
      - PUT
      - PATCH
      - DELETE
      - TRACE
      - HEAD
      - OPTIONS
      title: ApiPathMethod
      description: The different methods an API path can have
    ApiPathResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The path ID
        path:
          type: string
          maxLength: 1024
          title: Path
          description: The API path, locations that are saved for resource IDs will be put in curly brackets
          example: /api/v1/paths/{path_id}
          examples:
          - /api/v1/paths/{path_id}
        method:
          $ref: '#/components/schemas/ApiPathMethod'
          description: The API RESTful method
        api_version:
          type: string
          maxLength: 32
          title: Api Version
          description: The API version
          example: v1
          examples:
          - v1
        http_scheme:
          $ref: '#/components/schemas/ApiPathHttpScheme'
          description: The HTTP version of the API path
        first_detected:
          type: string
          format: date-time
          title: First Detected
          description: The date and time in ISO 8601 format the API path was first detected.
        last_detected:
          type: string
          format: date-time
          title: Last Detected
          description: The date and time in ISO 8601 format the API path was last detected.
        tags:
          items:
            type: string
            maxLength: 50
            pattern: ^[a-zA-Z]+[ a-zA-Z0-9]*$
            description: A user defined tag. Tags must start with a letter and can contain only letters, numbers and spaces.
          type: array
          maxItems: 5
          title: Tags
          description: An array of tags associated with the API path
          example: &id122
          - sensitivedataurl
          - highriskurl
          examples:
          - *id122
        api_groups:
          items:
            type: string
          type: array
          title: Api Groups
          description: An array of api groups associated with the API path
          example: &id123
          - accounts
          - internal
          examples:
          - *id123
        status:
          $ref: '#/components/schemas/ApiPathStatus'
          description: The status of the discovered API path
        source:
          $ref: '#/components/schemas/ApiPathSource'
          description: The source of the discovered API
        request_count:
          type: integer
          title: Request Count
          description: The number of requests for this path in the last 24 hours
      type: object
      required:
      - id
      - path
      - method
      - api_version
      - http_scheme
      - first_detected
      - last_detected
      - tags
      - api_groups
      - status
      - source
      - request_count
      title: ApiPathResponse
      description: Response model for the API path
    ApiPathSource:
      type: string
      enum:
      - API_DESCRIPTION_FILE
      - TRAFFIC_SCAN
      - USER_DEFINED
      title: ApiPathSource
      description: The different sources an API path can have
    ApiPathStatus:
      type: string
      enum:
      - CONFIRMED_API
      - POTENTIAL_API
      - NOT_API
      - DELISTED_API
      title: ApiPathStatus
      description: The different statuses an API path can have
    ApiScanResult:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The scan ID
        start_time:
          type: string
          format: date-time
          title: Start Time
          description: The date and time the scan started
        end_time:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: End Time
          description: The date and time the scan ended
        status:
          $ref: '#/components/schemas/TaskResultStatus'
          description: The status of the scan
        type:
          $ref: '#/components/schemas/ApiScanType'
          description: The type of scan
        message:
          type: string
          title: Message
          description: The message associated with the scan
      type: object
      required:
      - id
      - start_time
      - end_time
      - status
      - type
      - message
      title: ApiScanResult
      description: The result of a scan
    ApiScanType:
      type: string
      enum:
      - TRAFFIC_SCAN
      - API_DESCRIPTION_FILE_SCAN
      title: ApiScanType
      description: The different types of scans that can be performed
    ApiSettings:
      properties:
        is_api:
          type: boolean
          title: Is Api
          description: Indicates if the domain is an API domain. All requests to an API domain are treated as API requests. If this is set to true then the `api_urls` field is ignored.
          default: false
        api_urls:
          items:
            type: string
          type: array
          title: Api Urls
          description: The API base paths for a domain. If your domain has a common base path for all API endpoints, it can be set here. When set or updated, each entry must contain at least one letter or digit; a value that would match the whole domain (such as "/") is rejected - to treat the entire domain as an API domain, use the `is_api` field instead.
          default: []
          example: &id124
          - api/v1/.*
          - v2/.*
          examples:
          - *id124
      type: object
      title: ApiSettings
      description: API settings of a domain
    ApiSpecFile:
      properties:
        file_name:
          type: string
          title: File Name
          description: The name of the file
        file_data:
          type: string
          title: File Data
          description: Base64 representation of the description file. Supported formats are YAML and JSON, and it must adhere to OpenAPI versions 2, 3, or 3.1.
      type: object
      required:
      - file_name
      - file_data
      title: ApiSpecFile
      description: Request model for uploading an API spec file
    AppliedPolicyOverride:
      properties:
        id:
          type: integer
          title: Id
          description: ID of the policy override applied to this request.
        t:
          type: string
          enum:
          - waf_rule
          - static_rule_template
          title: T
          description: 'Type of target affected by the override: ''waf_rule'' for a detector or ''static_rule_template'' for a rule.'
        matched:
          additionalProperties: true
          type: object
          title: Matched
          description: 'Match evidence keyed by target reference: a detector ID such as ''ID861'', or a rule ID such as ''94''. A detector entry holds ''field'' and ''pattern_found''. A rule entry holds the rule''s metadata, such as ''action'' and ''rule_name'', and for a rule based on a detector result also that match''s ''field'' and ''pattern_found''. ''pattern_found'' is empty when the matched content is hidden. For legacy records, evidence is retained only for the first matched target; subsequent matched targets have empty objects.'
          example: &id125
            ID861:
              field: query_params
              pattern_found: SELECT * FROM MASTER
            ID862: {}
          examples:
          - *id125
          - '94':
              action: block
              field: path
              pattern_found: .env
              rule_name: Local file inclusion (LFI)
              scope: SRE
              template: rem
      type: object
      required:
      - id
      - t
      - matched
      title: AppliedPolicyOverride
      description: An override that applied to a request, with its match metadata.
    AsnCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        asns:
          items:
            type: integer
            maximum: 4294967295
            exclusiveMinimum: 0
            description: An Autonomous System Number to match against
          type: array
          maxItems: 100
          minItems: 1
          title: Asns
          description: A list of Autonomous System Numbers (ASNs) to match against
          example: 15169
          examples:
          - 15169
          - 13335
      type: object
      required:
      - asns
      title: AsnCondition
      description: Match the ASN (Autonomous System Number) the request originated from, as determined by a WHOIS lookup of the requesting IP
    BaseRuleSet:
      properties:
        id:
          type: integer
          title: Id
          description: Identifier of the rule set.
        name:
          type: string
          title: Name
          description: Name of the rule set.
        description:
          type: string
          title: Description
          description: Detailed description of the rule set.
        is_active:
          type: boolean
          title: Is Active
          description: Indicates if the rule set is currently active.
        tags:
          items:
            $ref: '#/components/schemas/app__models__policies__Tag'
          type: array
          title: Tags
          description: Collection of tags associated with the rule set.
        resource_slug:
          anyOf:
          - type: string
          - type: 'null'
          title: Resource Slug
          description: The resource slug associated with the rule set.
      type: object
      required:
      - id
      - name
      - description
      - is_active
      - tags
      title: BaseRuleSet
      description: Represents a custom rule set.
    BillingReportItem:
      properties:
        date:
          type: string
          title: Date
          description: The date of the accrued billable consumption item
        amount:
          type: integer
          title: Amount
          description: The amount of the billable resource accrued on the date
      type: object
      required:
      - date
      - amount
      title: BillingReportItem
    BlockCsrfPageData:
      properties:
        logo:
          type: string
          title: A base64 encoded image of the logo to present
          description: Supported image types are JPEG, PNG and JPG, size is limited to width 450px, height 130px. This should be a base 64 encoding of the full HTML img tag compatible image, with the header included.
        header:
          type: string
          maxLength: 62
          minLength: 3
          title: Header
          description: The text to display in the header of the custom page
        title:
          type: string
          maxLength: 50
          minLength: 3
          title: Title
          description: The text to display in the title of the custom page
        text:
          type: string
          maxLength: 400
          minLength: 20
          title: Text
          description: The text to display in the body of the custom page
        enabled:
          type: boolean
          title: Enabled
          description: Indicates whether the custom custom page is active or inactive
      type: object
      required:
      - enabled
      title: BlockCsrfPageData
    BlockPageData:
      properties:
        logo:
          type: string
          title: A base64 encoded image of the logo to present
          description: Supported image types are JPEG, PNG and JPG, size is limited to width 450px, height 130px. This should be a base 64 encoding of the full HTML img tag compatible image, with the header included.
        header:
          type: string
          maxLength: 62
          minLength: 3
          title: Header
          description: The text to display in the header of the custom page
        title:
          type: string
          maxLength: 50
          minLength: 3
          title: Title
          description: The text to display in the title of the custom page
        text:
          type: string
          maxLength: 400
          minLength: 20
          title: Text
          description: The text to display in the body of the custom page
        enabled:
          type: boolean
          title: Enabled
          description: Indicates whether the custom custom page is active or inactive
      type: object
      required:
      - enabled
      title: BlockPageData
    Blocked:
      properties:
        action:
          items:
            items:
              anyOf:
              - type: string
              - type: integer
            type: array
          type: array
          title: Action
          description: A collection of event counts per action. The first item is the action's abbreviation/full action name, and the second item is the number of events
        country:
          items:
            items:
              anyOf:
              - type: string
              - type: integer
            type: array
          type: array
          title: Country
          description: A collection of event counts per country of origin. The first item is the country's ISO 3166-1 alpha-2, and the second item is the number of events
        org:
          items:
            items:
              anyOf:
              - type: string
              - type: integer
            type: array
          type: array
          title: Org
          description: A collection of event counts per organization that owns the event's client IP. The first item is the organization's name, and the second item is the number of events
        rule_name:
          items:
            items:
              anyOf:
              - type: string
              - type: integer
            type: array
          type: array
          title: Rule Name
          description: A collection of event counts per rule that triggered the event. The first item is the rule's name, and the second item is the number of events
      type: object
      required:
      - action
      - country
      - org
      - rule_name
      title: Blocked
      description: A collection of total numbers of events with blocked results per criteria
    BreakdownBillingReport:
      properties:
        clients:
          additionalProperties:
            items:
              $ref: '#/components/schemas/BillingReportItem'
            type: array
          type: object
          title: Clients
      type: object
      required:
      - clients
      title: BreakdownBillingReport
    CaptchaPageData:
      properties:
        logo:
          type: string
          title: A base64 encoded image of the logo to present
          description: Supported image types are JPEG, PNG and JPG, size is limited to width 450px, height 130px. This should be a base 64 encoding of the full HTML img tag compatible image, with the header included.
        header:
          type: string
          maxLength: 62
          minLength: 3
          title: Header
          description: The text to display in the header of the custom page
        title:
          type: string
          maxLength: 50
          minLength: 3
          title: Title
          description: The text to display in the title of the custom page
        text:
          type: string
          maxLength: 400
          minLength: 20
          title: Text
          description: The text to display in the body of the custom page
        error:
          type: string
          maxLength: 400
          minLength: 10
          title: Error
          description: Error message
        enabled:
          type: boolean
          title: Enabled
          description: Indicates whether the custom custom page is active or inactive
      type: object
      required:
      - enabled
      title: CaptchaPageData
    ClearLocalTagsResponse:
      properties:
        num_cleared:
          type: integer
          title: Num Cleared
          description: The number of items affected by the action
          default: 0
      type: object
      title: ClearLocalTagsResponse
    ClientInfo:
      properties:
        id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Id
          description: The client ID
        service:
          $ref: '#/components/schemas/Service'
          description: Information about the WAAP service status
        features:
          items:
            type: string
          type: array
          title: Features
          description: List of enabled features
        quotas:
          additionalProperties:
            $ref: '#/components/schemas/QuotaItem'
          type: object
          title: Quotas
          description: Quotas for the client
          example: &id126
            number-of-domains:
              allowed: 5
              current: 1
          examples:
          - *id126
      type: object
      required:
      - id
      - service
      - features
      - quotas
      title: ClientInfo
      description: Represents the WAAP service information for a client
    CommonTag:
      properties:
        tag:
          type: string
          title: Tag
          description: Tag name
          example: injectionattack
          examples:
          - injectionattack
        display_name:
          type: string
          title: Display Name
          description: The tag's display name
          example: Injection Attack
          examples:
          - Injection Attack
        description:
          type: string
          title: Description
          description: Tag description information
          example: Multiple injection attempts were detected.
          examples:
          - Multiple injection attempts were detected.
      type: object
      required:
      - tag
      - display_name
      - description
      title: CommonTag
      description: Common tag details
    CompactTrafficMetrics:
      properties:
        timestamp:
          type: integer
          title: Timestamp
          description: UNIX timestamp indicating when the traffic data was recorded
        passed:
          type: integer
          title: Passed
          description: Traffic (number of requests) that was passed to the origin and didn't trigger any rules
          default: 0
        blocked:
          type: integer
          title: Blocked
          description: Traffic blocked by a security policy, custom rule, or DDoS protection
          default: 0
        monitored:
          type: integer
          title: Monitored
          description: Traffic that was identified as malicious by security policies (for monitored domains)
          default: 0
        allowed:
          type: integer
          title: Allowed
          description: Traffic passed due to a permissive security rule
          default: 0
      type: object
      required:
      - timestamp
      title: CompactTrafficMetrics
      description: Represents the compact traffic metrics for a domain at a given time window
    ComputedEventResult:
      type: string
      enum:
      - passed
      - blocked
      - monitored
      - allowed
    ContentTypeCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        content_type:
          items:
            type: string
            maxLength: 50
            minLength: 1
            description: Individual MIME type to match
            example: application/xml
            examples:
            - application/xml
          type: array
          maxItems: 10
          minItems: 1
          title: Content Type
          description: The list of content types to match against
      type: object
      required:
      - content_type
      title: ContentTypeCondition
      description: Match the requested Content-Type
    CookieDisabledPageData:
      properties:
        header:
          type: string
          maxLength: 62
          minLength: 3
          title: Header
          description: The text to display in the header of the custom page
        text:
          type: string
          maxLength: 400
          minLength: 20
          title: Text
          description: The text to display in the body of the custom page
        enabled:
          type: boolean
          title: Enabled
          description: Indicates whether the custom custom page is active or inactive
      type: object
      required:
      - enabled
      title: CookieDisabledPageData
    Count:
      properties:
        action:
          items:
            items:
              anyOf:
              - type: string
              - type: integer
            type: array
          type: array
          title: Action
          description: A collection of event counts per action. The first item is the action's abbreviation/full action name, and the second item is the number of events
        country:
          items:
            items:
              anyOf:
              - type: string
              - type: integer
            type: array
          type: array
          title: Country
          description: A collection of event counts per country of origin. The first item is the country's ISO 3166-1 alpha-2, and the second item is the number of events
        org:
          items:
            items:
              anyOf:
              - type: string
              - type: integer
            type: array
          type: array
          title: Org
          description: A collection of event counts per organization that owns the event's client IP. The first item is the organization's name, and the second item is the number of events
        rule_name:
          items:
            items:
              anyOf:
              - type: string
              - type: integer
            type: array
          type: array
          title: Rule Name
          description: A collection of event counts per rule that triggered the event. The first item is the rule's name, and the second item is the number of events
      type: object
      required:
      - action
      - country
      - org
      - rule_name
      title: Count
      description: A collection of total numbers of events per criteria
    CountryCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        country_code:
          items:
            type: string
            pattern: ^\w{2}$
          type: array
          maxItems: 100
          minItems: 1
          title: Country Code
          description: A list of ISO 3166-1 alpha-2 formatted strings representing the countries to match against
          example: CN
          examples:
          - CN
          - TW
      type: object
      required:
      - country_code
      title: CountryCondition
      description: Match the country that the request originated from
    CreateApiPath:
      properties:
        path:
          type: string
          maxLength: 1024
          title: Path
          description: The API path, locations that are saved for resource IDs will be put in curly brackets
          example: /api/v1/paths/{path_id}
          examples:
          - /api/v1/paths/{path_id}
        method:
          $ref: '#/components/schemas/ApiPathMethod'
        http_scheme:
          $ref: '#/components/schemas/ApiPathHttpScheme'
        api_version:
          type: string
          maxLength: 32
          title: Api Version
          example: v1
          examples:
          - v1
        tags:
          items:
            type: string
            maxLength: 50
            pattern: ^[a-zA-Z]+[ a-zA-Z0-9]*$
            description: A user defined tag. Tags must start with a letter and can contain only letters, numbers and spaces.
          type: array
          maxItems: 5
          title: Tags
          example: &id127
          - sensitivedataurl
          - highriskurl
          examples:
          - *id127
        api_groups:
          items:
            type: string
          type: array
          title: Api Groups
          example: &id128
          - accounts
          - internal
          examples:
          - *id128
      type: object
      required:
      - path
      - method
      - http_scheme
      title: CreateApiPath
      description: Request model for creating an API path
    CreateInsightSilencePayload:
      properties:
        insight_type:
          type: string
          maxLength: 64
          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
          title: Insight Type
          description: The slug of the insight type
        labels:
          additionalProperties:
            type: string
          type: object
          title: Labels
          description: A hash table of label names and values that apply to the insight silence
        comment:
          type: string
          maxLength: 180
          title: Comment
          description: A comment explaining the reason for the silence
        author:
          type: string
          maxLength: 180
          title: Author
          description: The author of the silence
        expire_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Expire At
          description: The date and time the silence expires in ISO 8601 format
      type: object
      required:
      - insight_type
      - labels
      - comment
      - author
      title: CreateInsightSilencePayload
    CustomPagePreviewResponse:
      properties:
        html:
          type: string
          title: Html
          description: HTML content of the custom page
      type: object
      required:
      - html
      title: CustomPagePreviewResponse
    CustomPageSetCreate:
      properties:
        domains:
          anyOf:
          - items:
              type: integer
              exclusiveMinimum: 0
              description: The domain ID
            type: array
          - type: 'null'
          title: Domains
          description: List of domain IDs that are associated with this page set
        block:
          anyOf:
          - $ref: '#/components/schemas/BlockPageData'
          - type: 'null'
        block_csrf:
          anyOf:
          - $ref: '#/components/schemas/BlockCsrfPageData'
          - type: 'null'
        captcha:
          anyOf:
          - $ref: '#/components/schemas/CaptchaPageData'
          - type: 'null'
        cookie_disabled:
          anyOf:
          - $ref: '#/components/schemas/CookieDisabledPageData'
          - type: 'null'
        handshake:
          anyOf:
          - $ref: '#/components/schemas/HandshakePageData'
          - type: 'null'
        javascript_disabled:
          anyOf:
          - $ref: '#/components/schemas/JavascriptDisabledPageData'
          - type: 'null'
        name:
          type: string
          maxLength: 50
          minLength: 1
          title: Name
          description: Name of the custom page set
      additionalProperties: false
      type: object
      required:
      - name
      title: CustomPageSetCreate
      description: Create a custom page set
    CustomPageSetResponse:
      properties:
        domains:
          anyOf:
          - items:
              type: integer
              exclusiveMinimum: 0
              description: The domain ID
            type: array
          - type: 'null'
          title: Domains
          description: List of domain IDs that are associated with this page set
        block:
          anyOf:
          - $ref: '#/components/schemas/BlockPageData'
          - type: 'null'
        block_csrf:
          anyOf:
          - $ref: '#/components/schemas/BlockCsrfPageData'
          - type: 'null'
        captcha:
          anyOf:
          - $ref: '#/components/schemas/CaptchaPageData'
          - type: 'null'
        cookie_disabled:
          anyOf:
          - $ref: '#/components/schemas/CookieDisabledPageData'
          - type: 'null'
        handshake:
          anyOf:
          - $ref: '#/components/schemas/HandshakePageData'
          - type: 'null'
        javascript_disabled:
          anyOf:
          - $ref: '#/components/schemas/JavascriptDisabledPageData'
          - type: 'null'
        name:
          type: string
          maxLength: 50
          minLength: 1
          title: Name
          description: Name of the custom page set
        id:
          type: integer
          title: Id
          description: The ID of the custom page set
      additionalProperties: false
      type: object
      required:
      - name
      - id
      title: CustomPageSetResponse
    CustomPageSetUpdate:
      properties:
        domains:
          anyOf:
          - items:
              type: integer
              exclusiveMinimum: 0
              description: The domain ID
            type: array
          - type: 'null'
          title: Domains
          description: List of domain IDs that are associated with this page set
        block:
          anyOf:
          - $ref: '#/components/schemas/BlockPageData'
          - type: 'null'
        block_csrf:
          anyOf:
          - $ref: '#/components/schemas/BlockCsrfPageData'
          - type: 'null'
        captcha:
          anyOf:
          - $ref: '#/components/schemas/CaptchaPageData'
          - type: 'null'
        cookie_disabled:
          anyOf:
          - $ref: '#/components/schemas/CookieDisabledPageData'
          - type: 'null'
        handshake:
          anyOf:
          - $ref: '#/components/schemas/HandshakePageData'
          - type: 'null'
        javascript_disabled:
          anyOf:
          - $ref: '#/components/schemas/JavascriptDisabledPageData'
          - type: 'null'
        name:
          anyOf:
          - type: string
            maxLength: 50
            minLength: 1
          - type: 'null'
          title: Name
          description: Name of the custom page set
      additionalProperties: false
      type: object
      title: CustomPageSetUpdate
      description: Update a custom page set
    CustomRule:
      properties:
        name:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^[A-Za-z0-9\s.:'";<>?&|\\_-]+$
          title: Name
          description: The name assigned to the rule
          example: Block foobar bot
          examples:
          - Block foobar bot
        enabled:
          type: boolean
          title: Enabled
          description: Whether or not the rule is enabled
        description:
          type: string
          maxLength: 100
          title: Description
          description: A human-readable description.
          default: ''
        action:
          $ref: '#/components/schemas/CustomerRuleAction'
          description: The action that the rule takes when triggered. Only one action can be set per rule.
        conditions:
          items:
            $ref: '#/components/schemas/CustomRuleCondition'
          type: array
          maxItems: 5
          minItems: 1
          title: Conditions
          description: The conditions required for the WAAP engine to trigger the rule. Rules may have between 1 and 5 conditions. All conditions must pass for the rule to trigger
      type: object
      required:
      - name
      - enabled
      - action
      - conditions
      title: CustomRule
      description: Custom rule data in the rule creation request context
    CustomRuleCondition:
      properties:
        ip:
          $ref: '#/components/schemas/IpCondition'
        ip_range:
          $ref: '#/components/schemas/IpRangeCondition'
        url:
          $ref: '#/components/schemas/UrlCondition'
        user_agent:
          $ref: '#/components/schemas/UserAgentCondition'
        header:
          $ref: '#/components/schemas/HeaderCondition'
        header_exists:
          $ref: '#/components/schemas/HeaderExistsCondition'
        http_method:
          $ref: '#/components/schemas/HttpMethodCondition'
        file_extension:
          $ref: '#/components/schemas/FileExtensionCondition'
        content_type:
          $ref: '#/components/schemas/ContentTypeCondition'
        country:
          $ref: '#/components/schemas/CountryCondition'
        organization:
          $ref: '#/components/schemas/OrganizationCondition'
        asn:
          $ref: '#/components/schemas/AsnCondition'
        request_rate:
          $ref: '#/components/schemas/RequestRateCondition'
        owner_types:
          $ref: '#/components/schemas/OwnerTypesCondition'
        tags:
          $ref: '#/components/schemas/TagsCondition'
        session_request_count:
          $ref: '#/components/schemas/SessionRequestCountCondition'
        user_defined_tags:
          $ref: '#/components/schemas/UserDefinedTagsCondition'
        ja3:
          $ref: '#/components/schemas/Ja3Condition-Input'
        ja4:
          $ref: '#/components/schemas/Ja4Condition-Input'
      additionalProperties: false
      type: object
      title: CustomRuleCondition
      description: |-
        The criteria of an incoming web request and the models of the various values those criteria can take.

        Used for creating and updating custom rules. Does not include the ResponseHeader/
        ResponseHeaderExists condition types, which are only readable on existing rules
        (see CustomRuleConditionResponse).
    CustomRuleConditionResponse:
      properties:
        ip:
          $ref: '#/components/schemas/IpCondition'
        ip_range:
          $ref: '#/components/schemas/IpRangeCondition'
        url:
          $ref: '#/components/schemas/UrlCondition'
        user_agent:
          $ref: '#/components/schemas/UserAgentCondition'
        header:
          $ref: '#/components/schemas/HeaderCondition'
        header_exists:
          $ref: '#/components/schemas/HeaderExistsCondition'
        http_method:
          $ref: '#/components/schemas/HttpMethodCondition'
        file_extension:
          $ref: '#/components/schemas/FileExtensionCondition'
        content_type:
          $ref: '#/components/schemas/ContentTypeCondition'
        country:
          $ref: '#/components/schemas/CountryCondition'
        organization:
          $ref: '#/components/schemas/OrganizationCondition'
        asn:
          $ref: '#/components/schemas/AsnCondition'
        request_rate:
          $ref: '#/components/schemas/RequestRateCondition'
        owner_types:
          $ref: '#/components/schemas/OwnerTypesCondition'
        tags:
          $ref: '#/components/schemas/TagsCondition'
        session_request_count:
          $ref: '#/components/schemas/SessionRequestCountCondition'
        user_defined_tags:
          $ref: '#/components/schemas/UserDefinedTagsCondition'
        ja3:
          $ref: '#/components/schemas/Ja3Condition-Output'
        ja4:
          $ref: '#/components/schemas/Ja4Condition-Output'
        response_header:
          $ref: '#/components/schemas/ResponseHeaderCondition'
        response_header_exists:
          $ref: '#/components/schemas/ResponseHeaderExistsCondition'
      additionalProperties: false
      type: object
      title: CustomRuleConditionResponse
      description: |-
        The full set of custom rule condition types, including ResponseHeader/ResponseHeaderExists
        conditions that may exist on rules already stored in Lime but cannot be created or updated
        through the API.
    CustomRuleResponse:
      properties:
        id:
          type: integer
          title: Id
          description: The unique identifier for the rule
        name:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^[A-Za-z0-9\s.:'";<>?&|\\_-]+$
          title: Name
          description: The name assigned to the rule
          example: Block foobar bot
          examples:
          - Block foobar bot
        enabled:
          type: boolean
          title: Enabled
          description: Whether or not the rule is enabled
        description:
          type: string
          maxLength: 100
          title: Description
          description: A description assigned to the rule.
        action:
          $ref: '#/components/schemas/CustomerRuleAction'
          description: The action that the rule takes when triggered. Only one action can be set per rule.
        conditions:
          items:
            $ref: '#/components/schemas/CustomRuleConditionResponse'
          type: array
          maxItems: 5
          minItems: 1
          title: Conditions
          description: The conditions required for the WAAP engine to trigger the rule. Rules may have between 1 and 5 conditions. All conditions must pass for the rule to trigger
      type: object
      required:
      - id
      - name
      - enabled
      - description
      - action
      - conditions
      title: CustomRuleResponse
      description: Full custom rule representation
    CustomerRuleAction:
      properties:
        allow:
          $ref: '#/components/schemas/RuleAllowAction'
        block:
          $ref: '#/components/schemas/RuleBlockAction'
        captcha:
          $ref: '#/components/schemas/RuleCaptchaAction'
        handshake:
          $ref: '#/components/schemas/RuleHandshakeAction'
        monitor:
          $ref: '#/components/schemas/RuleMonitorAction'
        tag:
          $ref: '#/components/schemas/RuleTagAction'
      additionalProperties: false
      type: object
      title: CustomerRuleAction
      description: The action that a WAAP rule takes when triggered.
    CustomerRuleState:
      type: string
      enum:
      - enable
      - disable
      title: CustomerRuleState
    CustomerRuleToggleResponse:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: Rule enabled status after operation
      type: object
      required:
      - enabled
      title: CustomerRuleToggleResponse
    DdosAttack:
      properties:
        start_time:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Start Time
          description: Start time of DDoS attack
        end_time:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: End Time
          description: End time of DDoS attack
        requests:
          anyOf:
          - type: integer
          - type: 'null'
          title: Requests
          description: Total DDoS-blocked requests attributed to the attack over its full duration. Computed over the attack's own time window, so it stays consistent regardless of the selected reporting range. Null when the count could not be computed.
      type: object
      title: DdosAttack
    DdosInfo:
      properties:
        type:
          type: string
          enum:
          - URL
          - IP
          - User-Agent
          title: Type
        identity:
          type: string
          title: Identity
          description: The value for the grouped by type
        count:
          type: integer
          title: Count
          description: The number of requests made
      type: object
      required:
      - type
      - identity
      - count
      title: DdosInfo
    DetailedDomainResponse:
      properties:
        id:
          type: integer
          exclusiveMinimum: 0
          title: Id
          description: The domain ID
        name:
          type: string
          maxLength: 255
          title: Name
          description: The domain name
        custom_page_set:
          anyOf:
          - type: integer
            description: The ID of the custom page set
          - type: 'null'
          title: Custom Page Set
        status:
          $ref: '#/components/schemas/DomainStatus'
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time the domain was created in ISO 8601 format
        aliases:
          items:
            type: string
          type: array
          title: Aliases
          description: CNAME aliases pointing at this domain's CDN resource
        quotas:
          anyOf:
          - additionalProperties:
              $ref: '#/components/schemas/QuotaItem'
            type: object
          - type: 'null'
          title: Quotas
          description: Domain level quotas
          examples:
          - firewall-rules:
              allowed: 5
              current: 2
          - custom-rules:
              allowed: 10
              current: 1
      type: object
      required:
      - id
      - name
      - custom_page_set
      - status
      - created_at
      title: DetailedDomainResponse
      description: |-
        Represents a WAAP domain, serving as a singular unit within the WAAP
        service.

        Each domain functions autonomously, possessing its own set of rules and
        configurations to manage web application firewall settings and
        behaviors.
    Detector:
      properties:
        rule_name:
          type: string
          title: Rule Name
          description: Name of the rule that matched
          example: Code Injection Attack Prevention
          examples:
          - Code Injection Attack Prevention
        rule_id:
          type: string
          title: Rule Id
          description: ID of the rule that matched
          example: ID842
          examples:
          - ID842
        subject_field:
          anyOf:
          - type: string
          - type: 'null'
          title: Subject Field
          description: The name of the variable whose value triggered the rule
          examples:
          - fileName
        subject_type:
          type: string
          title: Subject Type
          description: The entity to which the matched variable belongs (e.g. `request_headers`, uri, cookies)
          example: body
          examples:
          - body
          - cookies
          - path
          - query_params
          - request_headers
          - uri
        matched_content:
          type: string
          title: Matched Content
          description: The content that matched the rule
          example: etc%2Fhttpd
          examples:
          - etc%2Fhttpd
          - config.php
      type: object
      required:
      - rule_name
      - rule_id
      - subject_field
      - subject_type
      - matched_content
      title: Detector
      description: A rule that matched the request, with the matched subject and content.
    DomainDdosSettings:
      properties:
        global_threshold:
          type: integer
          maximum: 50000
          minimum: 250
          title: Global Threshold
          description: The global threshold is responsible for identifying DDoS attacks with a slow rise in traffic. If the threshold is met and the current number of requests is at least double that of the previous 10-second window, DDoS protection will activate. Default is 5000.
        burst_threshold:
          type: integer
          maximum: 10000
          minimum: 30
          title: Burst Threshold
          description: The burst threshold detects sudden rises in traffic. If it is met and the number of requests is at least five times the last 2-second interval, DDoS protection will activate. Default is 1000.
        sub_second_threshold:
          type: integer
          maximum: 1000
          minimum: 25
          title: Sub Second Threshold
          description: The sub-second threshold protects WAAP servers against attacks from traffic bursts. When this threshold is reached, the DDoS mode will activate on the affected WAAP server, not the whole WAAP cluster. Default is 50.
      type: object
      title: DomainDdosSettings
      description: DDoS settings for a domain.
    DomainPolicy:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the security rule
        name:
          type: string
          title: Name
          description: Name of the security rule
        description:
          type: string
          title: Description
          description: Detailed description of the security rule
        action:
          $ref: '#/components/schemas/PolicyAction'
          description: Specifies the action taken by the WAAP upon rule activation
        mode:
          type: boolean
          title: Mode
          description: Indicates if the security rule is active
        rule_set_id:
          type: integer
          title: Rule Set Id
          description: Identifier of the rule set to which the rule belongs
        group:
          type: string
          title: Group
          description: The rule set group name to which the rule belongs
      type: object
      required:
      - id
      - name
      - description
      - action
      - mode
      - rule_set_id
      - group
      title: DomainPolicy
      description: Represents a configurable WAAP security rule, also known as a policy.
    DomainPolicySettings:
      properties:
        mode:
          type: boolean
          title: Mode
          description: Indicates if the security rule is active
      type: object
      required:
      - mode
      title: DomainPolicySettings
      description: Configurable settings of a security rule (a.k.a. policy) on a domain.
    DomainReference:
      properties:
        domain_id:
          type: integer
          title: Domain Id
      type: object
      required:
      - domain_id
      title: DomainReference
    DomainSettings:
      properties:
        ddos:
          $ref: '#/components/schemas/DomainDdosSettings'
        api:
          $ref: '#/components/schemas/ApiSettings'
      type: object
      required:
      - ddos
      - api
      title: DomainSettings
      description: Domain settings, accessible for clients.
    DomainStats:
      properties:
        total_requests:
          type: integer
          title: Total Requests
          description: Total number of requests for the last 30 days
          default: 0
        attacks_detected:
          type: integer
          title: Attacks Detected
          description: Total number of detected attacks for the last 30 days
          default: 0
        attacks_blocked:
          type: integer
          title: Attacks Blocked
          description: Total number of blocked attacks for the last 30 days
          default: 0
      type: object
      title: DomainStats
      description: Traffic statistics for a domain.
    DomainStatus:
      type: string
      enum:
      - active
      - bypass
      - monitor
      - locked
      title: DomainStatus
      description: The different statuses a domain can have
    DomainUpdateStatus:
      type: string
      enum:
      - active
      - monitor
      title: DomainUpdateStatus
      description: Domain statuses that can be used when updating a domain
    EventAction:
      type: string
      enum:
      - allow
      - block
      - captcha
      - handshake
      title: EventAction
      description: An action applied to a request according to the security configuration.
    EventDecision:
      type: string
      enum:
      - blocked
      - monitored
      - allowed
      - passed
      title: EventDecision
      description: |-
        The decision made for processing a request through the WAAP.

        - BLOCKED: Traffic that was directly blocked by security policies, rules, CAPTCHA,
          challenge or L7 DDoS. Works for protected domains only.
        - MONITORED: Traffic that was identified as malicious by security policies.
          Currently works for monitored domains only. Later, monitored mode for rules will be added.
        - ALLOWED: Traffic that was allowed directly with some policies or rules.
        - PASSED: Traffic that was passed to the origin and didn't trigger any rules.
    EventStatistics:
      properties:
        count:
          $ref: '#/components/schemas/Count'
        blocked:
          $ref: '#/components/schemas/Blocked'
      type: object
      required:
      - count
      - blocked
      title: EventStatistics
      description: A collection of event metrics over a time span
    EventSummary:
      properties:
        policy_override:
          items:
            $ref: '#/components/schemas/AppliedPolicyOverride'
          type: array
          title: Policy Override
          description: Applied overrides with id, t, and matched metadata keyed by target ID. Does not replace the final decision.
        id:
          type: string
          title: Id
          description: Request's unique id
        path:
          type: string
          title: Path
          description: Request path
        client_ip:
          type: string
          title: Client Ip
          description: Client's IP address.
        method:
          type: string
          title: Method
          description: HTTP method
        rule_name:
          type: string
          title: Rule Name
          description: Name of the triggered rule
        country:
          type: string
          title: Country
          description: Country code
        action:
          type: string
          title: Action
          description: Action of the triggered rule
        rule_id:
          type: string
          title: Rule Id
          description: The ID of the triggered rule.
        domain:
          type: string
          title: Domain
          description: Domain name
        domain_id:
          type: integer
          title: Domain Id
          description: Domain ID
        request_time:
          type: integer
          title: Request Time
          description: The UNIX timestamp in ms of the date a set of traffic counters was recorded
        status_code:
          type: integer
          title: Status Code
          description: Status code for http request
        result:
          type: string
          enum:
          - passed
          - blocked
          - suppressed
          - ''
          title: Result
          description: The result of a request
        decision:
          anyOf:
          - $ref: '#/components/schemas/EventDecision'
          - type: string
            const: ''
          title: Decision
          description: The decision made for processing the request through the WAAP.
          examples:
          - blocked
        optional_action:
          anyOf:
          - $ref: '#/components/schemas/OptionalAction'
          - type: string
            const: ''
          title: Optional Action
          description: An optional action that may be applied in addition to the primary decision.
          examples:
          - captcha
        scheme:
          type: string
          title: Scheme
          description: The URI scheme of the request that generated an event
          default: ''
          example: https
          examples:
          - https
        policy_override_allowed:
          type: boolean
          title: Policy Override Allowed
          description: Whether a Policy Override can be created for this request.
          readOnly: true
      type: object
      required:
      - id
      - path
      - client_ip
      - method
      - rule_name
      - country
      - action
      - rule_id
      - domain
      - domain_id
      - request_time
      - status_code
      - result
      - decision
      - optional_action
      - policy_override_allowed
      title: EventSummary
      description: Event record summary used when displaying a list of events
    FileExtensionCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        file_extension:
          items:
            type: string
            maxLength: 10
            minLength: 1
            pattern: '[a-z0-9]+$'
            description: A file extension without the leading dot
            example: pdf
            examples:
            - pdf
            - png
          type: array
          maxItems: 20
          minItems: 1
          title: File Extension
          description: The list of file extensions to match against
      type: object
      required:
      - file_extension
      title: FileExtensionCondition
      description: Match the incoming file extension
    FilterTemplateCreate:
      properties:
        name:
          type: string
          title: Name
          description: Human-readable template name
        filter_config:
          additionalProperties: true
          type: object
          title: Filter Config
          description: Arbitrary JSON object storing the frontend filter state
          example: &id129
            domains:
            - admin.example.com
            event: Probing detected
          examples:
          - *id129
      additionalProperties: false
      type: object
      required:
      - name
      - filter_config
      title: FilterTemplateCreate
      description: Payload for creating a filter template.
    FilterTemplateResponse:
      properties:
        id:
          type: integer
          title: Id
          description: The ID of the filter template
        name:
          type: string
          title: Name
          description: Human-readable template name
        filter_config:
          additionalProperties: true
          type: object
          title: Filter Config
          description: Arbitrary JSON object storing the frontend filter state
      type: object
      required:
      - id
      - name
      - filter_config
      title: FilterTemplateResponse
      description: Response body for a single filter template.
    FilterTemplateUpdate:
      properties:
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
          description: Human-readable template name
        filter_config:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Filter Config
          description: Arbitrary JSON object storing the frontend filter state
      additionalProperties: false
      type: object
      title: FilterTemplateUpdate
      description: |-
        Payload for partially updating a filter template.

        Empty payloads and explicit nulls on mutable fields are rejected with 422.
    FilterValueSuggestion:
      properties:
        value:
          type: string
          title: Value
          description: Value to use in an analytics query for the required filter parameter.
        count:
          type: integer
          title: Count
          description: Number of times this value was observed in the requested range.
      type: object
      required:
      - value
      - count
      title: FilterValueSuggestion
      description: A supported analytics filter value with its observed occurrence count.
    FirewallRule:
      properties:
        name:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^[A-Za-z0-9\s.:'";<>?&|\\_-]+$
          title: Name
          description: The name assigned to the rule
          example: Block foobar bot
          examples:
          - Block foobar bot
        enabled:
          type: boolean
          title: Enabled
          description: Whether or not the rule is enabled
        description:
          type: string
          maxLength: 100
          title: Description
          description: A human-readable description.
          default: ''
        action:
          $ref: '#/components/schemas/FirewallRuleAction'
          description: The action that the rule takes when triggered
        conditions:
          items:
            $ref: '#/components/schemas/FirewallRuleCondition'
          type: array
          maxItems: 1
          minItems: 1
          title: Conditions
          description: The condition required for the WAAP engine to trigger the rule.
      type: object
      required:
      - name
      - enabled
      - action
      - conditions
      title: FirewallRule
      description: Firewall rule data in the rule creation request context
    FirewallRuleAction:
      properties:
        allow:
          anyOf:
          - $ref: '#/components/schemas/RuleAllowAction'
          - type: 'null'
        block:
          anyOf:
          - $ref: '#/components/schemas/RuleBlockAction'
          - type: 'null'
      additionalProperties: false
      type: object
      title: FirewallRuleAction
      description: The action that a firewall rule takes when triggered
    FirewallRuleActionType:
      type: string
      enum:
      - allow
      - block
      title: FirewallRuleActionType
    FirewallRuleCondition:
      properties:
        ip:
          $ref: '#/components/schemas/IpCondition'
        ip_range:
          $ref: '#/components/schemas/IpRangeCondition'
      additionalProperties: false
      type: object
      title: FirewallRuleCondition
      description: The criteria of an incoming web request and the models of the various values those criteria can take
    FirewallRuleResponse:
      properties:
        id:
          type: integer
          title: Id
          description: The unique identifier for the rule
        name:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^[A-Za-z0-9\s.:'";<>?&|\\_-]+$
          title: Name
          description: The name assigned to the rule
          example: Block foobar bot
          examples:
          - Block foobar bot
        enabled:
          type: boolean
          title: Enabled
          description: Whether or not the rule is enabled
        description:
          type: string
          maxLength: 100
          title: Description
          description: A description assigned to the rule.
        action:
          $ref: '#/components/schemas/FirewallRuleAction'
          description: The action that the rule takes when triggered
        conditions:
          items:
            $ref: '#/components/schemas/FirewallRuleCondition'
          type: array
          maxItems: 1
          minItems: 1
          title: Conditions
          description: The condition required for the WAAP engine to trigger the rule.
      type: object
      required:
      - id
      - name
      - enabled
      - description
      - action
      - conditions
      title: FirewallRuleResponse
      description: Full firewall rule representation
    GetEventsResponse:
      properties:
        results:
          items:
            $ref: '#/components/schemas/EventSummary'
          type: array
          title: Results
          description: Records summary information. To fetch detailed information by an event, use [Get request details](/api-reference/waap/analytics/get-request-details)
        next:
          anyOf:
          - type: string
          - type: 'null'
          title: Next
          description: |-
            Cursor value.
            When present, indicates _possible_ availability of more data satisfying the request criteria.
            To fetch the next page, repeat the request with the original parameter and the cursor value attached, for example:

            ```
                        GET /v2/analytics/events?start=2026-06-01T12:00:00Z&end=2026-06-02T00:00:00Z[...]&next=$next
                        ```

            The next page request _may_ return empty result set.
      type: object
      required:
      - results
      title: GetEventsResponse
      description: |-
        Page of records from security event log.

        The data from the security event log are read in a streaming fashion, using cursor access pattern.
    HTTPMethod:
      type: string
      enum:
      - CONNECT
      - DELETE
      - GET
      - HEAD
      - OPTIONS
      - PATCH
      - POST
      - PUT
      - TRACE
      title: HTTPMethod
      description: |-
        HTTP methods and descriptions

        Methods from the following RFCs are all observed:

         - RFC 7231: Hypertext Transfer Protocol (HTTP/1.1), obsoletes 2616
        - RFC 5789: PATCH Method for HTTP
    HandshakePageData:
      properties:
        logo:
          type: string
          title: A base64 encoded image of the logo to present
          description: Supported image types are JPEG, PNG and JPG, size is limited to width 450px, height 130px. This should be a base 64 encoding of the full HTML img tag compatible image, with the header included.
        header:
          type: string
          maxLength: 62
          minLength: 3
          title: Header
          description: The text to display in the header of the custom page
        title:
          type: string
          maxLength: 50
          minLength: 3
          title: Title
          description: The text to display in the title of the custom page
        enabled:
          type: boolean
          title: Enabled
          description: Indicates whether the custom custom page is active or inactive
      type: object
      required:
      - enabled
      title: HandshakePageData
    HeaderCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        header:
          type: string
          maxLength: 50
          minLength: 1
          pattern: ^[a-zA-Z0-9-]+$
          title: Header
          description: The request header name
          example: Origin
          examples:
          - Origin
        value:
          type: string
          maxLength: 100
          pattern: ^[a-zA-Z0-9-_ :;.\/\"'?!(){}\[\]@<>=\-\+\*#$&`|~^%]+$
          title: Value
          description: The request header value
        match_type:
          type: string
          enum:
          - Exact
          - Contains
          title: Match Type
          description: The type of matching condition for header and value.
          default: Contains
      type: object
      required:
      - header
      - value
      title: HeaderCondition
      description: Match an incoming request header
    HeaderExistsCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        header:
          type: string
          maxLength: 50
          minLength: 1
          pattern: ^[a-zA-Z0-9-]+$
          title: Header
          description: The request header name
          example: Origin
          examples:
          - Origin
      type: object
      required:
      - header
      title: HeaderExistsCondition
      description: Match when an incoming request header is present
    HttpMethodCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        http_method:
          $ref: '#/components/schemas/HTTPMethod'
          description: HTTP methods of a request
          examples:
          - CONNECT
      type: object
      required:
      - http_method
      title: HttpMethodCondition
      description: Match the incoming HTTP method
    HttpMethodType:
      type: string
      enum:
      - DELETE
      - GET
      - HEAD
      - OPTIONS
      - PATCH
      - POST
      - PUT
      - TRACE
      title: HttpMethodType
      description: An HTTP method of a request.
    IPReference:
      properties:
        country:
          type: string
          title: Country
        org:
          type: string
          title: Org
      type: object
      required:
      - country
      - org
      title: IPReference
    IPReputationDeleteRequest:
      properties:
        ip:
          type: string
          format: ipvanyaddress
          title: Ip
          description: The IP address to delete tags for
        domain_id:
          type: integer
          exclusiveMinimum: 0
          title: Domain Id
          description: The domain ID to delete tags for
      additionalProperties: false
      type: object
      required:
      - ip
      - domain_id
      title: IPReputationDeleteRequest
      description: Request model for deleting local IP tags.
    Insight:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: A generated unique identifier for the insight
        insight_type:
          type: string
          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
          title: Insight Type
          description: The slug of the insight type
        labels:
          additionalProperties:
            type: string
          type: object
          title: Labels
          description: A hash table of label names and values that apply to the insight
        first_seen:
          type: string
          format: date-time
          title: First Seen
          description: The date and time the insight was first seen in ISO 8601 format
        last_seen:
          type: string
          format: date-time
          title: Last Seen
          description: The date and time the insight was last seen in ISO 8601 format
        last_status_change:
          type: string
          format: date-time
          title: Last Status Change
          description: The date and time the insight was last seen in ISO 8601 format
        status:
          $ref: '#/components/schemas/InsightStatus'
          description: The status of the insight
        description:
          type: string
          maxLength: 450
          minLength: 3
          title: Description
          description: The description of the insight
          example: 'A request originated from a high-risk IP: 1.2.3.4, but it was allowed by rule: ''my custom rule'' the description of the insight'
          examples:
          - 'A request originated from a high-risk IP: 1.2.3.4, but it was allowed by rule: ''my custom rule'' the description of the insight'
        recommendation:
          type: string
          maxLength: 450
          minLength: 3
          title: Recommendation
          description: The recommended action to perform to resolve the insight
          example: disable or delete rule "my-custom-rule"
          examples:
          - disable or delete rule "my-custom-rule"
      type: object
      required:
      - id
      - insight_type
      - labels
      - first_seen
      - last_seen
      - last_status_change
      - status
      - description
      - recommendation
      title: Insight
    InsightSilence:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: A generated unique identifier for the silence
        insight_type:
          type: string
          title: Insight Type
          description: The slug of the insight type
        labels:
          additionalProperties:
            type: string
          type: object
          title: Labels
          description: A hash table of label names and values that apply to the insight silence
        comment:
          type: string
          title: Comment
          description: A comment explaining the reason for the silence
        author:
          type: string
          title: Author
          description: The author of the silence
        expire_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Expire At
          description: The date and time the silence expires in ISO 8601 format
      type: object
      required:
      - id
      - insight_type
      - labels
      - comment
      - author
      - expire_at
      title: InsightSilence
    InsightSilenceSortBy:
      type: string
      enum:
      - id
      - -id
      - insight_type
      - -insight_type
      - comment
      - -comment
      - author
      - -author
      - expire_at
      - -expire_at
      title: InsightSilenceSortBy
    InsightSortBy:
      type: string
      enum:
      - id
      - -id
      - insight_type
      - -insight_type
      - first_seen
      - -first_seen
      - last_seen
      - -last_seen
      - last_status_change
      - -last_status_change
      - status
      - -status
      title: InsightSortBy
    InsightStatus:
      type: string
      enum:
      - OPEN
      - ACKED
      - CLOSED
      title: InsightStatus
      description: The different statuses an insight can have
    InsightType:
      properties:
        name:
          type: string
          title: Name
          description: The name of the insight type
        description:
          type: string
          title: Description
          description: The description of the insight type
        slug:
          type: string
          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
          title: Slug
          description: The slug of the insight type
          example: high-risk-ip
          examples:
          - high-risk-ip
          - attack-on-disabled-policy
        labels:
          items:
            type: string
          type: array
          title: Labels
          description: The labels of the insight type
        insight_template:
          type: string
          title: Insight Template
          description: The insight template
        recommendation_template:
          type: string
          title: Recommendation Template
          description: The recommendation template
        insight_grouping_dimensions:
          items:
            type: string
          type: array
          title: Insight Grouping Dimensions
          description: The grouping dimensions of the insight type
        insight_frequency:
          type: integer
          title: Insight Frequency
          description: The frequency of the insight type
      type: object
      required:
      - name
      - description
      - slug
      - labels
      - insight_template
      - recommendation_template
      - insight_grouping_dimensions
      - insight_frequency
      title: InsightType
    IpCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        ip_address:
          type: string
          format: ipvanyaddress
          title: Ip Address
          description: A single IPv4 or IPv6 address
      type: object
      required:
      - ip_address
      title: IpCondition
      description: Match the incoming request against a single IP address
    IpCountryAttack:
      properties:
        country:
          type: string
          pattern: ^\w{2}$
          title: Country
          description: An ISO 3166-1 alpha-2 formatted string representing the country that was attacked
        count:
          type: integer
          title: Count
          description: The number of attacks from the specified IP address to the country
      type: object
      required:
      - country
      - count
      title: IpCountryAttack
    IpDdosInfo:
      properties:
        botnet_client:
          type: boolean
          title: Botnet Client
          description: Indicates if the IP is tagged as a botnet client
        time_series:
          items:
            $ref: '#/components/schemas/TimeSeriesItem'
          type: array
          title: Time Series
          description: The time series data for the DDoS attacks from the IP address
      type: object
      required:
      - botnet_client
      - time_series
      title: IpDdosInfo
    IpInfo:
      properties:
        whois:
          $ref: '#/components/schemas/WhoisInfo'
          description: The WHOIS information for the IP address
        risk_score:
          type: string
          enum:
          - NO_RISK
          - LOW
          - MEDIUM
          - HIGH
          - EXTREME
          - NOT_ENOUGH_DATA
          title: Risk Score
          description: The risk score of the IP address
        tags:
          items:
            type: string
          type: array
          title: Tags
          description: The tags associated with the IP address that affect the risk score
      type: object
      required:
      - whois
      - risk_score
      - tags
      title: IpInfo
    IpInfoCounts:
      properties:
        total_requests:
          type: integer
          title: Total Requests
          description: The total number of requests made by the IP address
        blocked_requests:
          type: integer
          title: Blocked Requests
          description: The number of requests from the IP address that were blocked
        unique_sessions:
          type: integer
          title: Unique Sessions
          description: The number of unique sessions from the IP address
      type: object
      required:
      - total_requests
      - blocked_requests
      - unique_sessions
      title: IpInfoCounts
    IpInfoCountsV2:
      properties:
        total_requests:
          type: integer
          title: Total Requests
          description: The total number of requests made by the IP address
        blocked_requests:
          type: integer
          title: Blocked Requests
          description: The number of requests from the IP address that were blocked
        unique_sessions:
          type: integer
          title: Unique Sessions
          description: The number of unique sessions from the IP address
        attack_types:
          type: integer
          title: Attack Types
          description: The number of distinct attack types (rules) that blocked requests from this IP
        domains:
          type: integer
          title: Domains
          description: The number of distinct domains accessed by this IP
        paths:
          type: integer
          title: Paths
          description: The number of distinct paths (URLs) accessed by this IP
        user_agents:
          type: integer
          title: User Agents
          description: The number of distinct user agents used by this IP
      type: object
      required:
      - total_requests
      - blocked_requests
      - unique_sessions
      - attack_types
      - domains
      - paths
      - user_agents
      title: IpInfoCountsV2
    IpRangeCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        lower_bound:
          type: string
          format: ipvanyaddress
          title: Lower Bound
          description: The lower bound IPv4 or IPv6 address to match against
        upper_bound:
          type: string
          format: ipvanyaddress
          title: Upper Bound
          description: The upper bound IPv4 or IPv6 address to match against
      type: object
      required:
      - lower_bound
      - upper_bound
      title: IpRangeCondition
      description: Match the incoming request against an IP range
    Ja3Condition-Input:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        ja3_fingerprints:
          items:
            type: string
            description: A JA3 TLS client fingerprint (32-character MD5 hash, mixed case allowed and normalized to lowercase)
            example: e7d705a3286e19ea42f587b344ee6865
            examples:
            - e7d705a3286e19ea42f587b344ee6865
          type: array
          maxItems: 10
          minItems: 1
          title: Ja3 Fingerprints
          description: A list of JA3 TLS client fingerprints to match against the request
      type: object
      required:
      - ja3_fingerprints
      title: Ja3Condition
      description: Match the JA3 TLS client fingerprint of the request
    Ja3Condition-Output:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        ja3_fingerprints:
          items:
            type: string
            pattern: ^[a-f0-9]{32}$
            description: A JA3 TLS client fingerprint (32-character MD5 hash, mixed case allowed and normalized to lowercase)
            example: e7d705a3286e19ea42f587b344ee6865
            examples:
            - e7d705a3286e19ea42f587b344ee6865
          type: array
          maxItems: 10
          minItems: 1
          title: Ja3 Fingerprints
          description: A list of JA3 TLS client fingerprints to match against the request
      type: object
      required:
      - ja3_fingerprints
      title: Ja3Condition
      description: Match the JA3 TLS client fingerprint of the request
    Ja4Condition-Input:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        ja4_fingerprints:
          items:
            type: string
            description: A JA4 TLS client fingerprint in the form __ (10-character prefix and two 12-character hexadecimal hashes, mixed case allowed and normalized to lowercase)
            example: t13d3113h2_e8f1e7e78f70_ce5650b735ce
            examples:
            - t13d3113h2_e8f1e7e78f70_ce5650b735ce
          type: array
          maxItems: 10
          minItems: 1
          title: Ja4 Fingerprints
          description: A list of JA4 TLS client fingerprints to match against the request
      type: object
      required:
      - ja4_fingerprints
      title: Ja4Condition
      description: Match the JA4 TLS client fingerprint of the request
    Ja4Condition-Output:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        ja4_fingerprints:
          items:
            type: string
            pattern: ^[tq][0-9]{2}[di][0-9]{2}[0-9]{2}[a-z0-9_]{2}_[a-f0-9]{12}_[a-f0-9]{12}$
            description: A JA4 TLS client fingerprint in the form __ (10-character prefix and two 12-character hexadecimal hashes, mixed case allowed and normalized to lowercase)
            example: t13d3113h2_e8f1e7e78f70_ce5650b735ce
            examples:
            - t13d3113h2_e8f1e7e78f70_ce5650b735ce
          type: array
          maxItems: 10
          minItems: 1
          title: Ja4 Fingerprints
          description: A list of JA4 TLS client fingerprints to match against the request
      type: object
      required:
      - ja4_fingerprints
      title: Ja4Condition
      description: Match the JA4 TLS client fingerprint of the request
    JavascriptDisabledPageData:
      properties:
        header:
          type: string
          maxLength: 62
          minLength: 3
          title: Header
          description: The text to display in the header of the custom page
        text:
          type: string
          maxLength: 400
          minLength: 20
          title: Text
          description: The text to display in the body of the custom page
        enabled:
          type: boolean
          title: Enabled
          description: Indicates whether the custom custom page is active or inactive
      type: object
      required:
      - enabled
      title: JavascriptDisabledPageData
    LocalIpTagsRecord:
      properties:
        date:
          type: integer
          title: Date
          description: The timestamp of the last request from the IP to the domain
        domain:
          $ref: '#/components/schemas/app__models__ip_reputation__DomainInfo'
        ip:
          type: string
          title: Ip
          description: The IP address
        local_tags:
          items:
            type: string
          type: array
          title: Local Tags
          description: The tags associated with the IP in the context of the domain
        global_tags:
          items:
            type: string
          type: array
          title: Global Tags
          description: The tags associated with the IP globally
      type: object
      required:
      - date
      - domain
      - ip
      - local_tags
      - global_tags
      title: LocalIpTagsRecord
    Network:
      properties:
        client_ip:
          type: string
          title: Client Ip
          description: Client IP
          example: 116.83.107.125
          examples:
          - 116.83.107.125
        country:
          type: string
          title: Country
          description: Country code
          example: IL
          examples:
          - IL
        organization:
          $ref: '#/components/schemas/app__models__requests__Organization'
        asn:
          type: string
          title: Asn
          description: Autonomous System Number, or an empty string when unknown
          default: ''
          example: '15169'
          examples:
          - '15169'
      type: object
      required:
      - client_ip
      - country
      - organization
      title: Network
      description: Network details
    OptionalAction:
      type: string
      enum:
      - captcha
      - challenge
      title: OptionalAction
      description: |-
        An optional action that may be applied in addition to the primary decision.

        - CAPTCHA: Traffic that triggered the CAPTCHA.
        - CHALLENGE: Traffic that triggered the Browser validation challenge.
    OrganizationCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        organization:
          type: string
          maxLength: 100
          title: Organization
          description: The organization to match against
          example: UptimeRobot s.r.o
          examples:
          - UptimeRobot s.r.o
      type: object
      required:
      - organization
      title: OrganizationCondition
      description: Match the organization the request originated from, as determined by a WHOIS lookup of the requesting IP
    OwaspTopThreatsPolicy:
      properties:
        id:
          type: integer
          title: Id
          description: The parent policy's ID
        name:
          type: string
          title: Name
          description: The parent policy's name
      type: object
      required:
      - id
      - name
      title: OwaspTopThreatsPolicy
    OwaspTopThreatsTarget:
      properties:
        id:
          type: integer
          title: Id
          description: The rule's ID; use this as a `target_id` when creating a policy override
        name:
          type: string
          title: Name
          description: The rule's display name
        action:
          type: string
          title: Action
          description: The action this rule takes when it triggers
        policy:
          anyOf:
          - $ref: '#/components/schemas/OwaspTopThreatsPolicy'
          - type: 'null'
          description: The parent policy this rule is grouped under, if any
      type: object
      required:
      - id
      - name
      - action
      title: OwaspTopThreatsTarget
      description: |-
        A default OWASP Top Threats target that can be selected as the target of a
        policy override, so this specific managed detection stops blocking matching
        traffic while the rest of OWASP Top Threats protection stays unchanged.
    OwnerTypesCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        owner_types:
          items:
            type: string
            enum:
            - COMMERCIAL
            - EDUCATIONAL
            - GOVERNMENT
            - HOSTING_SERVICES
            - ISP
            - MOBILE_NETWORK
            - NETWORK
            - RESERVED
          type: array
          minItems: 1
          title: Owner Types
          description: Match the type of organization that owns the IP address making an incoming request
          default:
          - COMMERCIAL
      type: object
      title: OwnerTypesCondition
      description: Match the type of organization that owns the IP address making an incoming request
    PageType:
      type: string
      enum:
      - block.html
      - block_csrf.html
      - captcha.html
      - cookieDisabled.html
      - handshake.html
      - javascriptDisabled.html
      title: PageType
      description: The type of the custom page
    PaginatedResponse_AccountFirewallRuleResponse_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/AccountFirewallRuleResponse'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[AccountFirewallRuleResponse]
    PaginatedResponse_AdvancedRuleResponse_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/AdvancedRuleResponse'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[AdvancedRuleResponse]
    PaginatedResponse_ApiPathResponse_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/ApiPathResponse'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[ApiPathResponse]
    PaginatedResponse_ApiScanResult_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/ApiScanResult'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[ApiScanResult]
    PaginatedResponse_BaseRuleSet_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/BaseRuleSet'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[BaseRuleSet]
    PaginatedResponse_BillingReportItem_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/BillingReportItem'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[BillingReportItem]
    PaginatedResponse_CustomPageSetResponse_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/CustomPageSetResponse'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[CustomPageSetResponse]
    PaginatedResponse_CustomRuleResponse_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/CustomRuleResponse'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[CustomRuleResponse]
    PaginatedResponse_DdosAttack_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/DdosAttack'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[DdosAttack]
    PaginatedResponse_DdosInfo_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/DdosInfo'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[DdosInfo]
    PaginatedResponse_DomainPolicy_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/DomainPolicy'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[DomainPolicy]
    PaginatedResponse_FilterTemplateResponse_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/FilterTemplateResponse'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[FilterTemplateResponse]
    PaginatedResponse_FilterValueSuggestion_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/FilterValueSuggestion'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[FilterValueSuggestion]
    PaginatedResponse_FirewallRuleResponse_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/FirewallRuleResponse'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[FirewallRuleResponse]
    PaginatedResponse_InsightSilence_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/InsightSilence'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[InsightSilence]
    PaginatedResponse_InsightType_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/InsightType'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[InsightType]
    PaginatedResponse_Insight_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/Insight'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[Insight]
    PaginatedResponse_LocalIpTagsRecord_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/LocalIpTagsRecord'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[LocalIpTagsRecord]
    PaginatedResponse_Organization_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/app__models__organizations__Organization'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[Organization]
    PaginatedResponse_OwaspTopThreatsTarget_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/OwaspTopThreatsTarget'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[OwaspTopThreatsTarget]
    PaginatedResponse_PolicyOverrideResponse_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/PolicyOverrideResponse'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[PolicyOverrideResponse]
    PaginatedResponse_RequestSummary_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/RequestSummary'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[RequestSummary]
    PaginatedResponse_SummaryDomainResponse_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/SummaryDomainResponse'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[SummaryDomainResponse]
    PaginatedResponse_SummaryDomainWithStatsResponse_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/SummaryDomainWithStatsResponse'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[SummaryDomainWithStatsResponse]
    PaginatedResponse_Tag_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          items:
            $ref: '#/components/schemas/app__models__tags__Tag'
          type: array
          title: Results
          description: List of items returned in the response following given criteria
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: PaginatedResponse[Tag]
    PatternMatchedTag:
      properties:
        tag:
          type: string
          title: Tag
          description: Tag name
          example: sql
          examples:
          - sql
        display_name:
          type: string
          title: Display Name
          description: The tag's display name
          example: SQL Injection
          examples:
          - SQL Injection
        description:
          type: string
          title: Description
          description: Tag description information
          example: This client attempted insertion or “injection” of a SQL query via the input data from the client to the application. A successful SQL injection exploit can read sensitive data from the database, modify database data, etc.
          examples:
          - This client attempted insertion or “injection” of a SQL query via the input data from the client to the application. A successful SQL injection exploit can read sensitive data from the database, modify database data, etc.
        field:
          type: string
          title: Field
          description: 'The entity to which the variable that triggered the tag belong to. For example: `request_headers`, uri, cookies etc.'
          example: uri
          examples:
          - uri
        field_name:
          type: string
          title: Field Name
          description: The name of the variable which holds the value that triggered the tag
          example: q
          examples:
          - q
        pattern_name:
          type: string
          title: Pattern Name
          description: The name of the detected regexp pattern
          example: SQL Injection Prevention
          examples:
          - SQL Injection Prevention
        pattern_value:
          type: string
          title: Pattern Value
          description: The pattern which triggered the tag
          example: select user from master..
          examples:
          - select user from master..
        execution_phase:
          type: string
          title: Execution Phase
          description: 'The phase in which the tag was triggered: access -> Request, `header_filter` -> `response_header`, `body_filter` -> `response_body`'
          example: access
          examples:
          - access
      type: object
      required:
      - tag
      - display_name
      - description
      - field
      - field_name
      - pattern_name
      - pattern_value
      - execution_phase
      title: PatternMatchedTag
      description: Pattern matched tag details
    PolicyAction:
      type: string
      enum:
      - Allow
      - Block
      - Captcha
      - Gateway
      - Handshake
      - Monitor
      - Composite
      title: PolicyAction
      description: The action taken by the WAAP upon rule activation.
    PolicyMode:
      properties:
        mode:
          type: boolean
          title: Mode
          description: Indicates if the security rule is active
      type: object
      required:
      - mode
      title: PolicyMode
      description: Represents the mode of a security rule.
    PolicyOverrideCondition-Input:
      properties:
        ip:
          $ref: '#/components/schemas/IpCondition'
        ip_range:
          $ref: '#/components/schemas/IpRangeCondition'
        country:
          $ref: '#/components/schemas/CountryCondition'
        organization:
          $ref: '#/components/schemas/OrganizationCondition'
        header:
          $ref: '#/components/schemas/HeaderCondition'
        header_exists:
          $ref: '#/components/schemas/HeaderExistsCondition'
        user_agent:
          $ref: '#/components/schemas/UserAgentCondition'
        url:
          $ref: '#/components/schemas/UrlCondition'
        http_method:
          $ref: '#/components/schemas/HttpMethodCondition'
        ja3:
          $ref: '#/components/schemas/Ja3Condition-Input'
        ja4:
          $ref: '#/components/schemas/Ja4Condition-Input'
      additionalProperties: false
      type: object
      title: PolicyOverrideCondition
      description: |-
        A single policy override condition. Only one of the fields below may be set.

        Limited to the subset of `CustomRuleConditionScope` scopes that policy overrides
        support (Lime wire-format translation is reused from Custom Rules' own
        `app.models.customer_rules.lime_translation.ConditionMapper`).
    PolicyOverrideCondition-Output:
      properties:
        ip:
          $ref: '#/components/schemas/IpCondition'
        ip_range:
          $ref: '#/components/schemas/IpRangeCondition'
        country:
          $ref: '#/components/schemas/CountryCondition'
        organization:
          $ref: '#/components/schemas/OrganizationCondition'
        header:
          $ref: '#/components/schemas/HeaderCondition'
        header_exists:
          $ref: '#/components/schemas/HeaderExistsCondition'
        user_agent:
          $ref: '#/components/schemas/UserAgentCondition'
        url:
          $ref: '#/components/schemas/UrlCondition'
        http_method:
          $ref: '#/components/schemas/HttpMethodCondition'
        ja3:
          $ref: '#/components/schemas/Ja3Condition-Output'
        ja4:
          $ref: '#/components/schemas/Ja4Condition-Output'
      additionalProperties: false
      type: object
      title: PolicyOverrideCondition
      description: |-
        A single policy override condition. Only one of the fields below may be set.

        Limited to the subset of `CustomRuleConditionScope` scopes that policy overrides
        support (Lime wire-format translation is reused from Custom Rules' own
        `app.models.customer_rules.lime_translation.ConditionMapper`).
    PolicyOverrideCreate:
      properties:
        name:
          type: string
          maxLength: 100
          minLength: 1
          title: Name
          description: The policy override's display name
        description:
          anyOf:
          - type: string
            maxLength: 1000
          - type: 'null'
          title: Description
          description: An optional note explaining the override
        target_type:
          $ref: '#/components/schemas/PolicyOverrideTargetType'
          description: Whether `target_ids` are detector IDs or rule IDs
        target_ids:
          items:
            type: integer
            exclusiveMinimum: 0
            description: A detector or rule ID, matching `target_type`
          type: array
          minItems: 1
          title: Target Ids
          description: The detectors or rules this override suppresses
        conditions:
          items:
            $ref: '#/components/schemas/PolicyOverrideCondition-Input'
          type: array
          maxItems: 5
          title: Conditions
          description: The conditions required for the override to apply. An override may have up to 5 conditions; all must pass for the override to apply. Without conditions the override applies to every request on the owning domain that hits a linked target.
        enabled:
          type: boolean
          title: Enabled
          description: Whether the override is active
        request_id:
          anyOf:
          - type: string
            pattern: ^[a-f0-9]{32}-[0-9]{6}$
          - type: 'null'
          title: Request Id
          description: The ID of the request that prompted this override, if created from Event Details. Preserves a snapshot of that request for audit purposes; has no effect on override behavior and is not returned by this API.
      additionalProperties: false
      type: object
      required:
      - name
      - target_type
      - target_ids
      - enabled
      title: PolicyOverrideCreate
    PolicyOverrideResponse:
      properties:
        id:
          type: integer
          title: Id
          description: The policy override's ID
        domain_id:
          type: integer
          title: Domain Id
          description: The domain this override belongs to
        name:
          type: string
          title: Name
          description: The policy override's display name
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: An optional note explaining the override
        target_type:
          $ref: '#/components/schemas/PolicyOverrideTargetType'
          description: Whether targets are detectors or rules
        targets:
          items:
            $ref: '#/components/schemas/PolicyOverrideTarget'
          type: array
          title: Targets
          description: The detectors or rules this override suppresses
        conditions:
          items:
            $ref: '#/components/schemas/PolicyOverrideCondition-Output'
          type: array
          title: Conditions
          description: The conditions required for the override to apply. Empty means the override applies to every request on the owning domain that hits a linked target.
        enabled:
          type: boolean
          title: Enabled
          description: Whether the override is active
        stale:
          type: boolean
          title: Stale
          description: Whether a linked target has been deleted, disabled, or otherwise become invalid. A stale override is not published and does not suppress anything until it's edited.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: When the override was created
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: When the override was last updated
      type: object
      required:
      - id
      - domain_id
      - name
      - target_type
      - targets
      - conditions
      - enabled
      - stale
      - created_at
      - updated_at
      title: PolicyOverrideResponse
    PolicyOverrideTarget:
      properties:
        id:
          type: integer
          title: Id
          description: The policy override target's ID
        detector_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Detector Id
          description: The linked detector's ID, if `target_type` is detector
        rule_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rule Id
          description: The linked rule's ID, if `target_type` is rule
        ref:
          type: string
          title: Ref
          description: The stable reference edge uses to match this target
        snapshot:
          $ref: '#/components/schemas/PolicyOverrideTargetSnapshot'
          description: A point-in-time record of the target's details, retained for display after the linked object is deleted
      type: object
      required:
      - id
      - ref
      - snapshot
      title: PolicyOverrideTarget
    PolicyOverrideTargetSnapshot:
      properties:
        name:
          type: string
          title: Name
          description: The target's display name when it was linked
        category:
          anyOf:
          - type: string
          - type: 'null'
          title: Category
          description: The target's rule category (policy or template), if `target_type` is rule
        action:
          anyOf:
          - type: string
          - type: 'null'
          title: Action
          description: The action the target took when it triggered, if `target_type` is rule
        attack_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Attack Type
          description: The attack category the target detected, if `target_type` is rule
      type: object
      required:
      - name
      title: PolicyOverrideTargetSnapshot
      description: |-
        Point-in-time record of the linked target's identifying details, kept so a
        stale override -- whose live target may since have been deleted -- still shows
        what it used to point at.
    PolicyOverrideTargetType:
      type: string
      enum:
      - detector
      - rule
      title: PolicyOverrideTargetType
    PolicyOverrideUpdate:
      properties:
        name:
          anyOf:
          - type: string
            maxLength: 100
            minLength: 1
            description: The policy override's display name
          - type: 'null'
          title: Name
        description:
          anyOf:
          - type: string
            maxLength: 1000
          - type: 'null'
          title: Description
          description: An optional note explaining the override
        conditions:
          anyOf:
          - items:
              $ref: '#/components/schemas/PolicyOverrideCondition-Input'
            type: array
            maxItems: 5
            description: The conditions required for the override to apply. An override may have up to 5 conditions; all must pass for the override to apply. Without conditions the override applies to every request on the owning domain that hits a linked target.
          - type: 'null'
          title: Conditions
        enabled:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Enabled
          description: Whether the override is active
      additionalProperties: false
      type: object
      title: PolicyOverrideUpdate
    PreviewCustomPage:
      properties:
        logo:
          anyOf:
          - type: string
            title: A base64 encoded image of the logo to present
            description: Supported image types are JPEG, PNG and JPG, size is limited to width 450px, height 130px. This should be a base 64 encoding of the full HTML img tag compatible image, with the header included.
          - type: 'null'
          title: Logo
        header:
          anyOf:
          - type: string
            maxLength: 62
            minLength: 3
            description: The text to display in the header of the custom page
          - type: 'null'
          title: Header
        title:
          anyOf:
          - type: string
            maxLength: 50
            minLength: 3
            description: The text to display in the title of the custom page
          - type: 'null'
          title: Title
        text:
          anyOf:
          - type: string
            maxLength: 400
            minLength: 20
            description: The text to display in the body of the custom page
          - type: 'null'
          title: Text
        error:
          anyOf:
          - type: string
            maxLength: 400
            minLength: 10
            description: Error message
          - type: 'null'
          title: Error
      type: object
      title: PreviewCustomPage
    QuotaItem:
      properties:
        current:
          type: integer
          title: Current
          description: The current number of this resource
        allowed:
          type: integer
          title: Allowed
          description: The maximum allowed number of this resource
      type: object
      required:
      - current
      - allowed
      title: QuotaItem
    RequestDetails:
      properties:
        policy_override:
          items:
            $ref: '#/components/schemas/AppliedPolicyOverride'
          type: array
          title: Policy Override
          description: Applied overrides with id, t, and matched metadata keyed by target ID. Does not replace the final decision.
        id:
          type: string
          title: Id
          description: Request ID
          example: 96763b8fb655e9f18a2e04097b704e39-458959
          examples:
          - 96763b8fb655e9f18a2e04097b704e39-458959
        path:
          type: string
          title: Path
          description: Request path
          example: /new_index
          examples:
          - /new_index
        method:
          type: string
          title: Method
          description: Request method
          example: GET
          examples:
          - GET
        action:
          type: string
          title: Action
          description: Request action
          example: block
          examples:
          - block
        rule_id:
          type: string
          title: Rule Id
          description: ID of the triggered rule
          example: '86'
          examples:
          - '86'
        rule_name:
          type: string
          title: Rule Name
          description: Name of the triggered rule
          example: SQL Injection
          examples:
          - SQL Injection
        user_agent:
          $ref: '#/components/schemas/UserAgent'
          description: User agent
        network:
          $ref: '#/components/schemas/Network'
        request_time:
          type: string
          format: date-time
          title: Request Time
          description: The time of the request
          example: '2025-08-28T07:13:59'
          examples:
          - '2025-08-28T07:13:59'
        reference_id:
          type: string
          title: Reference Id
          description: Reference ID to identify user sanction
          example: ad07c06f19054e484974fa22e9fb6bb1
          examples:
          - ad07c06f19054e484974fa22e9fb6bb1
        session_id:
          type: string
          title: Session Id
          description: The session ID associated with the request.
          example: 0c74d14951b22dc3f22cbba9668ecea1
          examples:
          - 0c74d14951b22dc3f22cbba9668ecea1
        content_type:
          type: string
          title: Content Type
          description: Content type of request
          example: text/html; charset=UTF-8
          examples:
          - text/html; charset=UTF-8
        scheme:
          type: string
          title: Scheme
          description: The URI scheme of the request that generated an event
          example: https
          examples:
          - https
        http_status_code:
          type: integer
          title: Http Status Code
          description: Status code for http request
          example: 200
          examples:
          - 200
        http_version:
          type: string
          title: Http Version
          description: HTTP version of request
          example: '1.1'
          examples:
          - '1.1'
        response_time:
          type: string
          title: Response Time
          description: Time took to process all request
          example: '3'
          examples:
          - '3'
        request_headers:
          additionalProperties: true
          type: object
          title: Request Headers
          description: HTTP request headers
          example: &id130
            ACCEPT: '*/*'
            ACCEPT-ENCODING: gzip, deflate
            CONNECTION: keep-alive
            HOST: oih.jung.fblcloud-qa.net
            USER-AGENT: Firefox/44.3
            X-FORWARDED-FOR: 169.54.212.219
            X-FORWARDED-PORT: '80'
            X-FORWARDED-PROTO: http
          examples:
          - *id130
        incident_id:
          type: string
          title: Incident Id
          description: ID of challenge that was generated
          example: 9f06152824394345
          examples:
          - 9f06152824394345
        request_type:
          type: string
          title: Request Type
          description: The type of the request that generated an event
          example: block
          examples:
          - block
        session_request_count:
          type: string
          title: Session Request Count
          description: The number requests in session
          example: '1'
          examples:
          - '1'
        domain:
          type: string
          title: Domain
          description: Domain name
          example: example.com
          examples:
          - example.com
        requested_domain:
          type: string
          title: Requested Domain
          description: The real domain name
          example: example.com
          examples:
          - example.com
        query_string:
          type: string
          title: Query String
          description: The query string of the request
          example: q=select%20user%20from%20master..a
          examples:
          - q=select%20user%20from%20master..a
        result:
          type: string
          enum:
          - passed
          - blocked
          - suppressed
          - ''
          title: Result
          description: The result of a request
          example: passed
          examples:
          - passed
        decision:
          type: string
          enum:
          - passed
          - allowed
          - monitored
          - blocked
          - ''
          title: Decision
          description: The decision made for processing the request through the WAAP.
          default: ''
          example: blocked
          examples:
          - blocked
        optional_action:
          type: string
          enum:
          - captcha
          - challenge
          - ''
          title: Optional Action
          description: An optional action that may be applied in addition to the primary decision.
          default: ''
          example: captcha
          examples:
          - captcha
        traffic_types:
          items:
            type: string
          type: array
          title: Traffic Types
          description: List of traffic types
          example: &id131
          - sanctioned
          - policy_blocked
          examples:
          - *id131
        pattern_matched_tags:
          items:
            $ref: '#/components/schemas/PatternMatchedTag'
          type: array
          title: Pattern Matched Tags
          description: List of shield tags
        common_tags:
          items:
            $ref: '#/components/schemas/CommonTag'
          type: array
          title: Common Tags
          description: List of common tags
        ja3:
          type: string
          title: Ja3
          description: JA3 TLS client fingerprint as a 32-character lowercase hexadecimal MD5 hash, or an empty string when the record has no JA3 value.
          default: ''
          example: e7d705a3286e19ea42f587b344ee6865
          examples:
          - e7d705a3286e19ea42f587b344ee6865
        ja4:
          type: string
          title: Ja4
          description: JA4 TLS client fingerprint in the form `<ja4_a>_<ja4_b>_<ja4_c>` (a 10-character prefix and two 12-character lowercase hexadecimal hashes), or an empty string when the record has no JA4 value.
          default: ''
          example: t13d3113h2_e8f1e7e78f70_ce5650b735ce
          examples:
          - t13d3113h2_e8f1e7e78f70_ce5650b735ce
        detector:
          items:
            $ref: '#/components/schemas/Detector'
          type: array
          title: Detector
          description: Rules that matched the request and triggered the event decision.
      type: object
      required:
      - id
      - path
      - method
      - action
      - rule_id
      - rule_name
      - user_agent
      - network
      - request_time
      - reference_id
      - session_id
      - content_type
      - scheme
      - http_status_code
      - http_version
      - response_time
      - request_headers
      - incident_id
      - request_type
      - session_request_count
      - domain
      - requested_domain
      - query_string
      - result
      - traffic_types
      - pattern_matched_tags
      - common_tags
      title: RequestDetails
      description: Request's details used when displaying a single request.
    RequestRateCondition:
      properties:
        ips:
          items:
            type: string
            format: ipvanyaddress
          type: array
          maxItems: 10
          title: Ips
          description: A list of source IPs that can trigger a request rate condition
        http_methods:
          items:
            $ref: '#/components/schemas/HTTPMethod'
          type: array
          title: Http Methods
          description: Possible HTTP request methods that can trigger a request rate condition
        path_pattern:
          type: string
          maxLength: 500
          minLength: 1
          title: Path Pattern
          description: A regular expression matching the URL path of the incoming request
          example: /
          examples:
          - /
          - /path/to
        requests:
          type: integer
          minimum: 20
          title: Requests
          description: The number of incoming requests over the given time that can trigger a request rate condition
        time:
          type: integer
          maximum: 3600
          minimum: 1
          title: Time
          description: The number of seconds that the WAAP measures incoming requests over before triggering a request rate condition
        user_defined_tag:
          type: string
          maxLength: 50
          minLength: 1
          pattern: ^[a-zA-Z]+[ a-zA-Z0-9]*$
          title: User Defined Tag
          description: A user-defined tag that can be included in incoming requests and used to trigger a request rate condition
      additionalProperties: false
      type: object
      required:
      - path_pattern
      - requests
      - time
      title: RequestRateCondition
      description: Match the rate at which requests come in that match certain conditions
    RequestSummary:
      properties:
        policy_override:
          items:
            $ref: '#/components/schemas/AppliedPolicyOverride'
          type: array
          title: Policy Override
          description: Applied overrides with id, t, and matched metadata keyed by target ID. Does not replace the final decision.
        id:
          type: string
          title: Id
          description: Request's unique id
        path:
          type: string
          title: Path
          description: Request path
        client_ip:
          type: string
          title: Client Ip
          description: Client's IP address.
        method:
          type: string
          title: Method
          description: HTTP method
        rule_name:
          type: string
          title: Rule Name
          description: Name of the triggered rule
        country:
          type: string
          title: Country
          description: Country code
        action:
          type: string
          title: Action
          description: Action of the triggered rule
        rule_id:
          type: string
          title: Rule Id
          description: The ID of the triggered rule.
        domain:
          type: string
          title: Domain
          description: Domain name
        domain_id:
          type: integer
          title: Domain Id
          description: Domain ID
        user_agent:
          type: string
          title: User Agent
          description: User agent
        user_agent_client:
          type: string
          title: User Agent Client
          description: Client from parsed User agent header
        organization:
          type: string
          title: Organization
          description: Organization
        request_time:
          type: integer
          title: Request Time
          description: The UNIX timestamp in ms of the date a set of traffic counters was recorded
        reference_id:
          type: string
          title: Reference Id
          description: The reference ID to a sanction that was given to a user.
        session_id:
          type: string
          title: Session Id
          description: The session ID associated with the request.
          default: ''
        status_code:
          type: integer
          title: Status Code
          description: Status code for http request
        result:
          type: string
          enum:
          - passed
          - blocked
          - suppressed
          - ''
          title: Result
        traffic_types:
          type: string
          title: Traffic Types
          description: Comma separated list of traffic types.
        decision:
          type: string
          enum:
          - passed
          - allowed
          - monitored
          - blocked
          - ''
          title: Decision
          description: The decision made for processing the request through the WAAP.
          example: blocked
          examples:
          - blocked
        optional_action:
          type: string
          enum:
          - captcha
          - challenge
          - ''
          title: Optional Action
          description: An optional action that may be applied in addition to the primary decision.
          example: captcha
          examples:
          - captcha
        scheme:
          type: string
          title: Scheme
          description: The URI scheme of the request that generated an event
          default: ''
          example: https
          examples:
          - https
        http_version:
          type: string
          title: Http Version
          description: HTTP version of request
          default: ''
          example: '1.1'
          examples:
          - '1.1'
        ja3:
          type: string
          title: Ja3
          description: JA3 TLS client fingerprint as a 32-character lowercase hexadecimal MD5 hash, or an empty string when the record has no JA3 value.
          default: ''
          example: e7d705a3286e19ea42f587b344ee6865
          examples:
          - e7d705a3286e19ea42f587b344ee6865
      type: object
      required:
      - id
      - path
      - client_ip
      - method
      - rule_name
      - country
      - action
      - rule_id
      - domain
      - domain_id
      - user_agent
      - user_agent_client
      - organization
      - request_time
      - reference_id
      - status_code
      - result
      - traffic_types
      - decision
      - optional_action
      title: RequestSummary
      description: Request summary used when displaying a list of requests
    Resolution:
      type: string
      enum:
      - daily
      - hourly
      - minutely
      title: Resolution
      description: Specifies the granularity of the result data.
    ResponseHeaderCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        header:
          type: string
          maxLength: 50
          minLength: 1
          pattern: ^[a-zA-Z0-9-]+$
          title: Header
          description: The response header name
        value:
          type: string
          maxLength: 100
          pattern: ^[a-zA-Z0-9-_ :;.\/\"'?!(){}\[\]@<>=\-\+\*#$&`|~^%]+$
          title: Value
          description: The response header value
        match_type:
          type: string
          enum:
          - Exact
          - Contains
          title: Match Type
          description: The type of matching condition for header and value.
          default: Contains
      type: object
      required:
      - header
      - value
      title: ResponseHeaderCondition
      description: Match a response header
    ResponseHeaderExistsCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        header:
          type: string
          maxLength: 50
          minLength: 1
          pattern: ^[a-zA-Z0-9-]+$
          title: Header
          description: The response header name
      type: object
      required:
      - header
      title: ResponseHeaderExistsCondition
      description: Match when a response header is present
    RuleActionType:
      type: string
      enum:
      - allow
      - block
      - captcha
      - handshake
      - monitor
      - tag
      title: RuleActionType
    RuleAllowAction:
      properties: {}
      additionalProperties: true
      type: object
      title: RuleAllowAction
      description: The WAAP allows the request
    RuleBlockAction:
      properties:
        status_code:
          $ref: '#/components/schemas/RuleBlockStatusCode'
          description: An HTTP status code that the WAAP returns if a rule blocks a request.
          default: 403
        action_duration:
          type: string
          maxLength: 10
          minLength: 1
          pattern: ^[1-9][0-9]*[smhd]?$
          title: Action Duration
          description: How long a rule's block action will apply to subsequent requests. Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or 'd' to represent time format (seconds, minutes, hours, or days). Empty time intervals are not allowed. If not specified, the action is applied only to the request that triggers the rule.
          example: 12h
          examples:
          - 12h
          - 60s
          - '30'
      additionalProperties: false
      type: object
      title: RuleBlockAction
      description: WAAP block action behavior could be configured with response status code and action duration.
    RuleBlockStatusCode:
      type: integer
      enum:
      - 403
      - 405
      - 418
      - 429
      title: RuleBlockStatusCode
      description: Designates the HTTP status code to deliver when a request is blocked.
    RuleBlockedRequests:
      properties:
        rule_name:
          type: string
          title: Rule Name
          description: The name of the rule that blocked the request
        action:
          type: string
          title: Action
          description: The action taken by the rule
        count:
          type: integer
          title: Count
          description: The number of requests blocked by the rule
      type: object
      required:
      - rule_name
      - action
      - count
      title: RuleBlockedRequests
    RuleCaptchaAction:
      properties: {}
      additionalProperties: true
      type: object
      title: RuleCaptchaAction
      description: The WAAP presents the user with a captcha
    RuleHandshakeAction:
      properties: {}
      additionalProperties: true
      type: object
      title: RuleHandshakeAction
      description: The WAAP performs automatic browser validation
    RuleMonitorAction:
      properties: {}
      additionalProperties: true
      type: object
      title: RuleMonitorAction
      description: The WAAP monitors the request but takes no action
    RuleSet:
      properties:
        id:
          type: integer
          title: Id
          description: Identifier of the rule set.
        name:
          type: string
          title: Name
          description: Name of the rule set.
        description:
          type: string
          title: Description
          description: Detailed description of the rule set.
        is_active:
          type: boolean
          title: Is Active
          description: Indicates if the rule set is currently active.
        tags:
          items:
            $ref: '#/components/schemas/app__models__policies__Tag'
          type: array
          title: Tags
          description: Collection of tags associated with the rule set.
        resource_slug:
          anyOf:
          - type: string
          - type: 'null'
          title: Resource Slug
          description: The resource slug associated with the rule set.
        rules:
          items:
            $ref: '#/components/schemas/DomainPolicy'
          type: array
          title: Rules
          description: Collection of security rules associated with the rule set.
      type: object
      required:
      - id
      - name
      - description
      - is_active
      - tags
      - rules
      title: RuleSet
      description: Represents a custom rule set with associated rules.
    RuleTagAction:
      properties:
        tags:
          items:
            type: string
          type: array
          maxItems: 5
          minItems: 1
          title: Tags
          description: The list of user defined tags to tag the request with
      type: object
      required:
      - tags
      title: RuleTagAction
      description: WAAP tag action gets a list of tags to tag the request scope with
    RulesBulkDelete:
      properties:
        rule_ids:
          items:
            type: integer
          type: array
          minItems: 1
          title: Rule Ids
          description: The IDs of the rules to delete
      type: object
      required:
      - rule_ids
      title: RulesBulkDelete
      description: A request to delete a list of rules
    RulesBulkDeleteResponse:
      properties:
        deleted_ids:
          items:
            type: integer
          type: array
          title: Deleted Ids
          description: Rules IDs deleted by the operation
          default: []
      type: object
      title: RulesBulkDeleteResponse
    Service:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: Whether the service is enabled
      type: object
      required:
      - enabled
      title: Service
    SessionRequestCountCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        request_count:
          type: integer
          exclusiveMinimum: 0
          title: Request Count
          description: The number of dynamic requests in the session
      type: object
      required:
      - request_count
      title: SessionRequestCountCondition
      description: Match the number of dynamic page requests made in a WAAP session
    SimpleEventStatistics:
      properties:
        total:
          items:
            prefixItems:
            - type: string
            - type: integer
            type: array
            maxItems: 2
            minItems: 2
          type: array
          title: Total
          description: Total number of observed requests. First element of the tuple is a key, the second one is its counter value. The key refers to a point in the requested dimension (e.g., an IP address). Results are ordered by the counter value in descending order.
          example: &id132
          - - 1.2.3.4
            - 100000
          - - 5.6.7.8
            - 80000
          examples:
          - *id132
        blocked:
          items:
            prefixItems:
            - type: string
            - type: integer
            type: array
            maxItems: 2
            minItems: 2
          type: array
          title: Blocked
          description: Number of blocked request events, with the same keys and formatted the same as in the total field.
          example: &id133
          - - 1.2.3.4
            - 2000
          - - 5.6.7.8
            - 1000
          examples:
          - *id133
        suppressed:
          items:
            prefixItems:
            - type: string
            - type: integer
            type: array
            maxItems: 2
            minItems: 2
          type: array
          title: Suppressed
          description: Number of requests observed in monitoring mode that would have been blocked otherwise.
          example: &id134
          - - 1.2.3.4
            - 1500
          - - 5.6.7.8
            - 1100
          examples:
          - *id134
        allowed:
          items:
            prefixItems:
            - type: string
            - type: integer
            type: array
            maxItems: 2
            minItems: 2
          type: array
          title: Allowed
          description: Number of requests passed due to a permissive security rule.
          example: &id135
          - - 1.2.3.4
            - 1000
          - - 5.6.7.8
            - 900
          examples:
          - *id135
        reference:
          anyOf:
          - additionalProperties:
              anyOf:
              - $ref: '#/components/schemas/IPReference'
              - $ref: '#/components/schemas/DomainReference'
            type: object
          - type: 'null'
          title: Reference
          description: Additional information, depending on the selected dimension. Keys refer to the items in the result (first value of a tuple).
          examples:
          - 1.2.3.4:
              country: SG
              org: Singapore Networks
          - example.com:
              domain_id: 19151
      type: object
      required:
      - total
      - blocked
      - suppressed
      - allowed
      - reference
      title: SimpleEventStatistics
      description: A collection of event counts per dimension values over a time span.
    StatisticItem:
      properties:
        date_time:
          type: string
          format: date-time
          title: Date Time
          description: The date and time for the statistic in ISO 8601 format
        value:
          type: integer
          title: Value
          description: The value for the statistic. If there is no data for the given time, the value will be 0.
      type: object
      required:
      - date_time
      - value
      title: StatisticItem
      description: Response model for the statistics item
    StatisticsSeries:
      properties:
        total_bytes:
          anyOf:
          - items:
              $ref: '#/components/schemas/StatisticItem'
            type: array
          - type: 'null'
          title: Total Bytes
          description: Will be returned if `total_bytes` is requested in the metrics parameter
        total_requests:
          anyOf:
          - items:
              $ref: '#/components/schemas/StatisticItem'
            type: array
          - type: 'null'
          title: Total Requests
          description: Will be included if `total_requests` is requested in the metrics parameter
      type: object
      title: StatisticsSeries
      description: Response model for the statistics series
    StructuredPaginatedResponse_BreakdownBillingReport_:
      properties:
        limit:
          type: integer
          title: Limit
          description: Number of items requested in the response
        offset:
          type: integer
          title: Offset
          description: Items response offset used
        count:
          type: integer
          title: Count
          description: Number of items contain in the response
        results:
          $ref: '#/components/schemas/BreakdownBillingReport'
          description: Items on the current page from the result set
      type: object
      required:
      - limit
      - offset
      - count
      - results
      title: StructuredPaginatedResponse[BreakdownBillingReport]
    SummaryDomainResponse:
      properties:
        id:
          type: integer
          exclusiveMinimum: 0
          title: Id
          description: The domain ID
        name:
          type: string
          maxLength: 255
          title: Name
          description: The domain name
        status:
          $ref: '#/components/schemas/DomainStatus'
        cdn_resource_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Cdn Resource Id
          description: The ID of the CDN resource this domain is bound to
        custom_page_set:
          anyOf:
          - type: integer
            description: The ID of the custom page set
          - type: 'null'
          title: Custom Page Set
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time the domain was created in ISO 8601 format
        aliases:
          items:
            type: string
          type: array
          title: Aliases
          description: CNAME aliases pointing at this domain's CDN resource
      type: object
      required:
      - id
      - name
      - status
      - custom_page_set
      - created_at
      title: SummaryDomainResponse
      description: Represents a WAAP domain when getting a list of domains.
    SummaryDomainWithStatsResponse:
      properties:
        id:
          type: integer
          exclusiveMinimum: 0
          title: Id
          description: The domain ID
        name:
          type: string
          maxLength: 255
          title: Name
          description: The domain name
        status:
          $ref: '#/components/schemas/DomainStatus'
        cdn_resource_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Cdn Resource Id
          description: The ID of the CDN resource this domain is bound to
        custom_page_set:
          anyOf:
          - type: integer
            description: The ID of the custom page set
          - type: 'null'
          title: Custom Page Set
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time the domain was created in ISO 8601 format
        aliases:
          items:
            type: string
          type: array
          title: Aliases
          description: CNAME aliases pointing at this domain's CDN resource
        stats:
          $ref: '#/components/schemas/DomainStats'
      type: object
      required:
      - id
      - name
      - status
      - custom_page_set
      - created_at
      title: SummaryDomainWithStatsResponse
      description: Represents a WAAP domain with traffic statistics for v2 endpoint.
    TagsCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        tags:
          items:
            type: string
          type: array
          maxItems: 5
          minItems: 1
          title: Tags
          description: A list of tags to match against the request tags
          example: botnetclient
          examples:
          - botnetclient
          - xss
      type: object
      required:
      - tags
      title: TagsCondition
      description: Matches requests based on specified tags
    TaskResultId:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The task ID
      type: object
      required:
      - id
      title: TaskResultId
      description: Response model for the task result ID
    TaskResultStatus:
      type: string
      enum:
      - SUCCESS
      - FAILURE
      - IN_PROGRESS
      title: TaskResultStatus
      description: The different statuses a task result can have
    TimeSeriesAttack:
      properties:
        attack_type:
          type: string
          title: Attack Type
          description: The type of attack
        values:
          items:
            $ref: '#/components/schemas/TimeSeriesItem'
          type: array
          title: Values
          description: The time series data
      type: object
      required:
      - attack_type
      - values
      title: TimeSeriesAttack
    TimeSeriesItem:
      properties:
        timestamp:
          type: integer
          title: Timestamp
          description: The timestamp of the time series item as a POSIX timestamp
        count:
          type: integer
          title: Count
          description: The number of attacks
      type: object
      required:
      - timestamp
      - count
      title: TimeSeriesItem
    TopAttack:
      properties:
        attack_type:
          type: string
          title: Attack Type
          description: The attack type (rule name)
        domains:
          items:
            type: string
          type: array
          title: Domains
          description: Full list of domains where this attack type was seen
          default: []
        paths:
          items:
            type: string
          type: array
          title: Paths
          description: Full list of paths where this attack type was seen
          default: []
        attacks:
          type: integer
          title: Attacks
          description: Total number of attack requests (blocked + monitored)
        blocked:
          type: integer
          title: Blocked
          description: Number of blocked attack requests
      type: object
      required:
      - attack_type
      - attacks
      - blocked
      title: TopAttack
    TopDomainDetail:
      properties:
        date:
          type: string
          format: date-time
          title: Date
          description: First-seen timestamp for the IP+domain within retention period.
        domain:
          type: string
          minLength: 1
          title: Domain
          description: Domain name.
        attack_types:
          items:
            type: string
          type: array
          title: Attack Types
          description: Distinct rule names seen for this IP+domain, sorted alphabetically.
        attacks:
          type: integer
          minimum: 0
          title: Attacks
          description: Total detected attacks.
        blocked:
          type: integer
          minimum: 0
          title: Blocked
          description: Blocked attacks.
        requests:
          type: integer
          minimum: 0
          title: Requests
          description: Total requests.
        sessions:
          type: integer
          minimum: 0
          title: Sessions
          description: Distinct sessions.
        paths:
          type: integer
          minimum: 0
          title: Paths
          description: Distinct URL paths excluding query strings.
        user_agents:
          type: integer
          minimum: 0
          title: User Agents
          description: Distinct user agents.
        duration:
          type: integer
          minimum: 0
          title: Duration
          description: '`last_seen` - `first_seen` in seconds within retention.'
      type: object
      required:
      - date
      - domain
      - attack_types
      - attacks
      - blocked
      - requests
      - sessions
      - paths
      - user_agents
      - duration
      title: TopDomainDetail
    TopPathDetail:
      properties:
        date:
          type: string
          format: date-time
          title: Date
          description: First seen timestamp for the IP+path within retention period
        path:
          type: string
          title: Path
          description: Path value as stored in logs
        attack_types:
          items:
            type: string
          type: array
          title: Attack Types
          description: Distinct rule names seen for this IP+path
        attacks:
          type: integer
          title: Attacks
          description: Total detected attacks (blocked + monitored/suppressed outcomes)
          default: 0
        blocked:
          type: integer
          title: Blocked
          description: Blocked attacks
          default: 0
        requests:
          type: integer
          title: Requests
          description: Total requests
          default: 0
        sessions:
          type: integer
          title: Sessions
          description: Distinct sessions
          default: 0
        user_agents:
          type: integer
          title: User Agents
          description: Distinct user agents
          default: 0
        duration:
          type: integer
          title: Duration
          description: '`last_seen` - `first_seen` in seconds within retention'
          default: 0
      type: object
      required:
      - date
      - path
      title: TopPathDetail
    TopSession:
      properties:
        session_id:
          type: string
          format: uuid
          title: Session Id
          description: The session ID
        duration:
          type: number
          title: Duration
          description: The duration of the session in seconds
        requests:
          type: integer
          title: Requests
          description: The number of requests in the session
        blocked:
          type: integer
          title: Blocked
          description: The number of blocked requests in the session
        start_time:
          type: string
          format: date-time
          title: Start Time
          description: The start time of the session as a POSIX timestamp
      type: object
      required:
      - session_id
      - duration
      - requests
      - blocked
      - start_time
      title: TopSession
    TopUrl:
      properties:
        url:
          type: string
          title: Url
          description: The URL that was attacked
        count:
          type: integer
          title: Count
          description: The number of attacks to the URL
      type: object
      required:
      - url
      - count
      title: TopUrl
    TopUserAgent:
      properties:
        user_agent:
          type: string
          title: User Agent
          description: The user agent that was used
        count:
          type: integer
          title: Count
          description: The number of requests made with the user agent
      type: object
      required:
      - user_agent
      - count
      title: TopUserAgent
    TopUserAgentDetail:
      properties:
        user_agent:
          type: string
          title: User Agent
          description: The user agent string; missing values are represented as "".
          default: ''
        attacks:
          type: integer
          minimum: 0
          title: Attacks
          description: Total number of detected attacks.
          default: 0
        blocked:
          type: integer
          minimum: 0
          title: Blocked
          description: Number of blocked attacks.
          default: 0
        requests:
          type: integer
          minimum: 0
          title: Requests
          description: Total number of requests.
          default: 0
        sessions:
          type: integer
          minimum: 0
          title: Sessions
          description: Number of distinct sessions.
          default: 0
        domains:
          type: integer
          minimum: 0
          title: Domains
          description: Number of distinct domains.
          default: 0
        paths:
          type: integer
          minimum: 0
          title: Paths
          description: Number of distinct URL paths excluding query strings.
          default: 0
      type: object
      title: TopUserAgentDetail
    TrafficMetrics:
      properties:
        timestamp:
          type: integer
          title: Timestamp
          description: UNIX timestamp indicating when the traffic data was recorded
        ajax:
          type: integer
          title: Ajax
          description: Number of AJAX requests made
          default: 0
        api:
          type: integer
          title: Api
          description: Number of API requests made
          default: 0
        ddosBlocked:
          type: integer
          title: Ddosblocked
          description: Number of DDoS attack attempts successfully blocked
          default: 0
        origin2xx:
          type: integer
          title: Origin2Xx
          description: Number of successful HTTP 2xx responses from the origin server
          default: 0
        origin3xx:
          type: integer
          title: Origin3Xx
          description: Number of HTTP 3xx redirects issued by the origin server
          default: 0
        originError4xx:
          type: integer
          title: Originerror4Xx
          description: Number of HTTP 4xx errors from the origin server
          default: 0
        originError5xx:
          type: integer
          title: Originerror5Xx
          description: Number of HTTP 5xx errors from the origin server
          default: 0
        monitored:
          type: integer
          title: Monitored
          description: Number of requests triggering monitoring actions
          default: 0
        uncategorized:
          type: integer
          title: Uncategorized
          description: Requests resulting in neither blocks nor sanctions
          default: 0
        static:
          type: integer
          title: Static
          description: Number of static asset requests
          default: 0
        responseTime:
          type: integer
          title: Responsetime
          description: Average origin server response time in milliseconds
          default: 0
        originTimeout:
          type: integer
          title: Origintimeout
          description: Number of timeouts experienced at the origin server
          default: 0
        customAllowed:
          type: integer
          title: Customallowed
          description: Number of requests allowed through custom rules
          default: 0
        total:
          type: integer
          title: Total
          description: Total number of requests
          default: 0
        passedToOrigin:
          type: integer
          title: Passedtoorigin
          description: Number of requests served directly by the origin server
          default: 0
        customBlocked:
          type: integer
          title: Customblocked
          description: Number of requests blocked due to custom rules
          default: 0
        policyAllowed:
          type: integer
          title: Policyallowed
          description: Number of requests allowed by security policies
          default: 0
        policyBlocked:
          type: integer
          title: Policyblocked
          description: Number of requests blocked by security policies
          default: 0
      type: object
      required:
      - timestamp
      title: TrafficMetrics
      description: Represents the traffic metrics for a domain at a given time window
    TrafficType:
      type: string
      enum:
      - policy_allowed
      - policy_blocked
      - custom_rule_allowed
      - custom_blocked
      - legit_requests
      - sanctioned
      - dynamic
      - api
      - static
      - ajax
      - redirects
      - monitor
      - err_40x
      - err_50x
      - passed_to_origin
      - timeout
      - other
      - ddos
      - legit
      - monitored
      title: TrafficType
      description: A type of traffic that a request is categorized as.
    UpdateAdvancedRule:
      properties:
        name:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^[A-Za-z0-9\s.:'";<>?&|\\_-]+$
          title: Name
          description: The name assigned to the rule
          example: Block foobar bot
          examples:
          - Block foobar bot
        description:
          type: string
          maxLength: 100
          title: Description
          description: A human-readable description. When set to empty string, erases any value set earlier.
        enabled:
          type: boolean
          title: Enabled
          description: Whether or not the rule is enabled
        action:
          $ref: '#/components/schemas/CustomerRuleAction'
          description: The action that the rule takes when triggered
        source:
          type: string
          minLength: 1
          title: Source
          description: |-
            A CEL syntax expression that contains the rule's conditions. Allowed objects are: request, whois, session, response, tags, `user_defined_tags`, `user_agent`, `client_data`.

            More info can be found here: https://gcore.com/docs/waap/waap-rules/advanced-rules
          example: &id136
          - request.rate_limit([], '.*events', 5, 200, [], [], '', 'ip') and not ('mb-web-ui' in request.headers['Cookie'] or 'mb-mobile-ios' in request.headers['Cookie'] or 'session-token' in request.headers['Cookie']) and not request.headers['session']
          examples:
          - *id136
        phase:
          type: string
          enum:
          - access
          - header_filter
          - body_filter
          title: Phase
          description: |-
            The WAAP request/response phase for applying the rule.


            The "access" phase is responsible for modifying the request before it is sent to the origin server. 

            The "header_filter" phase is responsible for modifying the HTTP headers of a response before they are sent back to the client.

            The "body_filter" phase is responsible for modifying the body of a response before it is sent back to the client.
      type: object
      title: UpdateAdvancedRule
      description: A request to update an advanced WAAP rule
    UpdateApiDiscoverySettings:
      properties:
        descriptionFileLocation:
          anyOf:
          - type: string
          - type: 'null'
          title: Descriptionfilelocation
          description: The URL of the API description file. This will be periodically scanned if `descriptionFileScanEnabled` is enabled. Supported formats are YAML and JSON, and it must adhere to OpenAPI versions 2, 3, or 3.1.
        descriptionFileScanEnabled:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Descriptionfilescanenabled
          description: Indicates if periodic scan of the description file is enabled
        descriptionFileScanIntervalHours:
          anyOf:
          - type: integer
            maximum: 24
            minimum: 1
          - type: 'null'
          title: Descriptionfilescanintervalhours
          description: The interval in hours for scanning the description file
        trafficScanEnabled:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Trafficscanenabled
          description: Indicates if traffic scan is enabled
        trafficScanIntervalHours:
          anyOf:
          - type: integer
            maximum: 24
            minimum: 1
          - type: 'null'
          title: Trafficscanintervalhours
          description: The interval in hours for scanning the traffic
      type: object
      title: UpdateApiDiscoverySettings
      description: Request model for updating the API discovery settings
    UpdateApiPath:
      properties:
        path:
          type: string
          maxLength: 1024
          title: Path
          description: The updated API path. When updating the path, variables can be renamed, path parts can be converted to variables and vice versa.
          example: /api/v1/paths/{path_id}
          examples:
          - /api/v1/paths/{path_id}
        tags:
          items:
            type: string
            maxLength: 50
            pattern: ^[a-zA-Z]+[ a-zA-Z0-9]*$
            description: A user defined tag. Tags must start with a letter and can contain only letters, numbers and spaces.
          type: array
          maxItems: 5
          title: Tags
          example: &id137
          - sensitivedataurl
          - highriskurl
          examples:
          - *id137
        api_groups:
          items:
            type: string
          type: array
          title: Api Groups
          example: &id138
          - accounts
          - internal
          examples:
          - *id138
        status:
          $ref: '#/components/schemas/ApiPathStatus'
      type: object
      title: UpdateApiPath
      description: Request model for updating an API path
    UpdateApiSettings:
      properties:
        is_api:
          type: boolean
          title: Is Api
          description: Indicates if the domain is an API domain. All requests to an API domain are treated as API requests. If this is set to true then the `api_urls` field is ignored.
        api_urls:
          items:
            type: string
          type: array
          title: Api Urls
          description: The API base paths for a domain. If your domain has a common base path for all API endpoints, it can be set here. When set or updated, each entry must contain at least one letter or digit; a value that would match the whole domain (such as "/") is rejected - to treat the entire domain as an API domain, use the `is_api` field instead.
          example: &id139
          - api/v1/.*
          - v2/.*
          examples:
          - *id139
      additionalProperties: false
      type: object
      title: UpdateApiSettings
      description: Editable API settings of a domain
    UpdateCustomRule:
      properties:
        name:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^[A-Za-z0-9\s.:'";<>?&|\\_-]+$
          title: Name
          description: The name assigned to the rule
          example: Block foobar bot
          examples:
          - Block foobar bot
        description:
          type: string
          maxLength: 100
          title: Description
          description: A human-readable description. When set to empty string, erases any value set earlier.
        enabled:
          type: boolean
          title: Enabled
          description: Whether or not the rule is enabled
        action:
          $ref: '#/components/schemas/CustomerRuleAction'
          description: The action that the rule takes when triggered
        conditions:
          items:
            $ref: '#/components/schemas/CustomRuleCondition'
          type: array
          maxItems: 5
          minItems: 1
          title: Conditions
          description: The conditions required for the WAAP engine to trigger the rule. Rules may have between 1 and 5 conditions. All conditions must pass for the rule to trigger
      type: object
      title: UpdateCustomRule
      description: Payload data for a request to update a WAAP rule
    UpdateDomain:
      properties:
        status:
          $ref: '#/components/schemas/DomainUpdateStatus'
          description: The current status of the domain
      additionalProperties: false
      type: object
      required:
      - status
      title: UpdateDomain
    UpdateDomainDdosSettings:
      properties:
        global_threshold:
          type: integer
          maximum: 50000
          minimum: 250
          title: Global Threshold
          description: The global threshold is responsible for identifying DDoS attacks with a slow rise in traffic. If the threshold is met and the current number of requests is at least double that of the previous 10-second window, DDoS protection will activate. Default is 5000.
        burst_threshold:
          type: integer
          maximum: 10000
          minimum: 30
          title: Burst Threshold
          description: The burst threshold detects sudden rises in traffic. If it is met and the number of requests is at least five times the last 2-second interval, DDoS protection will activate. Default is 1000.
      additionalProperties: false
      type: object
      title: UpdateDomainDdosSettings
      description: Editable DDoS settings for a domain.
    UpdateDomainSettings:
      properties:
        ddos:
          $ref: '#/components/schemas/UpdateDomainDdosSettings'
        api:
          $ref: '#/components/schemas/UpdateApiSettings'
      additionalProperties: false
      type: object
      title: UpdateDomainSettings
      description: Represents the editable settings for a domain.
    UpdateFirewallRule:
      properties:
        name:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^[A-Za-z0-9\s.:'";<>?&|\\_-]+$
          title: Name
          description: The name assigned to the rule
          example: Block foobar bot
          examples:
          - Block foobar bot
        description:
          type: string
          maxLength: 100
          title: Description
          description: A human-readable description. When set to empty string, erases any value set earlier.
        enabled:
          type: boolean
          title: Enabled
          description: Whether or not the rule is enabled
        action:
          $ref: '#/components/schemas/FirewallRuleAction'
          description: The action that the rule takes when triggered
        conditions:
          items:
            $ref: '#/components/schemas/FirewallRuleCondition'
          type: array
          maxItems: 1
          minItems: 1
          title: Conditions
          description: The condition required for the WAAP engine to trigger the rule.
      type: object
      title: UpdateFirewallRule
    UpdateInsightPayload:
      properties:
        status:
          $ref: '#/components/schemas/InsightStatus'
          description: The status of the insight
      type: object
      required:
      - status
      title: UpdateInsightPayload
    UpdateInsightSilencePayload:
      properties:
        labels:
          additionalProperties:
            type: string
          type: object
          title: Labels
          description: A hash table of label names and values that apply to the insight silence
        comment:
          type: string
          maxLength: 180
          title: Comment
          description: A comment explaining the reason for the silence
        author:
          type: string
          maxLength: 180
          title: Author
          description: The author of the silence
        expire_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Expire At
          description: The date and time the silence expires in ISO 8601 format
      type: object
      required:
      - comment
      - author
      - expire_at
      title: UpdateInsightSilencePayload
    UrlCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        match_type:
          type: string
          enum:
          - Exact
          - Contains
          - Regex
          title: Match Type
          description: The type of matching condition.
          default: Contains
        url:
          type: string
          maxLength: 500
          minLength: 1
          title: Url
          description: |-
            The pattern to match against the request URL.
            Constraints depend on `match_type`:

            - **Exact/Contains**: plain text matching (e.g., `/admin`, must comply with `^[\w!\$~:#\[\]@\(\)*\+,=\/\-\.\%]+$`).
            - **Regex**: a valid regular expression (e.g., `^/upload(/\d+)?/\w+`). Lookahead/lookbehind constructs are forbidden.
          example: /wp-admin/
          examples:
          - /wp-admin/
      type: object
      required:
      - url
      title: UrlCondition
      description: Match the incoming request URL
    UserAgent:
      properties:
        full_string:
          type: string
          title: Full String
          description: User agent
          example: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.1.1599.114 Safari/537.36 Puffin/4.5.0IT
          examples:
          - Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.1.1599.114 Safari/537.36 Puffin/4.5.0IT
        client:
          type: string
          title: Client
          description: Client from User agent header
          example: Firefox
          examples:
          - Firefox
        client_version:
          type: string
          title: Client Version
          description: User agent client version
          example: '44.3'
          examples:
          - '44.3'
        base_browser:
          type: string
          title: Base Browser
          description: User agent browser
          example: Chrome
          examples:
          - Chrome
        base_browser_version:
          type: string
          title: Base Browser Version
          description: User agent browser version
          example: 47.0.2526.83
          examples:
          - 47.0.2526.83
        os:
          type: string
          title: Os
          description: User agent os
          example: Android
          examples:
          - Android
        device:
          type: string
          title: Device
          description: User agent device
          example: Amazon Kindle Fire HDX 7
          examples:
          - Amazon Kindle Fire HDX 7
        device_type:
          type: string
          title: Device Type
          description: User agent device type
          example: mobile
          examples:
          - mobile
        cpu:
          type: string
          title: Cpu
          description: User agent cpu
          example: intel
          examples:
          - intel
        rendering_engine:
          type: string
          title: Rendering Engine
          description: User agent engine
          example: AppleWebKit
          examples:
          - AppleWebKit
        client_type:
          type: string
          title: Client Type
          description: User agent client type
          example: Custom Browser
          examples:
          - Custom Browser
      type: object
      required:
      - full_string
      - client
      - client_version
      - base_browser
      - base_browser_version
      - os
      - device
      - device_type
      - cpu
      - rendering_engine
      - client_type
      title: UserAgent
      description: User agent details
    UserAgentCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        user_agent:
          type: string
          maxLength: 300
          title: User Agent
          description: The user agent value to match
          example: curl/
          examples:
          - curl/
        match_type:
          type: string
          enum:
          - Exact
          - Contains
          title: Match Type
          description: The type of matching condition.
          default: Contains
      type: object
      required:
      - user_agent
      title: UserAgentCondition
      description: Match the user agent making the request
    UserDefinedTagsCondition:
      properties:
        negation:
          type: boolean
          title: Negation
          description: Whether or not to apply a boolean NOT operation to the rule's condition
          default: false
        tags:
          items:
            type: string
            maxLength: 50
            minLength: 1
            pattern: ^[a-zA-Z]+[ a-zA-Z0-9]*$
            description: A user-defined tag assigned to the request
          type: array
          maxItems: 10
          minItems: 1
          title: Tags
          description: A list of user-defined tags to match against the request tags
      type: object
      required:
      - tags
      title: UserDefinedTagsCondition
      description: Matches requests based on user-defined tags
    WhoisInfo:
      properties:
        org_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Org Id
          description: The organization ID
        org_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Org Name
          description: The organization name
        net_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Net Name
          description: The network name
        net_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Net Type
          description: The network type
        net_range:
          anyOf:
          - type: string
          - type: 'null'
          title: Net Range
          description: The network range
        net_description:
          anyOf:
          - type: string
          - type: 'null'
          title: Net Description
          description: The network description
        cidr:
          anyOf:
          - type: integer
          - type: 'null'
          title: Cidr
          description: The CIDR
        owner_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Owner Type
          description: The owner type
        country:
          anyOf:
          - type: string
            pattern: ^\w{2}$
          - type: 'null'
          title: Country
          description: The country
        state:
          anyOf:
          - type: string
          - type: 'null'
          title: State
          description: The state
        abuse_mail:
          anyOf:
          - type: string
          - type: 'null'
          title: Abuse Mail
          description: The abuse mail
        rir:
          anyOf:
          - type: string
          - type: 'null'
          title: Rir
          description: The RIR
      type: object
      title: WhoisInfo
    app__models__domains__DomainInfo:
      properties:
        id:
          type: integer
          title: Id
          description: The domain ID
        name:
          type: string
          title: Name
          description: The domain name
      type: object
      required:
      - id
      - name
      title: DomainInfo
      description: Minimal domain information for inclusion in resource responses
    app__models__ip_reputation__DomainInfo:
      properties:
        id:
          type: integer
          title: Id
          description: The unique identifier for the domain
        name:
          type: string
          title: Name
          description: The domain name
      type: object
      required:
      - id
      - name
      title: DomainInfo
    app__models__organizations__Organization:
      properties:
        id:
          type: integer
          title: Id
          description: The ID of an organization
        name:
          type: string
          title: Name
          description: The name of an organization
      type: object
      required:
      - id
      - name
      title: Organization
      description: Represents an IP range owner organization
    app__models__policies__Tag:
      properties:
        id:
          type: integer
          title: Id
          description: Identifier of the tag.
        name:
          type: string
          title: Name
          description: Name of the tag.
        description:
          type: string
          title: Description
          description: Detailed description of the tag.
      type: object
      required:
      - id
      - name
      - description
      title: Tag
      description: A single tag associated with a rule set.
    app__models__requests__Organization:
      properties:
        name:
          type: string
          title: Name
          description: Organization name
          example: InfoWeb(Fujitsu Ltd
          examples:
          - InfoWeb(Fujitsu Ltd
        subnet:
          type: string
          title: Subnet
          description: Network range
          example: 116.83.0.0-116.83.127.255
          examples:
          - 116.83.0.0-116.83.127.255
      type: object
      required:
      - name
      - subnet
      title: Organization
      description: Organization details
    app__models__tags__Tag:
      properties:
        name:
          type: string
          title: Name
          description: The name of a tag that should be used in a WAAP rule condition
        readable_name:
          type: string
          title: Readable Name
          description: The display name of the tag
        description:
          type: string
          title: Description
          description: A tag's human readable description
      type: object
      required:
      - name
      - readable_name
      - description
      title: Tag
      description: Tags provide shortcuts for the rules used in WAAP policies for the creation of more complex WAAP rules.
  securitySchemes:
    APIKey:
      description: |-
        API key for authentication. Make sure to include the word `apikey`, followed by a single space and then your token.
        Example: `apikey 1234_abcdef`
      type: apiKey
      in: header
      name: Authorization
tags:
- name: API Discovery
- name: Advanced Rules
- name: Analytics
- name: Custom Page Sets
- name: Custom Rules
- name: Domains
- name: Filter Templates
- name: Firewall Rules
- name: IP Reputation
- name: IP Spotlight
- name: Network Organizations
- name: Policies
- name: Policy Overrides
- name: Pre-billing
- name: Security Insights
- name: Tags
- name: WAAP Service
x-tagGroups:
- name: WAAP API
  tags:
  - API Discovery
  - Advanced Rules
  - Analytics
  - Custom Page Sets
  - Custom Rules
  - Domains
  - Filter Templates
  - Firewall Rules
  - IP Reputation
  - IP Spotlight
  - Network Organizations
  - Policies
  - Policy Overrides
  - Pre-billing
  - Security Insights
  - Tags
  - WAAP Service
security:
- APIKey: []
