openapi: 3.0.1
info:
  title: Config V1 API
  description: |2

    The Config API provides standard HTTP/JSON REST endpoints for creating, reading,
    updating, deleting, and listing configurable Chronosphere resources.

    Use this link to download the raw Swagger specification:
    <a href="/api/v1/config/swagger.json">/api/v1/config/swagger.json</a>
  version: v1
servers:
- url: /
tags:
- name: ConfigV1
paths:
  /api/v1/config/buckets:
    get:
      tags:
      - Bucket
      operationId: ListBuckets
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any Bucket with a matching slug\
          \ in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any Bucket with a matching name\
          \ in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListBucketsResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - Bucket
      operationId: CreateBucket
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateBucketRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created Bucket.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateBucketResponse'
        "400":
          description: Cannot create the Bucket because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the Bucket because there is a conflict with an
            existing Bucket.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/buckets/{slug}:
    get:
      tags:
      - Bucket
      operationId: ReadBucket
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadBucketResponse'
        "404":
          description: Cannot read the Bucket because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - Bucket
      operationId: UpdateBucket
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateBucketBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated Bucket.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateBucketResponse'
        "400":
          description: Cannot update the Bucket because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the Bucket because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the Bucket because there is a conflict with an
            existing Bucket.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - Bucket
      operationId: DeleteBucket
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      - name: force_delete
        in: query
        description: |-
          force_delete indicates deletion of the bucket and all resources that reference the bucket.
          This includes monitors, dashboards, notification policies, recording rules, and alerts.
        schema:
          type: boolean
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteBucketResponse'
        "400":
          description: Cannot delete the Bucket because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the Bucket because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/classic-dashboards:
    get:
      tags:
      - ClassicDashboard
      operationId: ListClassicDashboards
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any ClassicDashboard with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: bucket_slugs
        in: query
        description: "Filters results by bucket_slug, where any ClassicDashboard with\
          \ a matching bucket_slug in the given list (and matches all other filters)\
          \ is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: collection_slugs
        in: query
        description: "Filters results by collection_slug, where any ClassicDashboard\
          \ with a matching collection_slug in the given list (and matches all other\
          \ filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any ClassicDashboard with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: include_dashboard_json
        in: query
        description: |-
          Optional flag to populate the dashboard_json of the returned dashboards.
          By default, dashboard_json will be left empty.
        schema:
          type: boolean
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListClassicDashboardsResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - ClassicDashboard
      operationId: CreateClassicDashboard
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateClassicDashboardRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created GrafanaDashboard.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateClassicDashboardResponse'
        "400":
          description: Cannot create the GrafanaDashboard because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the GrafanaDashboard because there is a conflict
            with an existing GrafanaDashboard.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/classic-dashboards/{slug}:
    get:
      tags:
      - ClassicDashboard
      operationId: ReadClassicDashboard
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadClassicDashboardResponse'
        "404":
          description: Cannot read the GrafanaDashboard because the slug does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - ClassicDashboard
      operationId: UpdateClassicDashboard
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateClassicDashboardBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated GrafanaDashboard.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateClassicDashboardResponse'
        "400":
          description: Cannot update the GrafanaDashboard because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the GrafanaDashboard because the slug does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the GrafanaDashboard because there is a conflict
            with an existing GrafanaDashboard.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - ClassicDashboard
      operationId: DeleteClassicDashboard
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteClassicDashboardResponse'
        "400":
          description: Cannot delete the GrafanaDashboard because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the GrafanaDashboard because the slug does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/collections:
    get:
      tags:
      - Collection
      operationId: ListCollections
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any Collection with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: team_slugs
        in: query
        description: "Filters results by team_slug, where any Collection with a matching\
          \ team_slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any Collection with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: notification_policy_slugs
        in: query
        description: Get collections that directly reference notifications policies
          by the referenced policy slugs.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListCollectionsResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - Collection
      operationId: CreateCollection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateCollectionRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created Collection.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateCollectionResponse'
        "400":
          description: Cannot create the Collection because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the Collection because there is a conflict with
            an existing Collection.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/collections/{slug}:
    get:
      tags:
      - Collection
      operationId: ReadCollection
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadCollectionResponse'
        "404":
          description: Cannot read the Collection because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - Collection
      operationId: UpdateCollection
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateCollectionBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated Collection.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateCollectionResponse'
        "400":
          description: Cannot update the Collection because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the Collection because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the Collection because there is a conflict with
            an existing Collection.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - Collection
      operationId: DeleteCollection
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteCollectionResponse'
        "400":
          description: Cannot delete the Collection because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the Collection because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/dashboards:
    get:
      tags:
      - Dashboard
      operationId: ListDashboards
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any Dashboard with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: collection_slugs
        in: query
        description: "Filters results by collection_slug, where any Dashboard with\
          \ a matching collection_slug in the given list (and matches all other filters)\
          \ is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any Dashboard with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: include_dashboard_json
        in: query
        description: |-
          Optional. Flag to populate the `dashboard_json` field of the returned
          dashboards. By default, `dashboard_json` is empty.
        schema:
          type: boolean
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListDashboardsResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - Dashboard
      operationId: CreateDashboard
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateDashboardRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created Dashboard.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateDashboardResponse'
        "400":
          description: Cannot create the Dashboard because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the Dashboard because there is a conflict with
            an existing Dashboard.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/dashboards/{slug}:
    get:
      tags:
      - Dashboard
      operationId: ReadDashboard
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadDashboardResponse'
        "404":
          description: Cannot read the Dashboard because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - Dashboard
      operationId: UpdateDashboard
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateDashboardBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated Dashboard.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateDashboardResponse'
        "400":
          description: Cannot update the Dashboard because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the Dashboard because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the Dashboard because there is a conflict with
            an existing Dashboard.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - Dashboard
      operationId: DeleteDashboard
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteDashboardResponse'
        "400":
          description: Cannot delete the Dashboard because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the Dashboard because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/datasets:
    get:
      tags:
      - Dataset
      operationId: ListDatasets
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any Dataset with a matching slug\
          \ in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any Dataset with a matching name\
          \ in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: type
        in: query
        description: "Custom filtering option: list filtered down to a specific telemetry\
          \ type."
        schema:
          type: string
          enum:
          - TRACES
          - LOGS
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListDatasetsResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - Dataset
      operationId: CreateDataset
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateDatasetRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created Dataset.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateDatasetResponse'
        "400":
          description: Cannot create the Dataset because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the Dataset because there is a conflict with
            an existing Dataset.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/datasets/{slug}:
    get:
      tags:
      - Dataset
      operationId: ReadDataset
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadDatasetResponse'
        "404":
          description: Cannot read the Dataset because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - Dataset
      operationId: UpdateDataset
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateDatasetBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated Dataset.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateDatasetResponse'
        "400":
          description: Cannot update the Dataset because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the Dataset because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the Dataset because there is a conflict with
            an existing Dataset.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - Dataset
      operationId: DeleteDataset
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteDatasetResponse'
        "400":
          description: Cannot delete the Dataset because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the Dataset because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/derived-labels:
    get:
      tags:
      - DerivedLabel
      operationId: ListDerivedLabels
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any DerivedLabel with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any DerivedLabel with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListDerivedLabelsResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - DerivedLabel
      operationId: CreateDerivedLabel
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateDerivedLabelRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created DerivedLabel.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateDerivedLabelResponse'
        "400":
          description: Cannot create the DerivedLabel because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the DerivedLabel because there is a conflict
            with an existing DerivedLabel.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/derived-labels/{slug}:
    get:
      tags:
      - DerivedLabel
      operationId: ReadDerivedLabel
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadDerivedLabelResponse'
        "404":
          description: Cannot read the DerivedLabel because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - DerivedLabel
      operationId: UpdateDerivedLabel
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateDerivedLabelBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated DerivedLabel.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateDerivedLabelResponse'
        "400":
          description: Cannot update the DerivedLabel because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the DerivedLabel because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the DerivedLabel because there is a conflict
            with an existing DerivedLabel.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - DerivedLabel
      operationId: DeleteDerivedLabel
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteDerivedLabelResponse'
        "400":
          description: Cannot delete the DerivedLabel because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the DerivedLabel because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/derived-metrics:
    get:
      tags:
      - DerivedMetric
      operationId: ListDerivedMetrics
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any DerivedMetric with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any DerivedMetric with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListDerivedMetricsResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - DerivedMetric
      operationId: CreateDerivedMetric
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateDerivedMetricRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created DerivedMetric.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateDerivedMetricResponse'
        "400":
          description: Cannot create the DerivedMetric because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the DerivedMetric because there is a conflict
            with an existing DerivedMetric.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/derived-metrics/{slug}:
    get:
      tags:
      - DerivedMetric
      operationId: ReadDerivedMetric
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadDerivedMetricResponse'
        "404":
          description: Cannot read the DerivedMetric because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - DerivedMetric
      operationId: UpdateDerivedMetric
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateDerivedMetricBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated DerivedMetric.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateDerivedMetricResponse'
        "400":
          description: Cannot update the DerivedMetric because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the DerivedMetric because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the DerivedMetric because there is a conflict
            with an existing DerivedMetric.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - DerivedMetric
      operationId: DeleteDerivedMetric
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteDerivedMetricResponse'
        "400":
          description: Cannot delete the DerivedMetric because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the DerivedMetric because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/drop-rules:
    get:
      tags:
      - DropRule
      operationId: ListDropRules
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any DropRule with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any DropRule with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListDropRulesResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - DropRule
      operationId: CreateDropRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateDropRuleRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created DropRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateDropRuleResponse'
        "400":
          description: Cannot create the DropRule because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the DropRule because there is a conflict with
            an existing DropRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/drop-rules/{slug}:
    get:
      tags:
      - DropRule
      operationId: ReadDropRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadDropRuleResponse'
        "404":
          description: Cannot read the DropRule because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - DropRule
      operationId: UpdateDropRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateDropRuleBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated DropRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateDropRuleResponse'
        "400":
          description: Cannot update the DropRule because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the DropRule because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the DropRule because there is a conflict with
            an existing DropRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - DropRule
      operationId: DeleteDropRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteDropRuleResponse'
        "400":
          description: Cannot delete the DropRule because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the DropRule because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/gcp-metrics-integrations:
    get:
      tags:
      - GcpMetricsIntegration
      operationId: ListGcpMetricsIntegrations
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any GcpMetricsIntegration with\
          \ a matching slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any GcpMetricsIntegration with\
          \ a matching name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListGcpMetricsIntegrationsResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - GcpMetricsIntegration
      operationId: CreateGcpMetricsIntegration
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateGcpMetricsIntegrationRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created GcpMetricsIntegration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateGcpMetricsIntegrationResponse'
        "400":
          description: Cannot create the GcpMetricsIntegration because the request
            is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the GcpMetricsIntegration because there is a
            conflict with an existing GcpMetricsIntegration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/gcp-metrics-integrations/{slug}:
    get:
      tags:
      - GcpMetricsIntegration
      operationId: ReadGcpMetricsIntegration
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadGcpMetricsIntegrationResponse'
        "404":
          description: Cannot read the GcpMetricsIntegration because the slug does
            not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - GcpMetricsIntegration
      operationId: UpdateGcpMetricsIntegration
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateGcpMetricsIntegrationBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated GcpMetricsIntegration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateGcpMetricsIntegrationResponse'
        "400":
          description: Cannot update the GcpMetricsIntegration because the request
            is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the GcpMetricsIntegration because the slug does
            not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the GcpMetricsIntegration because there is a
            conflict with an existing GcpMetricsIntegration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - GcpMetricsIntegration
      operationId: DeleteGcpMetricsIntegration
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteGcpMetricsIntegrationResponse'
        "400":
          description: Cannot delete the GcpMetricsIntegration because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the GcpMetricsIntegration because the slug does
            not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/grafana-dashboards:
    get:
      tags:
      - GrafanaDashboard
      operationId: ListGrafanaDashboards
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any GrafanaDashboard with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: bucket_slugs
        in: query
        description: "Filters results by bucket_slug, where any GrafanaDashboard with\
          \ a matching bucket_slug in the given list (and matches all other filters)\
          \ is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: collection_slugs
        in: query
        description: "Filters results by collection_slug, where any GrafanaDashboard\
          \ with a matching collection_slug in the given list (and matches all other\
          \ filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any GrafanaDashboard with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: include_dashboard_json
        in: query
        description: |-
          Optional flag to populate the dashboard_json of the returned dashboards.
          By default, dashboard_json will be left empty.
        schema:
          type: boolean
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListGrafanaDashboardsResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - GrafanaDashboard
      operationId: CreateGrafanaDashboard
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateGrafanaDashboardRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created GrafanaDashboard.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateGrafanaDashboardResponse'
        "400":
          description: Cannot create the GrafanaDashboard because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the GrafanaDashboard because there is a conflict
            with an existing GrafanaDashboard.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/grafana-dashboards/{slug}:
    get:
      tags:
      - GrafanaDashboard
      operationId: ReadGrafanaDashboard
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadGrafanaDashboardResponse'
        "404":
          description: Cannot read the GrafanaDashboard because the slug does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - GrafanaDashboard
      operationId: UpdateGrafanaDashboard
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateGrafanaDashboardBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated GrafanaDashboard.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateGrafanaDashboardResponse'
        "400":
          description: Cannot update the GrafanaDashboard because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the GrafanaDashboard because the slug does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the GrafanaDashboard because there is a conflict
            with an existing GrafanaDashboard.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - GrafanaDashboard
      operationId: DeleteGrafanaDashboard
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteGrafanaDashboardResponse'
        "400":
          description: Cannot delete the GrafanaDashboard because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the GrafanaDashboard because the slug does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/log-allocation-config:
    get:
      tags:
      - LogAllocationConfig
      operationId: ReadLogAllocationConfig
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadLogAllocationConfigResponse'
        "404":
          description: Cannot read the LogAllocationConfig because LogAllocationConfig
            has not been created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - LogAllocationConfig
      operationId: UpdateLogAllocationConfig
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1UpdateLogAllocationConfigRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the updated LogAllocationConfig.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateLogAllocationConfigResponse'
        "400":
          description: Cannot update the LogAllocationConfig because the request is
            invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the LogAllocationConfig because LogAllocationConfig
            has not been created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    post:
      tags:
      - LogAllocationConfig
      operationId: CreateLogAllocationConfig
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateLogAllocationConfigRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created LogAllocationConfig.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateLogAllocationConfigResponse'
        "400":
          description: Cannot create the LogAllocationConfig because the request is
            invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the LogAllocationConfig because there is a conflict
            with an existing LogAllocationConfig.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - LogAllocationConfig
      operationId: DeleteLogAllocationConfig
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteLogAllocationConfigResponse'
        "400":
          description: Cannot delete the LogAllocationConfig because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the LogAllocationConfig because the slug does
            not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/log-ingest-config:
    get:
      tags:
      - LogIngestConfig
      operationId: ReadLogIngestConfig
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadLogIngestConfigResponse'
        "404":
          description: Cannot read the LogIngestConfig because LogIngestConfig has
            not been created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - LogIngestConfig
      operationId: UpdateLogIngestConfig
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1UpdateLogIngestConfigRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the updated LogIngestConfig.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateLogIngestConfigResponse'
        "400":
          description: Cannot update the LogIngestConfig because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the LogIngestConfig because LogIngestConfig has
            not been created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    post:
      tags:
      - LogIngestConfig
      operationId: CreateLogIngestConfig
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateLogIngestConfigRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created LogIngestConfig.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateLogIngestConfigResponse'
        "400":
          description: Cannot create the LogIngestConfig because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the LogIngestConfig because there is a conflict
            with an existing LogIngestConfig.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - LogIngestConfig
      operationId: DeleteLogIngestConfig
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteLogIngestConfigResponse'
        "400":
          description: Cannot delete the LogIngestConfig because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the LogIngestConfig because the slug does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/log-scale-actions:
    get:
      tags:
      - LogScaleAction
      operationId: ListLogScaleActions
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any LogScaleAction with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any LogScaleAction with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListLogScaleActionsResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - LogScaleAction
      operationId: CreateLogScaleAction
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateLogScaleActionRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created LogScaleAction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateLogScaleActionResponse'
        "400":
          description: Cannot create the LogScaleAction because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the LogScaleAction because there is a conflict
            with an existing LogScaleAction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/log-scale-actions/{slug}:
    get:
      tags:
      - LogScaleAction
      operationId: ReadLogScaleAction
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadLogScaleActionResponse'
        "404":
          description: Cannot read the LogScaleAction because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - LogScaleAction
      operationId: UpdateLogScaleAction
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateLogScaleActionBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated LogScaleAction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateLogScaleActionResponse'
        "400":
          description: Cannot update the LogScaleAction because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the LogScaleAction because the slug does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the LogScaleAction because there is a conflict
            with an existing LogScaleAction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - LogScaleAction
      operationId: DeleteLogScaleAction
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteLogScaleActionResponse'
        "400":
          description: Cannot delete the LogScaleAction because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the LogScaleAction because the slug does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/log-scale-alerts:
    get:
      tags:
      - LogScaleAlert
      operationId: ListLogScaleAlerts
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any LogScaleAlert with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any LogScaleAlert with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListLogScaleAlertsResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - LogScaleAlert
      operationId: CreateLogScaleAlert
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateLogScaleAlertRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created LogScaleAlert.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateLogScaleAlertResponse'
        "400":
          description: Cannot create the LogScaleAlert because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the LogScaleAlert because there is a conflict
            with an existing LogScaleAlert.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/log-scale-alerts/{slug}:
    get:
      tags:
      - LogScaleAlert
      operationId: ReadLogScaleAlert
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadLogScaleAlertResponse'
        "404":
          description: Cannot read the LogScaleAlert because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - LogScaleAlert
      operationId: UpdateLogScaleAlert
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateLogScaleAlertBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated LogScaleAlert.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateLogScaleAlertResponse'
        "400":
          description: Cannot update the LogScaleAlert because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the LogScaleAlert because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the LogScaleAlert because there is a conflict
            with an existing LogScaleAlert.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - LogScaleAlert
      operationId: DeleteLogScaleAlert
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteLogScaleAlertResponse'
        "400":
          description: Cannot delete the LogScaleAlert because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the LogScaleAlert because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/mapping-rules:
    get:
      tags:
      - MappingRule
      operationId: ListMappingRules
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any MappingRule with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: bucket_slugs
        in: query
        description: "Filters results by bucket_slug, where any MappingRule with a\
          \ matching bucket_slug in the given list (and matches all other filters)\
          \ is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any MappingRule with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListMappingRulesResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - MappingRule
      operationId: CreateMappingRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateMappingRuleRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created MappingRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateMappingRuleResponse'
        "400":
          description: Cannot create the MappingRule because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the MappingRule because there is a conflict with
            an existing MappingRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/mapping-rules/{slug}:
    get:
      tags:
      - MappingRule
      operationId: ReadMappingRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadMappingRuleResponse'
        "404":
          description: Cannot read the MappingRule because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - MappingRule
      operationId: UpdateMappingRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateMappingRuleBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated MappingRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateMappingRuleResponse'
        "400":
          description: Cannot update the MappingRule because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the MappingRule because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the MappingRule because there is a conflict with
            an existing MappingRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - MappingRule
      operationId: DeleteMappingRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteMappingRuleResponse'
        "400":
          description: Cannot delete the MappingRule because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the MappingRule because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/monitors:
    get:
      tags:
      - Monitor
      operationId: ListMonitors
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any Monitor with a matching slug\
          \ in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: bucket_slugs
        in: query
        description: "Filters results by bucket_slug, where any Monitor with a matching\
          \ bucket_slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: collection_slugs
        in: query
        description: "Filters results by collection_slug, where any Monitor with a\
          \ matching collection_slug in the given list (and matches all other filters)\
          \ is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any Monitor with a matching name\
          \ in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: team_slugs
        in: query
        description: Filter returned monitors by the teams that own the collections
          that they belong to.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListMonitorsResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - Monitor
      operationId: CreateMonitor
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateMonitorRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created Monitor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateMonitorResponse'
        "400":
          description: Cannot create the Monitor because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the Monitor because there is a conflict with
            an existing Monitor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/monitors/{slug}:
    get:
      tags:
      - Monitor
      operationId: ReadMonitor
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadMonitorResponse'
        "404":
          description: Cannot read the Monitor because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - Monitor
      operationId: UpdateMonitor
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateMonitorBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated Monitor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateMonitorResponse'
        "400":
          description: Cannot update the Monitor because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the Monitor because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the Monitor because there is a conflict with
            an existing Monitor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - Monitor
      operationId: DeleteMonitor
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteMonitorResponse'
        "400":
          description: Cannot delete the Monitor because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the Monitor because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/muting-rules:
    get:
      tags:
      - MutingRule
      operationId: ListMutingRules
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any MutingRule with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any MutingRule with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: states
        in: query
        description: |-
          Lists muting rules filtered by the states. If empty, all muting rules are
          included.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - PENDING
            - ACTIVE
            - EXPIRED
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListMutingRulesResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - MutingRule
      operationId: CreateMutingRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateMutingRuleRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created MutingRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateMutingRuleResponse'
        "400":
          description: Cannot create the MutingRule because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the MutingRule because there is a conflict with
            an existing MutingRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/muting-rules/{slug}:
    get:
      tags:
      - MutingRule
      operationId: ReadMutingRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadMutingRuleResponse'
        "404":
          description: Cannot read the MutingRule because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - MutingRule
      operationId: UpdateMutingRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateMutingRuleBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated MutingRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateMutingRuleResponse'
        "400":
          description: Cannot update the MutingRule because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the MutingRule because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the MutingRule because there is a conflict with
            an existing MutingRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - MutingRule
      operationId: DeleteMutingRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteMutingRuleResponse'
        "400":
          description: Cannot delete the MutingRule because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the MutingRule because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/notification-policies:
    get:
      tags:
      - NotificationPolicy
      operationId: ListNotificationPolicies
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any NotificationPolicy with a\
          \ matching slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any NotificationPolicy with a\
          \ matching name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: bucket_slugs
        in: query
        description: "Filters results by bucket_slug, where any NotificationPolicy\
          \ with a matching bucket_slug in the given list (and matches all other filters)\
          \ is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: team_slugs
        in: query
        description: "Filters results by team_slug, where any NotificationPolicy with\
          \ a matching team_slug in the given list (and matches all other filters)\
          \ is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListNotificationPoliciesResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - NotificationPolicy
      operationId: CreateNotificationPolicy
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateNotificationPolicyRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created NotificationPolicy.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateNotificationPolicyResponse'
        "400":
          description: Cannot create the NotificationPolicy because the request is
            invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the NotificationPolicy because there is a conflict
            with an existing NotificationPolicy.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/notification-policies/{slug}:
    get:
      tags:
      - NotificationPolicy
      operationId: ReadNotificationPolicy
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadNotificationPolicyResponse'
        "404":
          description: Cannot read the NotificationPolicy because the slug does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - NotificationPolicy
      operationId: UpdateNotificationPolicy
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateNotificationPolicyBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated NotificationPolicy.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateNotificationPolicyResponse'
        "400":
          description: Cannot update the NotificationPolicy because the request is
            invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the NotificationPolicy because the slug does
            not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the NotificationPolicy because there is a conflict
            with an existing NotificationPolicy.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - NotificationPolicy
      operationId: DeleteNotificationPolicy
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteNotificationPolicyResponse'
        "400":
          description: Cannot delete the NotificationPolicy because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the NotificationPolicy because the slug does
            not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/notifiers:
    get:
      tags:
      - Notifier
      operationId: ListNotifiers
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any Notifier with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any Notifier with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListNotifiersResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - Notifier
      operationId: CreateNotifier
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateNotifierRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created Notifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateNotifierResponse'
        "400":
          description: Cannot create the Notifier because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the Notifier because there is a conflict with
            an existing Notifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/notifiers/{slug}:
    get:
      tags:
      - Notifier
      operationId: ReadNotifier
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadNotifierResponse'
        "404":
          description: Cannot read the Notifier because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - Notifier
      operationId: UpdateNotifier
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateNotifierBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated Notifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateNotifierResponse'
        "400":
          description: Cannot update the Notifier because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the Notifier because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the Notifier because there is a conflict with
            an existing Notifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - Notifier
      operationId: DeleteNotifier
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteNotifierResponse'
        "400":
          description: Cannot delete the Notifier because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the Notifier because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/otel-metrics-ingestion:
    get:
      tags:
      - OtelMetricsIngestion
      operationId: ReadOtelMetricsIngestion
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadOtelMetricsIngestionResponse'
        "404":
          description: Cannot read the OtelMetricsIngestion because OtelMetricsIngestion
            has not been created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - OtelMetricsIngestion
      operationId: UpdateOtelMetricsIngestion
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1UpdateOtelMetricsIngestionRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the updated OtelMetricsIngestion.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateOtelMetricsIngestionResponse'
        "400":
          description: Cannot update the OtelMetricsIngestion because the request
            is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the OtelMetricsIngestion because OtelMetricsIngestion
            has not been created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    post:
      tags:
      - OtelMetricsIngestion
      operationId: CreateOtelMetricsIngestion
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateOtelMetricsIngestionRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created OtelMetricsIngestion.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateOtelMetricsIngestionResponse'
        "400":
          description: Cannot create the OtelMetricsIngestion because the request
            is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the OtelMetricsIngestion because there is a conflict
            with an existing OtelMetricsIngestion.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - OtelMetricsIngestion
      operationId: DeleteOtelMetricsIngestion
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteOtelMetricsIngestionResponse'
        "400":
          description: Cannot delete the OtelMetricsIngestion because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the OtelMetricsIngestion because the slug does
            not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/recording-rules:
    get:
      tags:
      - RecordingRule
      operationId: ListRecordingRules
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any RecordingRule with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any RecordingRule with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: bucket_slugs
        in: query
        description: The execution_groups filter cannot be used when a bucket_slug
          filter is provided.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: execution_groups
        in: query
        description: The bucket_slugs filter cannot be used when an execution_group
          filter is provided.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListRecordingRulesResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - RecordingRule
      operationId: CreateRecordingRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateRecordingRuleRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created RecordingRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateRecordingRuleResponse'
        "400":
          description: Cannot create the RecordingRule because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the RecordingRule because there is a conflict
            with an existing RecordingRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/recording-rules/{slug}:
    get:
      tags:
      - RecordingRule
      operationId: ReadRecordingRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadRecordingRuleResponse'
        "404":
          description: Cannot read the RecordingRule because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - RecordingRule
      operationId: UpdateRecordingRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateRecordingRuleBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated RecordingRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateRecordingRuleResponse'
        "400":
          description: Cannot update the RecordingRule because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the RecordingRule because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the RecordingRule because there is a conflict
            with an existing RecordingRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - RecordingRule
      operationId: DeleteRecordingRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteRecordingRuleResponse'
        "400":
          description: Cannot delete the RecordingRule because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the RecordingRule because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/resource-pools:
    get:
      tags:
      - ResourcePools
      operationId: ReadResourcePools
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadResourcePoolsResponse'
        "404":
          description: Cannot read the ResourcePools because ResourcePools has not
            been created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - ResourcePools
      operationId: UpdateResourcePools
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1UpdateResourcePoolsRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the updated ResourcePools.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateResourcePoolsResponse'
        "400":
          description: Cannot update the ResourcePools because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the ResourcePools because ResourcePools has not
            been created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    post:
      tags:
      - ResourcePools
      description: ResourcePools CRUD (subset for singleton objects)
      operationId: CreateResourcePools
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateResourcePoolsRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created ResourcePools.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateResourcePoolsResponse'
        "400":
          description: Cannot create the ResourcePools because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the ResourcePools because there is a conflict
            with an existing ResourcePools.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - ResourcePools
      operationId: DeleteResourcePools
      parameters:
      - name: dry_run
        in: query
        schema:
          type: boolean
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteResourcePoolsResponse'
        "400":
          description: Cannot delete the ResourcePools because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the ResourcePools because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/rollup-rules:
    get:
      tags:
      - RollupRule
      operationId: ListRollupRules
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any RollupRule with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any RollupRule with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: bucket_slugs
        in: query
        description: "Filters results by bucket_slug, where any RollupRule with a\
          \ matching bucket_slug in the given list (and matches all other filters)\
          \ is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListRollupRulesResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - RollupRule
      operationId: CreateRollupRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateRollupRuleRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created RollupRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateRollupRuleResponse'
        "400":
          description: Cannot create the RollupRule because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the RollupRule because there is a conflict with
            an existing RollupRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/rollup-rules/{slug}:
    get:
      tags:
      - RollupRule
      operationId: ReadRollupRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadRollupRuleResponse'
        "404":
          description: Cannot read the RollupRule because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - RollupRule
      operationId: UpdateRollupRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateRollupRuleBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated RollupRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateRollupRuleResponse'
        "400":
          description: Cannot update the RollupRule because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the RollupRule because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the RollupRule because there is a conflict with
            an existing RollupRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - RollupRule
      operationId: DeleteRollupRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteRollupRuleResponse'
        "400":
          description: Cannot delete the RollupRule because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the RollupRule because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/service-accounts:
    get:
      tags:
      - ServiceAccount
      operationId: ListServiceAccounts
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any ServiceAccount with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any ServiceAccount with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListServiceAccountsResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - ServiceAccount
      operationId: CreateServiceAccount
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateServiceAccountRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created ServiceAccount.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateServiceAccountResponse'
        "400":
          description: Cannot create the ServiceAccount because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the ServiceAccount because there is a conflict
            with an existing ServiceAccount.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/service-accounts/{slug}:
    get:
      tags:
      - ServiceAccount
      operationId: ReadServiceAccount
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadServiceAccountResponse'
        "404":
          description: Cannot read the ServiceAccount because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    delete:
      tags:
      - ServiceAccount
      operationId: DeleteServiceAccount
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteServiceAccountResponse'
        "400":
          description: Cannot delete the ServiceAccount because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the ServiceAccount because the slug does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/services/{slug}:
    get:
      tags:
      - Service
      operationId: ReadService
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadServiceResponse'
        "404":
          description: Cannot read the Service because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/slos:
    get:
      tags:
      - SLO
      operationId: ListSLOs
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any SLO with a matching slug\
          \ in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any SLO with a matching name\
          \ in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: collection_slugs
        in: query
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: service_slugs
        in: query
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListSLOsResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - SLO
      operationId: CreateSLO
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateSLORequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created SLO.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateSLOResponse'
        "400":
          description: Cannot create the SLO because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the SLO because there is a conflict with an existing
            SLO.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/slos/{slug}:
    get:
      tags:
      - SLO
      operationId: ReadSLO
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadSLOResponse'
        "404":
          description: Cannot read the SLO because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - SLO
      operationId: UpdateSLO
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateSLOBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated SLO.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateSLOResponse'
        "400":
          description: Cannot update the SLO because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the SLO because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the SLO because there is a conflict with an existing
            SLO.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - SLO
      operationId: DeleteSLO
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteSLOResponse'
        "400":
          description: Cannot delete the SLO because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the SLO because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/teams:
    get:
      tags:
      - Team
      operationId: ListTeams
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any Team with a matching slug\
          \ in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any Team with a matching name\
          \ in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListTeamsResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - Team
      operationId: CreateTeam
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateTeamRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created Team.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateTeamResponse'
        "400":
          description: Cannot create the Team because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the Team because there is a conflict with an
            existing Team.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/teams/{slug}:
    get:
      tags:
      - Team
      operationId: ReadTeam
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadTeamResponse'
        "404":
          description: Cannot read the Team because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - Team
      operationId: UpdateTeam
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateTeamBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated Team.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateTeamResponse'
        "400":
          description: Cannot update the Team because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the Team because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the Team because there is a conflict with an
            existing Team.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - Team
      operationId: DeleteTeam
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteTeamResponse'
        "400":
          description: Cannot delete the Team because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the Team because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/trace-behavior-config:
    get:
      tags:
      - TraceBehaviorConfig
      operationId: ReadTraceBehaviorConfig
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadTraceBehaviorConfigResponse'
        "404":
          description: Cannot read the TraceBehaviorConfig because TraceBehaviorConfig
            has not been created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - TraceBehaviorConfig
      operationId: UpdateTraceBehaviorConfig
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1UpdateTraceBehaviorConfigRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the updated TraceBehaviorConfig.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateTraceBehaviorConfigResponse'
        "400":
          description: Cannot update the TraceBehaviorConfig because the request is
            invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the TraceBehaviorConfig because TraceBehaviorConfig
            has not been created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    post:
      tags:
      - TraceBehaviorConfig
      operationId: CreateTraceBehaviorConfig
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateTraceBehaviorConfigRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created TraceBehaviorConfig.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateTraceBehaviorConfigResponse'
        "400":
          description: Cannot create the TraceBehaviorConfig because the request is
            invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the TraceBehaviorConfig because there is a conflict
            with an existing TraceBehaviorConfig.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - TraceBehaviorConfig
      operationId: DeleteTraceBehaviorConfig
      parameters:
      - name: dry_run
        in: query
        schema:
          type: boolean
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteTraceBehaviorConfigResponse'
        "400":
          description: Cannot delete the TraceBehaviorConfig because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the TraceBehaviorConfig because the slug does
            not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/trace-behaviors:
    get:
      tags:
      - TraceBehavior
      operationId: ListTraceBehaviors
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any TraceBehavior with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any TraceBehavior with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListTraceBehaviorsResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - TraceBehavior
      operationId: CreateTraceBehavior
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateTraceBehaviorRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created TraceBehavior.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateTraceBehaviorResponse'
        "400":
          description: Cannot create the TraceBehavior because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the TraceBehavior because there is a conflict
            with an existing TraceBehavior.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/trace-behaviors/{slug}:
    get:
      tags:
      - TraceBehavior
      operationId: ReadTraceBehavior
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadTraceBehaviorResponse'
        "404":
          description: Cannot read the TraceBehavior because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - TraceBehavior
      operationId: UpdateTraceBehavior
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateTraceBehaviorBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated TraceBehavior.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateTraceBehaviorResponse'
        "400":
          description: Cannot update the TraceBehavior because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the TraceBehavior because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the TraceBehavior because there is a conflict
            with an existing TraceBehavior.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - TraceBehavior
      operationId: DeleteTraceBehavior
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteTraceBehaviorResponse'
        "400":
          description: Cannot delete the TraceBehavior because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the TraceBehavior because the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/trace-jaeger-remote-sampling-strategies:
    get:
      tags:
      - TraceJaegerRemoteSamplingStrategy
      operationId: ListTraceJaegerRemoteSamplingStrategies
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any TraceJaegerRemoteSamplingStrategy\
          \ with a matching slug in the given list (and matches all other filters)\
          \ is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any TraceJaegerRemoteSamplingStrategy\
          \ with a matching name in the given list (and matches all other filters)\
          \ is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: service_names
        in: query
        description: "Filters results by service_name, where any TraceJaegerRemoteSamplingStrategy\
          \ with a matching service_name in the given list (and matches all other\
          \ filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: name_or_service_contains
        in: query
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListTraceJaegerRemoteSamplingStrategiesResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - TraceJaegerRemoteSamplingStrategy
      operationId: CreateTraceJaegerRemoteSamplingStrategy
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateTraceJaegerRemoteSamplingStrategyRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created TraceJaegerRemoteSamplingStrategy.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateTraceJaegerRemoteSamplingStrategyResponse'
        "400":
          description: Cannot create the TraceJaegerRemoteSamplingStrategy because
            the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the TraceJaegerRemoteSamplingStrategy because
            there is a conflict with an existing TraceJaegerRemoteSamplingStrategy.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/trace-jaeger-remote-sampling-strategies/{slug}:
    get:
      tags:
      - TraceJaegerRemoteSamplingStrategy
      operationId: ReadTraceJaegerRemoteSamplingStrategy
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadTraceJaegerRemoteSamplingStrategyResponse'
        "404":
          description: Cannot read the TraceJaegerRemoteSamplingStrategy because the
            slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - TraceJaegerRemoteSamplingStrategy
      operationId: UpdateTraceJaegerRemoteSamplingStrategy
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateTraceJaegerRemoteSamplingStrategyBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated TraceJaegerRemoteSamplingStrategy.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateTraceJaegerRemoteSamplingStrategyResponse'
        "400":
          description: Cannot update the TraceJaegerRemoteSamplingStrategy because
            the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the TraceJaegerRemoteSamplingStrategy because
            the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the TraceJaegerRemoteSamplingStrategy because
            there is a conflict with an existing TraceJaegerRemoteSamplingStrategy.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - TraceJaegerRemoteSamplingStrategy
      operationId: DeleteTraceJaegerRemoteSamplingStrategy
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteTraceJaegerRemoteSamplingStrategyResponse'
        "400":
          description: Cannot delete the TraceJaegerRemoteSamplingStrategy because
            it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the TraceJaegerRemoteSamplingStrategy because
            the slug does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/trace-metrics-rules:
    get:
      tags:
      - TraceMetricsRule
      operationId: ListTraceMetricsRules
      parameters:
      - name: page.max_size
        in: query
        description: |-
          Page size preference (i.e. how many items are returned in the next
          page). If zero, the server will use a default. Regardless of what size
          is given, clients must never assume how many items will be returned.
        schema:
          type: integer
          format: int64
      - name: page.token
        in: query
        description: |-
          Opaque page token identifying which page to request. An empty token
          identifies the first page.
        schema:
          type: string
      - name: slugs
        in: query
        description: "Filters results by slug, where any TraceMetricsRule with a matching\
          \ slug in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: names
        in: query
        description: "Filters results by name, where any TraceMetricsRule with a matching\
          \ name in the given list (and matches all other filters) is returned."
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: metric_names
        in: query
        description: Get trace metric rules by name.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ListTraceMetricsRulesResponse'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    post:
      tags:
      - TraceMetricsRule
      description: |-
        ***
        Trace Metrics Rules
        ***
      operationId: CreateTraceMetricsRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateTraceMetricsRuleRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created TraceMetricsRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateTraceMetricsRuleResponse'
        "400":
          description: Cannot create the TraceMetricsRule because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the TraceMetricsRule because there is a conflict
            with an existing TraceMetricsRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
  /api/v1/config/trace-metrics-rules/{slug}:
    get:
      tags:
      - TraceMetricsRule
      operationId: ReadTraceMetricsRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadTraceMetricsRuleResponse'
        "404":
          description: Cannot read the TraceMetricsRule because the slug does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - TraceMetricsRule
      operationId: UpdateTraceMetricsRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigV1UpdateTraceMetricsRuleBody'
        required: true
      responses:
        "200":
          description: A successful response containing the updated TraceMetricsRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateTraceMetricsRuleResponse'
        "400":
          description: Cannot update the TraceMetricsRule because the request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the TraceMetricsRule because the slug does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot update the TraceMetricsRule because there is a conflict
            with an existing TraceMetricsRule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - TraceMetricsRule
      operationId: DeleteTraceMetricsRule
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteTraceMetricsRuleResponse'
        "400":
          description: Cannot delete the TraceMetricsRule because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the TraceMetricsRule because the slug does not
            exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
  /api/v1/config/trace-tail-sampling-rules:
    get:
      tags:
      - TraceTailSamplingRules
      operationId: ReadTraceTailSamplingRules
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1ReadTraceTailSamplingRulesResponse'
        "404":
          description: Cannot read the TraceTailSamplingRules because TraceTailSamplingRules
            has not been created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
    put:
      tags:
      - TraceTailSamplingRules
      operationId: UpdateTraceTailSamplingRules
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1UpdateTraceTailSamplingRulesRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the updated TraceTailSamplingRules.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1UpdateTraceTailSamplingRulesResponse'
        "400":
          description: Cannot update the TraceTailSamplingRules because the request
            is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot update the TraceTailSamplingRules because TraceTailSamplingRules
            has not been created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    post:
      tags:
      - TraceTailSamplingRules
      description: TraceTailSamplingRules CRUD (subset for singleton objects)
      operationId: CreateTraceTailSamplingRules
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/configv1CreateTraceTailSamplingRulesRequest'
        required: true
      responses:
        "200":
          description: A successful response containing the created TraceTailSamplingRules.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1CreateTraceTailSamplingRulesResponse'
        "400":
          description: Cannot create the TraceTailSamplingRules because the request
            is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "409":
          description: Cannot create the TraceTailSamplingRules because there is a
            conflict with an existing TraceTailSamplingRules.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - TraceTailSamplingRules
      operationId: DeleteTraceTailSamplingRules
      parameters:
      - name: dry_run
        in: query
        schema:
          type: boolean
      responses:
        "200":
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configv1DeleteTraceTailSamplingRulesResponse'
        "400":
          description: Cannot delete the TraceTailSamplingRules because it is in use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "404":
          description: Cannot delete the TraceTailSamplingRules because the slug does
            not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        "500":
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiError'
        default:
          description: An undefined error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/genericError'
components:
  schemas:
    AllocationFixedValue:
      type: object
      properties:
        license:
          $ref: '#/components/schemas/ResourcePoolsLicense'
        value:
          type: string
          format: int64
    AllocationThreshold:
      type: object
      properties:
        percent_of_pool_allocation:
          type: number
          description: |-
            Threshold expressed as a percent of the license allocated to a pool.
            A value of `100` represents a threshold that is the pool's full allocation.
            Values over `100` indicate thresholds that exceed the pool's allocation.
            For example, a value of `50` represents a threshold that is half the pool's
            allocation and a value of `200` represents a threshold that is double the
            pool's allocation.
          format: double
        fixed_value:
          type: string
          description: Threshold expressed as a fixed value of the license.
          format: int64
    AllocationThresholds:
      title: |-
        Thresholds define strict quota limits for each metrics license.
        **This feature is part of pre-release functionality and is subject to change.**
      type: object
      properties:
        license:
          $ref: '#/components/schemas/ResourcePoolsLicense'
        all_priorities:
          $ref: '#/components/schemas/AllocationThreshold'
        default_and_low_priority:
          $ref: '#/components/schemas/AllocationThreshold'
        low_priority:
          $ref: '#/components/schemas/AllocationThreshold'
    ConditionOp:
      type: string
      enum:
      - GEQ
      - GT
      - LEQ
      - LT
      - EQ
      - NEQ
      - EXISTS
      - NOT_EXISTS
    ConfigV1UpdateBucketBody:
      type: object
      properties:
        bucket:
          $ref: '#/components/schemas/configv1Bucket'
        create_if_missing:
          type: boolean
          description: "If true, the Bucket will be created if it does not already\
            \ exist, identified by slug. If false, an error will be returned if the\
            \ Bucket does not already exist."
        dry_run:
          type: boolean
          description: "If true, the Bucket isn't created or updated, and no response\
            \ Bucket will be returned. The response will return an error if the given\
            \ Bucket is invalid."
    ConfigV1UpdateClassicDashboardBody:
      type: object
      properties:
        classic_dashboard:
          $ref: '#/components/schemas/configv1GrafanaDashboard'
        create_if_missing:
          type: boolean
          description: "If true, the GrafanaDashboard will be created if it does not\
            \ already exist, identified by slug. If false, an error will be returned\
            \ if the GrafanaDashboard does not already exist."
        dry_run:
          type: boolean
          description: "If true, the GrafanaDashboard isn't created or updated, and\
            \ no response GrafanaDashboard will be returned. The response will return\
            \ an error if the given GrafanaDashboard is invalid."
    ConfigV1UpdateCollectionBody:
      type: object
      properties:
        collection:
          $ref: '#/components/schemas/configv1Collection'
        create_if_missing:
          type: boolean
          description: "If true, the Collection will be created if it does not already\
            \ exist, identified by slug. If false, an error will be returned if the\
            \ Collection does not already exist."
        dry_run:
          type: boolean
          description: "If true, the Collection isn't created or updated, and no response\
            \ Collection will be returned. The response will return an error if the\
            \ given Collection is invalid."
    ConfigV1UpdateDashboardBody:
      type: object
      properties:
        dashboard:
          $ref: '#/components/schemas/configv1Dashboard'
        create_if_missing:
          type: boolean
          description: "If true, the Dashboard will be created if it does not already\
            \ exist, identified by slug. If false, an error will be returned if the\
            \ Dashboard does not already exist."
        dry_run:
          type: boolean
          description: "If true, the Dashboard isn't created or updated, and no response\
            \ Dashboard will be returned. The response will return an error if the\
            \ given Dashboard is invalid."
    ConfigV1UpdateDatasetBody:
      type: object
      properties:
        dataset:
          $ref: '#/components/schemas/configv1Dataset'
        create_if_missing:
          type: boolean
          description: "If true, the Dataset will be created if it does not already\
            \ exist, identified by slug. If false, an error will be returned if the\
            \ Dataset does not already exist."
        dry_run:
          type: boolean
          description: "If true, the Dataset isn't created or updated, and no response\
            \ Dataset will be returned. The response will return an error if the given\
            \ Dataset is invalid."
    ConfigV1UpdateDerivedLabelBody:
      type: object
      properties:
        derived_label:
          $ref: '#/components/schemas/configv1DerivedLabel'
        create_if_missing:
          type: boolean
          description: "If true, the DerivedLabel will be created if it does not already\
            \ exist, identified by slug. If false, an error will be returned if the\
            \ DerivedLabel does not already exist."
        dry_run:
          type: boolean
          description: "If true, the DerivedLabel isn't created or updated, and no\
            \ response DerivedLabel will be returned. The response will return an\
            \ error if the given DerivedLabel is invalid."
    ConfigV1UpdateDerivedMetricBody:
      type: object
      properties:
        derived_metric:
          $ref: '#/components/schemas/configv1DerivedMetric'
        create_if_missing:
          type: boolean
          description: "If true, the DerivedMetric will be created if it does not\
            \ already exist, identified by slug. If false, an error will be returned\
            \ if the DerivedMetric does not already exist."
        dry_run:
          type: boolean
          description: "If true, the DerivedMetric isn't created or updated, and no\
            \ response DerivedMetric will be returned. The response will return an\
            \ error if the given DerivedMetric is invalid."
    ConfigV1UpdateDropRuleBody:
      type: object
      properties:
        drop_rule:
          $ref: '#/components/schemas/configv1DropRule'
        create_if_missing:
          type: boolean
          description: "If true, the DropRule will be created if it does not already\
            \ exist, identified by slug. If false, an error will be returned if the\
            \ DropRule does not already exist."
        dry_run:
          type: boolean
          description: "If true, the DropRule isn't created or updated, and no response\
            \ DropRule will be returned. The response will return an error if the\
            \ given DropRule is invalid."
    ConfigV1UpdateGcpMetricsIntegrationBody:
      type: object
      properties:
        gcp_metrics_integration:
          $ref: '#/components/schemas/configv1GcpMetricsIntegration'
        create_if_missing:
          type: boolean
          description: "If true, the GcpMetricsIntegration will be created if it does\
            \ not already exist, identified by slug. If false, an error will be returned\
            \ if the GcpMetricsIntegration does not already exist."
        dry_run:
          type: boolean
          description: "If true, the GcpMetricsIntegration isn't created or updated,\
            \ and no response GcpMetricsIntegration will be returned. The response\
            \ will return an error if the given GcpMetricsIntegration is invalid."
    ConfigV1UpdateGrafanaDashboardBody:
      type: object
      properties:
        grafana_dashboard:
          $ref: '#/components/schemas/configv1GrafanaDashboard'
        create_if_missing:
          type: boolean
          description: "If true, the GrafanaDashboard will be created if it does not\
            \ already exist, identified by slug. If false, an error will be returned\
            \ if the GrafanaDashboard does not already exist."
        dry_run:
          type: boolean
          description: "If true, the GrafanaDashboard isn't created or updated, and\
            \ no response GrafanaDashboard will be returned. The response will return\
            \ an error if the given GrafanaDashboard is invalid."
    ConfigV1UpdateLogScaleActionBody:
      type: object
      properties:
        log_scale_action:
          $ref: '#/components/schemas/configv1LogScaleAction'
        create_if_missing:
          type: boolean
          description: "If true, the LogScaleAction will be created if it does not\
            \ already exist, identified by slug. If false, an error will be returned\
            \ if the LogScaleAction does not already exist."
        dry_run:
          type: boolean
          description: "If true, the LogScaleAction isn't created or updated, and\
            \ no response LogScaleAction will be returned. The response will return\
            \ an error if the given LogScaleAction is invalid."
    ConfigV1UpdateLogScaleAlertBody:
      type: object
      properties:
        log_scale_alert:
          $ref: '#/components/schemas/configv1LogScaleAlert'
        create_if_missing:
          type: boolean
          description: "If true, the LogScaleAlert will be created if it does not\
            \ already exist, identified by slug. If false, an error will be returned\
            \ if the LogScaleAlert does not already exist."
        dry_run:
          type: boolean
          description: "If true, the LogScaleAlert isn't created or updated, and no\
            \ response LogScaleAlert will be returned. The response will return an\
            \ error if the given LogScaleAlert is invalid."
    ConfigV1UpdateMappingRuleBody:
      type: object
      properties:
        mapping_rule:
          $ref: '#/components/schemas/configv1MappingRule'
        create_if_missing:
          type: boolean
          description: "If true, the MappingRule will be created if it does not already\
            \ exist, identified by slug. If false, an error will be returned if the\
            \ MappingRule does not already exist."
        dry_run:
          type: boolean
          description: "If true, the MappingRule isn't created or updated, and no\
            \ response MappingRule will be returned. The response will return an error\
            \ if the given MappingRule is invalid."
    ConfigV1UpdateMonitorBody:
      type: object
      properties:
        monitor:
          $ref: '#/components/schemas/configv1Monitor'
        create_if_missing:
          type: boolean
          description: "If true, the Monitor will be created if it does not already\
            \ exist, identified by slug. If false, an error will be returned if the\
            \ Monitor does not already exist."
        dry_run:
          type: boolean
          description: "If true, the Monitor isn't created or updated, and no response\
            \ Monitor will be returned. The response will return an error if the given\
            \ Monitor is invalid."
    ConfigV1UpdateMutingRuleBody:
      type: object
      properties:
        muting_rule:
          $ref: '#/components/schemas/configv1MutingRule'
        create_if_missing:
          type: boolean
          description: "If true, the MutingRule will be created if it does not already\
            \ exist, identified by slug. If false, an error will be returned if the\
            \ MutingRule does not already exist."
        dry_run:
          type: boolean
          description: "If true, the MutingRule isn't created or updated, and no response\
            \ MutingRule will be returned. The response will return an error if the\
            \ given MutingRule is invalid."
    ConfigV1UpdateNotificationPolicyBody:
      type: object
      properties:
        notification_policy:
          $ref: '#/components/schemas/configv1NotificationPolicy'
        create_if_missing:
          type: boolean
          description: "If true, the NotificationPolicy will be created if it does\
            \ not already exist, identified by slug. If false, an error will be returned\
            \ if the NotificationPolicy does not already exist."
        dry_run:
          type: boolean
          description: "If true, the NotificationPolicy isn't created or updated,\
            \ and no response NotificationPolicy will be returned. The response will\
            \ return an error if the given NotificationPolicy is invalid."
    ConfigV1UpdateNotifierBody:
      type: object
      properties:
        notifier:
          $ref: '#/components/schemas/configv1Notifier'
        create_if_missing:
          type: boolean
          description: "If true, the Notifier will be created if it does not already\
            \ exist, identified by slug. If false, an error will be returned if the\
            \ Notifier does not already exist."
        dry_run:
          type: boolean
          description: "If true, the Notifier isn't created or updated, and no response\
            \ Notifier will be returned. The response will return an error if the\
            \ given Notifier is invalid."
    ConfigV1UpdateRecordingRuleBody:
      type: object
      properties:
        recording_rule:
          $ref: '#/components/schemas/configv1RecordingRule'
        create_if_missing:
          type: boolean
          description: "If true, the RecordingRule will be created if it does not\
            \ already exist, identified by slug. If false, an error will be returned\
            \ if the RecordingRule does not already exist."
        dry_run:
          type: boolean
          description: "If true, the RecordingRule isn't created or updated, and no\
            \ response RecordingRule will be returned. The response will return an\
            \ error if the given RecordingRule is invalid."
    ConfigV1UpdateRollupRuleBody:
      type: object
      properties:
        rollup_rule:
          $ref: '#/components/schemas/configv1RollupRule'
        create_if_missing:
          type: boolean
          description: "If true, the RollupRule will be created if it does not already\
            \ exist, identified by slug. If false, an error will be returned if the\
            \ RollupRule does not already exist."
        dry_run:
          type: boolean
          description: "If true, the RollupRule isn't created or updated, and no response\
            \ RollupRule will be returned. The response will return an error if the\
            \ given RollupRule is invalid."
    ConfigV1UpdateSLOBody:
      type: object
      properties:
        slo:
          $ref: '#/components/schemas/configv1SLO'
        create_if_missing:
          type: boolean
          description: "If true, the SLO will be created if it does not already exist,\
            \ identified by slug. If false, an error will be returned if the SLO does\
            \ not already exist."
        dry_run:
          type: boolean
          description: "If true, the SLO isn't created or updated, and no response\
            \ SLO will be returned. The response will return an error if the given\
            \ SLO is invalid."
    ConfigV1UpdateTeamBody:
      type: object
      properties:
        team:
          $ref: '#/components/schemas/configv1Team'
        create_if_missing:
          type: boolean
          description: "If true, the Team will be created if it does not already exist,\
            \ identified by slug. If false, an error will be returned if the Team\
            \ does not already exist."
        dry_run:
          type: boolean
          description: "If true, the Team isn't created or updated, and no response\
            \ Team will be returned. The response will return an error if the given\
            \ Team is invalid."
    ConfigV1UpdateTraceBehaviorBody:
      type: object
      properties:
        trace_behavior:
          $ref: '#/components/schemas/configv1TraceBehavior'
        create_if_missing:
          type: boolean
          description: "If true, the TraceBehavior will be created if it does not\
            \ already exist, identified by slug. If false, an error will be returned\
            \ if the TraceBehavior does not already exist."
        dry_run:
          type: boolean
          description: "If true, the TraceBehavior isn't created or updated, and no\
            \ response TraceBehavior will be returned. The response will return an\
            \ error if the given TraceBehavior is invalid."
    ConfigV1UpdateTraceJaegerRemoteSamplingStrategyBody:
      type: object
      properties:
        trace_jaeger_remote_sampling_strategy:
          $ref: '#/components/schemas/configv1TraceJaegerRemoteSamplingStrategy'
        create_if_missing:
          type: boolean
          description: "If true, the TraceJaegerRemoteSamplingStrategy will be created\
            \ if it does not already exist, identified by slug. If false, an error\
            \ will be returned if the TraceJaegerRemoteSamplingStrategy does not already\
            \ exist."
        dry_run:
          type: boolean
          description: "If true, the TraceJaegerRemoteSamplingStrategy isn't created\
            \ or updated, and no response TraceJaegerRemoteSamplingStrategy will be\
            \ returned. The response will return an error if the given TraceJaegerRemoteSamplingStrategy\
            \ is invalid."
    ConfigV1UpdateTraceMetricsRuleBody:
      type: object
      properties:
        trace_metrics_rule:
          $ref: '#/components/schemas/configv1TraceMetricsRule'
        create_if_missing:
          type: boolean
          description: "If true, the TraceMetricsRule will be created if it does not\
            \ already exist, identified by slug. If false, an error will be returned\
            \ if the TraceMetricsRule does not already exist."
        dry_run:
          type: boolean
          description: "If true, the TraceMetricsRule isn't created or updated, and\
            \ no response TraceMetricsRule will be returned. The response will return\
            \ an error if the given TraceMetricsRule is invalid."
    ConstructedLabelValueDefinition:
      type: object
      properties:
        value:
          type: string
        filters:
          type: array
          items:
            $ref: '#/components/schemas/configv1LabelFilter'
    DatasetDatasetConfiguration:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/DatasetDatasetType'
        trace_dataset:
          $ref: '#/components/schemas/configv1TraceDataset'
        log_dataset:
          $ref: '#/components/schemas/configv1LogDataset'
    DatasetDatasetType:
      type: string
      enum:
      - TRACES
      - LOGS
    DefinitionBurnRateDefinition:
      type: object
      properties:
        window:
          type: string
        budget:
          type: number
          description: |-
            The amount of allowed errors during a given time window,
            expressed as a percentage of the error budget. Must be a
            value between `0.0` and `100.0`, exclusive.
          format: double
        severity:
          type: string
          description: "Severity may only be one of: critical, warn."
        labels:
          type: object
          additionalProperties:
            type: string
          description: |-
            Labels to attach when this burn rate triggers. If you add these labels to
            `signal_groupings`, you can route them in the notification policy, and
            can route different burn rates to other notifiers.
    DefinitionTimeWindow:
      type: object
      properties:
        duration:
          type: string
          description: "duration as a string in the format \"28d\" or \"24h\", etc."
    DerivedLabelMetricLabel:
      type: object
      properties:
        constructed_label:
          $ref: '#/components/schemas/MetricLabelConstructedLabel'
        mapping_label:
          $ref: '#/components/schemas/MetricLabelMappingLabel'
    DerivedMetricQuery:
      type: object
      properties:
        prometheus_expr:
          type: string
          description: |-
            Required PromQL expression which the derived metric executes. Should
            include all configured variables.
          example: "cpu_usage{$service, $instance} / sum(cpu_usage{$service})"
        variables:
          type: array
          description: |-
            Optional variables which may be used in the derived metric as label
            selectors.
          items:
            $ref: '#/components/schemas/DerivedMetricVariable'
    DerivedMetricSelector:
      type: object
      properties:
        labels:
          type: array
          description: |-
            Labels which must match in the derived metric usage for the selector to
            match.
          items:
            $ref: '#/components/schemas/configv1DerivedMetricLabelMatcher'
    DerivedMetricSelectorQuery:
      type: object
      properties:
        selector:
          $ref: '#/components/schemas/DerivedMetricSelector'
        query:
          $ref: '#/components/schemas/DerivedMetricQuery'
    DerivedMetricVariable:
      type: object
      properties:
        name:
          type: string
          description: Required name of the variable.
          example: service
        default_prometheus_selector:
          type: string
          description: |-
            Required PromQL label selector which must match the given variable name.
            If the variable is not specified in the derived metric usage, then this
            default selector is used.
          example: service=~".*"
    DropRuleConditionalRateBasedDrop:
      type: object
      properties:
        enabled:
          type: boolean
          description: Enables rate-based metric dropping.
        rate_limit_threshold:
          type: number
          description: |-
            Percentage of the licensed limit reached in order to activate the drop
            rule, between 0 and 100.
          format: double
        activated_drop_duration_secs:
          type: integer
          description: |-
            Once activated, activated_drop_duration_secs defines how long the drop
            rule stays activated before rechecking against the rate_limit_threshold.
          format: int32
      description: |-
        No longer supported and cannot be used.
        Defines behavior for conditional drop policies.
    DropRuleValueBasedDrop:
      type: object
      properties:
        enabled:
          type: boolean
          description: Enables dropping metrics based on a set value.
        target_drop_value:
          type: number
          description: The target data point value at which to drop metrics.
          format: double
    GcpMetricsIntegrationMetricGroup:
      type: object
      properties:
        project_id:
          type: string
          description: Project ID that has access to the metric data.
        prefixes:
          type: array
          description: List of Gcp metric prefixes to ingest.
          items:
            type: string
    GraphiteLabelPolicyReplace:
      type: object
      properties:
        name:
          type: string
          description: |-
            Required name of the label whose value should be replaced. Only
            `__gX__` labels are allowed (aka positional Graphite labels).
          example: __g1__
        new_value:
          type: string
          description: Required new value of the replaced label.
          example: ALL_HOSTS
    GroupByGroupByKey:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/GroupByKeyGroupByKeyType'
        named_key:
          type: string
          description: "For named KeyTypes (e.g. span tags), the name of the key to\
            \ group by."
      description: GroupByKey describes a key to group by.
    GroupByKeyGroupByKeyType:
      type: string
      description: |2-
         - SERVICE: Group by service.
         - OPERATION: Group by operation.
         - TAG: Group by span tag.
      enum:
      - SERVICE
      - OPERATION
      - TAG
    HTTPConfigBasicAuth:
      type: object
      properties:
        username:
          type: string
        password:
          type: string
    HTTPConfigTLSConfig:
      type: object
      properties:
        insecure_skip_verify:
          type: boolean
          description: Disables validation of the server certificate.
    ListMutingRulesRequestState:
      type: string
      enum:
      - PENDING
      - ACTIVE
      - EXPIRED
    LogAllocationConfigDatasetAllocation:
      type: object
      properties:
        dataset_slug:
          type: string
          description: Slug of the dataset.
        allocation:
          $ref: '#/components/schemas/configv1LogAllocationConfigAllocation'
        priorities:
          $ref: '#/components/schemas/LogAllocationConfigHighLowPriorities'
    LogAllocationConfigDefaultDataset:
      type: object
      properties:
        allocation:
          $ref: '#/components/schemas/configv1LogAllocationConfigAllocation'
        priorities:
          $ref: '#/components/schemas/LogAllocationConfigHighLowPriorities'
      description: Configuration for default dataset.
    LogAllocationConfigHighLowPriorities:
      type: object
      properties:
        high_priority_filters:
          type: array
          description: |-
            A list of search filters defining which logs are considered high priority in
            this dataset. Filters are combined as OR statements so only one filter needs
            to match.
          items:
            $ref: '#/components/schemas/configv1LogSearchFilter'
        low_priority_filters:
          type: array
          description: |-
            A list of search filters defining which logs are considered low priority in
            this dataset. Filters are combined as OR statements so only one filter needs
            to match.
          items:
            $ref: '#/components/schemas/configv1LogSearchFilter'
      description: |-
        Defines explicit high and low priority match criteria to specify which logs to
        drop first (low) and last (high). Anything not matched by either set of rules is
        considered default priority and is dropped after low priority but before high
        priority data.
    LogScaleActionActionType:
      type: string
      enum:
      - EMAIL
      - HUMIO_REPO
      - OPS_GENIE
      - PAGER_DUTY
      - SLACK
      - SLACK_POST_MESSAGE
      - VICTOR_OPS
      - WEBHOOK
      - UPLOAD_FILE
    LogScaleActionEmailAction:
      type: object
      properties:
        recipients:
          type: array
          description: List of email addresses to send an email to.
          items:
            type: string
        subject_template:
          type: string
          description: Subject of the email. Can be templated with values from the
            query result.
        body_template:
          type: string
          description: Body of the email. Can be templated with values from the query
            result.
        attach_csv:
          type: boolean
          description: Whether the result set should be attached as a CSV file.
        use_proxy:
          type: boolean
          description: Defines whether the action should use the configured proxy
            to make web requests.
    LogScaleActionHumioRepoAction:
      type: object
      properties:
        ingest_token:
          type: string
          description: Ingest token for the repository that the action should ingest
            into.
    LogScaleActionOpsGenieAction:
      type: object
      properties:
        api_url:
          type: string
          description: OpsGenie webhook URL to send the request to.
        ops_genie_key:
          type: string
          description: Key to authenticate with OpsGenie.
        use_proxy:
          type: boolean
          description: Defines whether the action should use the configured proxy
            to make web requests.
    LogScaleActionPagerDutyAction:
      type: object
      properties:
        severity:
          $ref: '#/components/schemas/PagerDutyActionSeverity'
        routing_key:
          type: string
          description: Routing key to authenticate with PagerDuty.
        use_proxy:
          type: boolean
          description: Defines whether the action should use the configured proxy
            to make web requests.
    LogScaleActionSlackAction:
      type: object
      properties:
        url:
          type: string
          description: Slack webhook URL to send the request to.
        fields:
          type: object
          additionalProperties:
            type: string
          description: Fields to include within the Slack message. Can be templated
            with values from the query result.
        use_proxy:
          type: boolean
          description: Defines whether the action should use the configured proxy
            to make web requests.
    LogScaleActionSlackPostMessageAction:
      type: object
      properties:
        api_token:
          type: string
          description: API token to authenticate with Slack.
        channels:
          type: array
          description: List of Slack channels to message.
          items:
            type: string
        fields:
          type: object
          additionalProperties:
            type: string
          description: Fields to include within the Slack message. Can be templated
            with values from the query result.
        use_proxy:
          type: boolean
          description: Defines whether the action should use the configured proxy
            to make web requests.
    LogScaleActionUploadFileAction:
      type: object
      properties:
        file_name:
          type: string
          description: File name for the uploaded file.
    LogScaleActionVictorOpsAction:
      type: object
      properties:
        message_type:
          type: string
          description: Type of the VictorOps message to make.
        notify_url:
          type: string
          description: VictorOps webhook URL to send the request to.
        use_proxy:
          type: boolean
          description: Defines whether the action should use the configured proxy
            to make web requests.
    LogScaleActionWebhookAction:
      type: object
      properties:
        method:
          $ref: '#/components/schemas/WebhookActionHTTPMethod'
        url:
          type: string
          description: URL to send the HTTP or HTTPS request to.
        headers:
          type: object
          additionalProperties:
            type: string
          description: Headers of the HTTP or HTTPS request.
        body_template:
          type: string
          description: Body of the HTTP or HTTPS request. Can be templated with values
            from the query result.
        ignore_ssl:
          type: boolean
          description: Flag indicating whether SSL should be ignored for the request.
        use_proxy:
          type: boolean
          description: Defines whether the action should use the configured proxy
            to make web requests.
    LogScaleAlertAlertType:
      type: string
      enum:
      - STANDARD
      - FILTER
    MappingLabelNameMapping:
      type: object
      properties:
        filters:
          type: array
          items:
            $ref: '#/components/schemas/configv1LabelFilter'
        source_label:
          type: string
          description: The actual label ingested on the time series
        value_mappings:
          type: array
          description: These value mappings apply to just the name mapping they belong
            to.
          items:
            $ref: '#/components/schemas/MappingLabelValueMapping'
    MappingLabelValueMapping:
      type: object
      properties:
        source_value_globs:
          type: array
          description: Defines the source label values that should be mapped into
            the given target_value.
          items:
            type: string
        target_value:
          type: string
          description: |-
            The value that source_value_globs are mapped into.
            For example, given this mapping:
            ```yaml
            value_mappings:
             - source_value_globs:
                 - Cat
                 - CAT
               target_value: cat
            ```
            This indicates that the target value `cat` maps to the source label's values `Cat` and `CAT`.
    MappingRuleAggregationPolicy:
      type: object
      properties:
        aggregation:
          $ref: '#/components/schemas/configv1AggregationType'
        storage_policy:
          $ref: '#/components/schemas/configv1MappingRuleStoragePolicy'
        interval:
          type: string
          description: |-
            Interval between aggregated data points, equivalent to the resolution
            field in storage policy. If set, then the storage_policy field can't be
            set.
        drop_timestamp:
          type: boolean
          description: "Deprecated: This field is no longer supported."
    MetricLabelConstructedLabel:
      type: object
      properties:
        value_definitions:
          type: array
          items:
            $ref: '#/components/schemas/ConstructedLabelValueDefinition'
    MetricLabelMappingLabel:
      type: object
      properties:
        name_mappings:
          type: array
          items:
            $ref: '#/components/schemas/MappingLabelNameMapping'
        value_mappings:
          type: array
          description: |-
            These value mappings apply to the whole mapping label.
            If there's no name_mappings, these value mappings apply to the label that exists on the metric.
          items:
            $ref: '#/components/schemas/MappingLabelValueMapping'
    MetricsRestrictionPermission:
      type: string
      enum:
      - READ
      - WRITE
      - READ_WRITE
    MonitorCondition:
      type: object
      properties:
        op:
          $ref: '#/components/schemas/ConditionOp'
        value:
          type: number
          description: Required. The value to compare to the metric value using the
            `op` operation.
          format: double
        sustain_secs:
          type: integer
          description: |-
            Amount of time the query needs to fail the condition check before an alert is
            triggered. Must be an integer. Accepts one of `s` (seconds), `m` (minutes), or
            `h` (hours) as units.
          format: int32
        resolve_sustain_secs:
          type: integer
          description: |-
            Amount of time the query needs to no longer fire before resolving. Must be an
            integer. Accepts one of `s` (seconds), `m` (minutes), or `h` (hours) as units.
          format: int32
    MonitorSchedule:
      type: object
      properties:
        timezone:
          type: string
          description: The timezone of the time ranges.
        weekly_schedule:
          $ref: '#/components/schemas/ScheduleWeeklySchedule'
    MonitorSeriesConditions:
      type: object
      properties:
        defaults:
          $ref: '#/components/schemas/SeriesConditionsSeverityConditions'
        overrides:
          type: array
          description: |-
            Optional. Specifies a list of overrides to use for series having matching
            labels. Each override defines labels that potentially match a series' labels.
            If one or more overrides match a series, the severity conditions of the first
            matching override are used instead of the defaults.

            Cannot be used if `graphite_query` is set.
          items:
            $ref: '#/components/schemas/MonitorSeriesConditionsOverride'
      description: Conditions evaluated against each queried series to determine the
        severity of each series.
    MonitorSeriesConditionsOverride:
      type: object
      properties:
        label_matchers:
          type: array
          description: |-
            Set of matchers on a series' labels. If all labels match, then the conditions
            defined in this override are used.
          items:
            $ref: '#/components/schemas/configv1LabelMatcher'
        severity_conditions:
          $ref: '#/components/schemas/SeriesConditionsSeverityConditions'
    MonitorSignalGrouping:
      type: object
      properties:
        label_names:
          type: array
          description: |-
            Set of label names used to split series into signals. Each unique combination
            of labels result in its own signal. For example, if `label_names` is
            `["service", "code"]`, then all series including labels
            `{service="foo",code="404"}` will be grouped together in the same signal.

            Cannot be used if `graphite_query` is set.
          items:
            type: string
        signal_per_series:
          type: boolean
          description: |-
            If set to `true`, each series will have its own signal. Cannot be used with
            `label_names`.
      description: SignalGrouping defines how the set of series from the query are
        split into signals.
    NotificationPolicyRoutes:
      type: object
      properties:
        defaults:
          $ref: '#/components/schemas/RoutesSeverityNotifiers'
        overrides:
          type: array
          description: |-
            Optional list of overrides to use for alerts having matching labels.
            Each override defines labels that potentially match an alert's labels.
            If one or more overrides match an alert, the notifiers of the first matching
            override are used instead of the defaults.
          items:
            $ref: '#/components/schemas/NotificationPolicyRoutesOverride'
    NotificationPolicyRoutesGroupBy:
      type: object
      properties:
        label_names:
          type: array
          description: |-
            Set of label names used to group alerts.
            For example, if label_names is ["service", "code"] then all alerts including labels {service="foo",code="404"}
            will be grouped together.
          items:
            type: string
    NotificationPolicyRoutesOverride:
      type: object
      properties:
        alert_label_matchers:
          type: array
          description: |-
            Set of matchers on an alert's labels.
            If all labels match then the override notifiers apply.
          items:
            $ref: '#/components/schemas/configv1LabelMatcher'
        notifiers:
          $ref: '#/components/schemas/RoutesSeverityNotifiers'
    NotifierEmailConfig:
      type: object
      properties:
        to:
          type: string
          description: Required email address to send notifications to.
        html:
          type: string
          description: Optional HTML body of the email.
        text:
          type: string
          description: Optional text body of the email.
    NotifierHTTPConfig:
      type: object
      properties:
        basic_auth:
          $ref: '#/components/schemas/HTTPConfigBasicAuth'
        bearer_token:
          type: string
          description: Bearer token authentication. Cannot be set if basic_auth is
            set.
        proxy_url:
          type: string
          description: |-
            Optional proxy URL.
            DEPRECATED: Custom proxies are unsupported.
        tls_config:
          $ref: '#/components/schemas/HTTPConfigTLSConfig'
    NotifierOpsGenieConfig:
      type: object
      properties:
        http_config:
          $ref: '#/components/schemas/NotifierHTTPConfig'
        api_key:
          type: string
          description: Required OpsGenie API key.
        api_url:
          type: string
          description: |-
            Required OpsGenie API URL to send requests to, e.g.
            "https://api.opsgenie.com/".
        message:
          type: string
          description: Alert text.
        description:
          type: string
          description: Description of the alert.
        source:
          type: string
          description: A backlink to the sender of the notification.
        details:
          type: object
          additionalProperties:
            type: string
          description: |-
            A set of arbitrary key/value pairs that provide further detail about the
            alert.
        responders:
          type: array
          description: List of responders responsible for notifications.
          items:
            $ref: '#/components/schemas/OpsGenieConfigResponder'
        tags:
          type: string
          description: Comma separated list of tags attached to the notifications.
        note:
          type: string
          description: Additional alert note.
        priority:
          type: string
          description: "Priority level of alert. Possible values are P1, P2, P3, P4,\
            \ and P5."
    NotifierPagerdutyConfig:
      type: object
      properties:
        http_config:
          $ref: '#/components/schemas/NotifierHTTPConfig'
        url:
          type: string
          description: The Pagerduty URL to send API requests to.
        client:
          type: string
          description: Client identification of the notification sender.
        client_url:
          type: string
          description: A backlink to the sender of the notification.
        description:
          type: string
          description: Description of the incident.
        severity:
          type: string
          description: |-
            Severity of the incident.
            Valid values are 'critical', 'error', 'warning', 'info', or blank
        class:
          type: string
          description: The class/type of the event.
        component:
          type: string
          description: The part or component of the affected system which is broken.
        group:
          type: string
          description: A cluster or grouping of services.
        details:
          type: object
          additionalProperties:
            type: string
          description: |-
            Set of arbitrary key/value pairs which provide further detail about the
            incident.
        images:
          type: array
          description: Images to attach to the incident.
          items:
            $ref: '#/components/schemas/PagerdutyConfigImage'
        links:
          type: array
          description: Links to attach to the incident.
          items:
            $ref: '#/components/schemas/PagerdutyConfigLink'
        service_key:
          type: string
          description: |-
            The PagerDuty integration key (when using PagerDuty integration type
            "Prometheus"). Cannot be set if routing_key is set.
        routing_key:
          type: string
          description: |-
            The PagerDuty integration key (when using PagerDuty integration type
            "Events API v2"). Cannot be set if service_key is set.
    NotifierSlackConfig:
      type: object
      properties:
        http_config:
          $ref: '#/components/schemas/NotifierHTTPConfig'
        api_url:
          type: string
          description: Required Slack webhook API URL.
        channel:
          type: string
          description: The channel to send notifications to.
        username:
          type: string
          description: The user to send notifications to.
        color:
          type: string
        title:
          type: string
        title_link:
          type: string
        pretext:
          type: string
        text:
          type: string
        footer:
          type: string
        fallback:
          type: string
        callback_id:
          type: string
        icon_emoji:
          type: string
        icon_url:
          type: string
        image_url:
          type: string
        thumb_url:
          type: string
        short_fields:
          type: boolean
        link_names:
          type: boolean
        mrkdwn_in:
          type: array
          items:
            type: string
        fields:
          type: array
          items:
            $ref: '#/components/schemas/SlackConfigField'
        actions:
          type: array
          items:
            $ref: '#/components/schemas/NotifierSlackConfigAction'
    NotifierSlackConfigAction:
      type: object
      properties:
        type:
          type: string
        text:
          type: string
        url:
          type: string
        style:
          type: string
        name:
          type: string
        value:
          type: string
        confirm_field:
          $ref: '#/components/schemas/SlackConfigConfirmationField'
    NotifierVictorOpsConfig:
      type: object
      properties:
        http_config:
          $ref: '#/components/schemas/NotifierHTTPConfig'
        api_key:
          type: string
          description: Required VictorOps API key.
        api_url:
          type: string
          description: Required VictorOps API URL.
        routing_key:
          type: string
          description: Required VictorOps routing key.
        message_type:
          type: string
          description: "Describes the behavior of the alert (CRITICAL, WARNING, INFO)."
        entity_display_name:
          type: string
          description: Summary of the alerted problem.
        state_message:
          type: string
          description: Long explanation of the alerted problem.
        monitoring_tool:
          type: string
          description: The monitoring tool the state message is from.
        custom_fields:
          type: object
          additionalProperties:
            type: string
    NotifierWebhookConfig:
      type: object
      properties:
        http_config:
          $ref: '#/components/schemas/NotifierHTTPConfig'
        url:
          type: string
          description: Required webhook URL (will be called as a POST request).
    NumericFilterComparisonType:
      type: string
      enum:
      - EQUAL
      - NOT_EQUAL
      - GREATER_THAN
      - GREATER_THAN_OR_EQUAL
      - LESS_THAN
      - LESS_THAN_OR_EQUAL
    OpsGenieConfigResponder:
      type: object
      properties:
        id:
          type: string
          description: ID of the responder. Cannot be set if name or username are
            set.
        name:
          type: string
          description: Name of the responder. Cannot be set if id or username are
            set.
        username:
          type: string
          description: Username of the responder. Cannot be set if id or name are
            set.
        responder_type:
          $ref: '#/components/schemas/ResponderResponderType'
    OtelMetricsIngestionResourceAttributes:
      type: object
      properties:
        flatten_mode:
          $ref: '#/components/schemas/ResourceAttributesFlattenMode'
        filter_mode:
          $ref: '#/components/schemas/ResourceAttributesFilterMode'
        exclude_keys:
          type: array
          description: |-
            Do not copy any resource attribute whose key exactly matches one of the
            strings in this list.
          items:
            type: string
        generate_target_info:
          type: boolean
          description: |-
            Generate a target_info time series with labels derived from resource
            attributes. The filter_mode and exclude_keys settings apply in the same way as
            for the "flatten" operation. The default is false.
    PagerDutyActionSeverity:
      type: string
      enum:
      - CRITICAL
      - ERROR
      - WARNING
      - INFO
    PagerdutyConfigImage:
      type: object
      properties:
        src:
          type: string
        alt:
          type: string
        href:
          type: string
    PagerdutyConfigLink:
      type: object
      properties:
        href:
          type: string
        text:
          type: string
    PerOperationSamplingStrategiesPerOperationSamplingStrategy:
      type: object
      properties:
        operation:
          type: string
          description: The operation to which this specific strategy should apply.
        probabilistic_sampling_strategy:
          $ref: '#/components/schemas/TraceJaegerRemoteSamplingStrategyProbabilisticStrategy'
    ResourceAttributesFilterMode:
      type: string
      enum:
      - APPEND_DEFAULT_EXCLUDE_KEYS
      - CUSTOM_EXCLUDE_KEYS
    ResourceAttributesFlattenMode:
      type: string
      enum:
      - MERGE
      - OVERWRITE
      - IGNORE
    ResourceChange:
      type: object
      properties:
        resource:
          $ref: '#/components/schemas/configv1ResourceType'
        slug:
          type: string
        action:
          $ref: '#/components/schemas/ResourceChangeAction'
    ResourceChangeAction:
      type: string
      enum:
      - CREATED
      - UPDATED
      - DELETED
      - NOOP
    ResourcePoolsDefaultPool:
      type: object
      properties:
        allocation:
          $ref: '#/components/schemas/configv1ResourcePoolsAllocation'
        priorities:
          $ref: '#/components/schemas/ResourcePoolsPriorities'
        priority_thresholds:
          type: array
          description: |-
            Optional. For supported licenses, defines thresholds with strict limits for
            when to drop new consumption of the license for a pool. Currently, only
            `PERSISTED_CARDINALITY_STANDARD` and `PERSISTED_CARDINALITY_HISTOGRAM` are
            supported.
          items:
            $ref: '#/components/schemas/AllocationThresholds'
    ResourcePoolsLicense:
      type: string
      enum:
      - PERSISTED_WRITES_STANDARD
      - PERSISTED_WRITES_HISTOGRAM
      - PERSISTED_CARDINALITY_STANDARD
      - PERSISTED_CARDINALITY_HISTOGRAM
      - MATCHED_WRITES_STANDARD
      - MATCHED_WRITES_HISTOGRAM
    ResourcePoolsPool:
      type: object
      properties:
        name:
          type: string
          description: Required name of the pool. Must be unique.
        allocation:
          $ref: '#/components/schemas/configv1ResourcePoolsAllocation'
        filters:
          type: array
          description: |-
            Required filters which define which metrics map to this pool, where any
            metric which matches at least one filter will map to the pool.
          items:
            $ref: '#/components/schemas/configv1LabelFilter'
        priorities:
          $ref: '#/components/schemas/ResourcePoolsPriorities'
    ResourcePoolsPriorities:
      type: object
      properties:
        high_priority_filters:
          type: array
          description: |-
            Required filters which define which metrics are high priority, where any
            metric which matches at least one filter is considered high priority.
            High priority metrics are dropped last when the license limit is exceeded.
          items:
            $ref: '#/components/schemas/configv1LabelFilter'
        low_priority_filters:
          type: array
          description: |-
            Required filters which define which metrics are low priority, where any
            metric which matches at least one filter is considered low priority. Low
            priority metrics are dropped first when the license limit is exceeded.
          items:
            $ref: '#/components/schemas/configv1LabelFilter'
    ResponderResponderType:
      type: string
      enum:
      - TEAM
      - USER
      - ESCALATION
      - SCHEDULE
    RollupRuleGraphiteLabelPolicy:
      type: object
      properties:
        replace:
          type: array
          description: |-
            Required list of labels to replace. Useful for discarding
            high-cardinality values while still preserving the original positions of
            the Graphite metric.
          items:
            $ref: '#/components/schemas/GraphiteLabelPolicyReplace'
    RollupRuleLabelReplace:
      type: object
      description: |-
        Must keep this around for backwards compatibility because terraform will
        still send this key w/ a null value.
    RollupRuleMetricType:
      type: string
      description: |2-
         - CUMULATIVE_COUNTER: Alias of COUNTER.
         - DELTA_COUNTER: Alias of DELTA.
      enum:
      - COUNTER
      - GAUGE
      - DELTA
      - DISTRIBUTION
      - CUMULATIVE_EXPONENTIAL_HISTOGRAM
      - MEASUREMENT
      - CUMULATIVE_COUNTER
      - DELTA_COUNTER
      - DELTA_EXPONENTIAL_HISTOGRAM
    RoutesNotifierList:
      type: object
      properties:
        notifier_slugs:
          type: array
          description: Slugs of notifiers that will receive the alerts.
          items:
            type: string
        repeat_interval_secs:
          type: integer
          description: Frequency at which to resend alerts.
          format: int32
        group_by:
          $ref: '#/components/schemas/NotificationPolicyRoutesGroupBy'
    RoutesSeverityNotifiers:
      type: object
      properties:
        warn:
          $ref: '#/components/schemas/RoutesNotifierList'
        critical:
          $ref: '#/components/schemas/RoutesNotifierList'
    SLICustomIndicatorConfig:
      type: object
      properties:
        good_query_template:
          type: string
          description: |-
            A PromQL query that measures the number of "good" events for this SLI.
            Either this or the bad_query_template must be set.
        bad_query_template:
          type: string
          description: |-
            A PromQL query that measures the number of "bad" events for this SLI.
            Either this or the good_query_template must be set.
        total_query_template:
          type: string
          description: |-
            A PromQL query that measures the total number of events for this SLI.
            This is required for all error ratio SLOs.
      description: |-
        Configuration for error ratio SLIs.
        You can include these variables in PromQL queries for SLIs:
        - {{.Window}}. Specifies the window of time that the PromQL query operates on.
        - {{.GroupBy}}. Specifies a comma-separated list of signal and dimension labels to group the results by.
        - {{.AdditionalFilters}}. Requires setting `additional_promql_filters`.
    SLICustomTimeSliceIndicatorConfig:
      title: |-
        Defines the configuration for TimeSlice SLIs.
        TimeSlice SLIs are evaluated by running a PromQL query over a certain time window and comparing the result again a condition.
        You can include these variables in PromQL queries for SLIs:
        - {{.Window}}. Specifies the window of time that the PromQL query operates on.
        - {{.GroupBy}}. Specifies a comma-separated list of signal and dimension labels to group the results by.
        - {{.TimeSlice}} :The time slice being evaluated, e.g. `1m` or `5m`.
        - {{.AdditionalFilters}}. Requires setting `additional_promql_filters`.
      type: object
      properties:
        query_template:
          type: string
          description: A PromQL query template for the timeslice SLI.
        timeslice_size:
          $ref: '#/components/schemas/SLITimeSliceSize'
        condition:
          $ref: '#/components/schemas/SLITimeSliceCondition'
    SLITimeSliceCondition:
      title: Defines the condition for evaluating TimeSlice SLIs.
      type: object
      properties:
        op:
          $ref: '#/components/schemas/ConditionOp'
        value:
          type: number
          description: The value to compare against.
          format: double
    SLITimeSliceSize:
      title: Defines the supported time slice sizes for TimeSlice SLIs.
      type: string
      enum:
      - TIMESLICE_SIZE_ONE_MINUTE
      - TIMESLICE_SIZE_FIVE_MINUTES
    SLODefinition:
      type: object
      properties:
        objective:
          type: number
          format: double
        time_window:
          $ref: '#/components/schemas/DefinitionTimeWindow'
        burn_rate_alerting_config:
          type: array
          description: |-
            Provides the burn rate alert configuration for the SLO. If not provided the
            default burn rates will be used. The configuration is only valid if the
            enable_burn_rate_alerting flag is set to true.
          items:
            $ref: '#/components/schemas/DefinitionBurnRateDefinition'
        enable_burn_rate_alerting:
          type: boolean
          description: If true enables burn rate alerting.
    ScheduleDayActive:
      type: string
      enum:
      - ALL_DAY
      - ONLY_DURING_RANGES
      - NEVER
    ScheduleDayTimeRange:
      type: object
      properties:
        start_hh_mm:
          type: string
          description: "Start time in the in format `\"<hour>:<minute>\"`. For example,\
            \ `\"15:30\"`."
        end_hh_mm:
          type: string
          description: "End time in the in format `\"<hour>:<minute>\"`. For example,\
            \ `\"15:30\"`."
    ScheduleScheduleDay:
      type: object
      properties:
        active:
          $ref: '#/components/schemas/ScheduleDayActive'
        ranges:
          type: array
          description: |-
            The time ranges that the monitor is active on this day. Required if `active`
            is set to `ONLY_DURING_RANGES`. Otherwise, this field must be empty.
          items:
            $ref: '#/components/schemas/ScheduleDayTimeRange'
    ScheduleWeeklySchedule:
      type: object
      properties:
        monday:
          $ref: '#/components/schemas/ScheduleScheduleDay'
        tuesday:
          $ref: '#/components/schemas/ScheduleScheduleDay'
        wednesday:
          $ref: '#/components/schemas/ScheduleScheduleDay'
        thursday:
          $ref: '#/components/schemas/ScheduleScheduleDay'
        friday:
          $ref: '#/components/schemas/ScheduleScheduleDay'
        saturday:
          $ref: '#/components/schemas/ScheduleScheduleDay'
        sunday:
          $ref: '#/components/schemas/ScheduleScheduleDay'
    SeriesConditionsConditions:
      type: object
      properties:
        conditions:
          type: array
          description: |-
            List of conditions to evaluate against a series. Only one condition must
            match to assign a severity to a signal.
          items:
            $ref: '#/components/schemas/MonitorCondition'
    SeriesConditionsSeverityConditions:
      type: object
      properties:
        warn:
          $ref: '#/components/schemas/SeriesConditionsConditions'
        critical:
          $ref: '#/components/schemas/SeriesConditionsConditions'
    ServiceAccountMetricsRestriction:
      type: object
      properties:
        permission:
          $ref: '#/components/schemas/MetricsRestrictionPermission'
        labels:
          type: object
          additionalProperties:
            type: string
          description: |-
            Optional labels which further restricts the service account to only read
            or write metrics with the given label names and values.
    SlackConfigConfirmationField:
      type: object
      properties:
        text:
          type: string
        title:
          type: string
        ok_text:
          type: string
        dismiss_text:
          type: string
    SlackConfigField:
      type: object
      properties:
        title:
          type: string
        value:
          type: string
        short:
          type: boolean
    SpanFilterSpanFilterMatchType:
      type: string
      enum:
      - INCLUDE
      - EXCLUDE
    StringFilterStringFilterMatchType:
      type: string
      enum:
      - EXACT
      - REGEX
      - EXACT_NEGATION
      - REGEX_NEGATION
      - IN
      - NOT_IN
    TraceBehaviorConfigMainBehaviorAssignment:
      type: object
      properties:
        created_at:
          type: string
          description: The timestamp of when the trace behavior was created.
          format: date-time
        updated_at:
          type: string
          description: The timestamp of when the trace behavior was updated.
          format: date-time
        dataset_slug:
          type: string
          description: The slug reference of a trace dataset.
        behavior_slug:
          type: string
          description: The slug reference of a trace behavior.
        created_by:
          type: string
          description: The author or creator of the behavior assignment.
        description:
          type: string
          description: A description of the behavior assignment.
    TraceBehaviorConfigOverrideBehaviorAssignment:
      type: object
      properties:
        created_at:
          type: string
          description: The timestamp of when the override behavior assignment was
            created.
          format: date-time
        updated_at:
          type: string
          description: The timestamp of when the override behavior assignment was
            updated.
          format: date-time
        dataset_slug:
          type: string
          description: The slug reference of a trace dataset.
        behavior_slug:
          type: string
          description: The slug reference of a trace behavior.
        start_time:
          type: string
          description: The starting time of the override.
          format: date-time
        end_time:
          type: string
          description: The ending time of the override.
          format: date-time
        created_by:
          type: string
          description: The author or creator of the override.
        description:
          type: string
          description: A description of the override.
    TraceBehaviorErrorSampleOptions:
      type: object
      properties:
        sample_rate:
          type: number
          description: Sample rate for traces with errors.
          format: double
        sampling_type:
          $ref: '#/components/schemas/TraceBehaviorSamplingType'
        enabled:
          type: boolean
          description: Whether or not to use these options.
    TraceBehaviorFastSampleOptions:
      type: object
      properties:
        max_duration_seconds:
          type: number
          description: |-
            Duration in seconds under which traces are sampled
            according to the given sample rate.
          format: double
        sample_rate:
          type: number
          description: Sample rate for traces under the given duration.
          format: double
        sampling_type:
          $ref: '#/components/schemas/TraceBehaviorSamplingType'
        enabled:
          type: boolean
          description: Whether or not to use these options.
    TraceBehaviorLargeTraceSampleOptions:
      type: object
      properties:
        span_count_threshold:
          type: integer
          description: |-
            For N = number of spans in the trace, if N >= span_count_threshold, the trace is sampled according to the
            given sample rate.
          format: int64
        sample_rate:
          type: number
          description: Sample rate.
          format: double
        sampling_type:
          $ref: '#/components/schemas/TraceBehaviorSamplingType'
        enabled:
          type: boolean
          description: Whether or not to use these options.
    TraceBehaviorSamplingType:
      type: string
      description: |2-
         - LOW_VALUE: Match indicates a low value trace. With multiple low value matches sample at the lowest rate.
         - HIGH_VALUE: Match indicates a high value trace. With multiple high value matches sample at the highest rate.
      enum:
      - LOW_VALUE
      - HIGH_VALUE
    TraceBehaviorSlowSampleOptions:
      type: object
      properties:
        min_duration_seconds:
          type: number
          description: |-
            Duration in seconds over which traces are sampled
            according to the given sample rate.
          format: double
        sample_rate:
          type: number
          description: Sample rate.
          format: double
        sampling_type:
          $ref: '#/components/schemas/TraceBehaviorSamplingType'
        enabled:
          type: boolean
          description: Whether or not to use these options.
    TraceBehaviorSmallTraceSampleOptions:
      type: object
      properties:
        span_count_threshold:
          type: integer
          description: |-
            For N = number of spans in the trace, if N <= span_count_threshold, the trace is sampled according to the
            given sample rate.
          format: int64
        sample_rate:
          type: number
          description: Sample rate.
          format: double
        sampling_type:
          $ref: '#/components/schemas/TraceBehaviorSamplingType'
        enabled:
          type: boolean
          description: Whether or not to use these options.
    TraceJaegerRemoteSamplingStrategyAppliedStrategy:
      type: object
      properties:
        probabilistic_strategy:
          $ref: '#/components/schemas/TraceJaegerRemoteSamplingStrategyProbabilisticStrategy'
        per_operation_strategies:
          $ref: '#/components/schemas/TraceJaegerRemoteSamplingStrategyPerOperationSamplingStrategies'
        rate_limiting_strategy:
          $ref: '#/components/schemas/TraceJaegerRemoteSamplingStrategyRateLimitingSamplingStrategy'
    TraceJaegerRemoteSamplingStrategyPerOperationSamplingStrategies:
      type: object
      properties:
        default_sampling_rate:
          type: number
          description: "Defines the service-wide sampling probability (in the range\
            \ [0, 1]) when specific operations are not matched."
          format: double
        default_lower_bound_traces_per_second:
          type: number
          description: "Defines a minimum number of traces to send for ANY operation\
            \ in the service, regardless of matching per operation strategy."
          format: double
        default_upper_bound_traces_per_second:
          type: number
          description: "Defines a maximum number of traces to send for ANY operation\
            \ in the service, regardless of matching per operation strategy."
          format: double
        per_operation_strategies:
          type: array
          description: Defines explicit operations-specific strategies that take precedence
            over the default sampling rate.
          items:
            $ref: '#/components/schemas/PerOperationSamplingStrategiesPerOperationSamplingStrategy'
    TraceJaegerRemoteSamplingStrategyProbabilisticStrategy:
      type: object
      properties:
        sampling_rate:
          type: number
          description: "Value in the range [0, 1] that defines the probability of\
            \ sampling any trace."
          format: double
    TraceJaegerRemoteSamplingStrategyRateLimitingSamplingStrategy:
      type: object
      properties:
        max_traces_per_second:
          type: integer
          description: Maximum number of traces to sample per second.
          format: int32
    TraceSearchFilterBoolFilter:
      type: object
      properties:
        value:
          type: boolean
          description: The value of the filter compared to the target trace or span
            field.
    TraceSearchFilterCountFilter:
      type: object
      properties:
        min:
          type: integer
          description: "Minimum number of spans that must match a span query, inclusive."
          format: int32
        max:
          type: integer
          description: "Maximum number of spans that must match a span query, inclusive."
          format: int32
    TraceSearchFilterDurationFilter:
      type: object
      properties:
        min_secs:
          type: number
          description: "Minimum duration, in seconds, required for a span or trace\
            \ to match."
          format: double
        max_secs:
          type: number
          description: "Maximum duration, in seconds, required for a span or trace\
            \ to match."
          format: double
    TraceSearchFilterNumericFilter:
      type: object
      properties:
        comparison:
          $ref: '#/components/schemas/NumericFilterComparisonType'
        value:
          type: number
          description: The filter value used in comparison against match candidates.
          format: double
    TraceSearchFilterSpanFilter:
      type: object
      properties:
        match_type:
          $ref: '#/components/schemas/SpanFilterSpanFilterMatchType'
        service:
          $ref: '#/components/schemas/TraceSearchFilterStringFilter'
        operation:
          $ref: '#/components/schemas/TraceSearchFilterStringFilter'
        parent_service:
          $ref: '#/components/schemas/TraceSearchFilterStringFilter'
        parent_operation:
          $ref: '#/components/schemas/TraceSearchFilterStringFilter'
        duration:
          $ref: '#/components/schemas/TraceSearchFilterDurationFilter'
        error:
          $ref: '#/components/schemas/TraceSearchFilterBoolFilter'
        tags:
          type: array
          description: Matches the tags of the candidate span.
          items:
            $ref: '#/components/schemas/TraceSearchFilterTagFilter'
        span_count:
          $ref: '#/components/schemas/TraceSearchFilterCountFilter'
        is_root_span:
          $ref: '#/components/schemas/TraceSearchFilterBoolFilter'
    TraceSearchFilterStringFilter:
      type: object
      properties:
        match:
          $ref: '#/components/schemas/StringFilterStringFilterMatchType'
        value:
          type: string
          description: The value of the filter compared to the target trace or span
            field.
        in_values:
          type: array
          description: Values the filter tests against when using `IN` or `NOT_IN`
            match type.
          items:
            type: string
    TraceSearchFilterTagFilter:
      type: object
      properties:
        key:
          type: string
          description: The key or name of the span tag that this filter inspects.
        value:
          $ref: '#/components/schemas/TraceSearchFilterStringFilter'
        numeric_value:
          $ref: '#/components/schemas/TraceSearchFilterNumericFilter'
    TraceSearchFilterTraceFilter:
      type: object
      properties:
        duration:
          $ref: '#/components/schemas/TraceSearchFilterDurationFilter'
        error:
          $ref: '#/components/schemas/TraceSearchFilterBoolFilter'
    WebhookActionHTTPMethod:
      type: string
      enum:
      - GET
      - POST
      - PUT
      - PATCH
      - DELETE
      - HEAD
      - OPTIONS
    apiError:
      type: object
      properties:
        code:
          type: integer
          description: An optional private error code whose values are undefined.
          format: int32
        message:
          type: string
          description: An error message describing what went wrong.
    commonPromQLMatcher:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/commonPromQLMatcherType'
        name:
          type: string
          description: Prometheus label name for the matcher
        value:
          type: string
          description: Prometheus label value for the matcher
    commonPromQLMatcherType:
      type: string
      enum:
      - MatchEqual
      - MatchRegexp
      - MatchNotEqual
      - MatchNotRegexp
    configv1AggregationType:
      type: string
      enum:
      - LAST
      - MIN
      - MAX
      - MEAN
      - MEDIAN
      - COUNT
      - SUM
      - SUMSQ
      - STDEV
      - P10
      - P20
      - P30
      - P40
      - P50
      - P60
      - P70
      - P80
      - P90
      - P95
      - P99
      - P999
      - P9999
      - P25
      - P75
      - COUNT_SAMPLES
      - HISTOGRAM
    configv1Bucket:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the Bucket. If a `slug` isn't provided,\
            \ one will be generated based of the `name` field. You can't modify this\
            \ field after the Bucket is created."
        name:
          type: string
          description: Required. Name of the Bucket. You can modify this value after
            the Bucket is created.
        created_at:
          type: string
          description: Timestamp of when the Bucket was created. Cannot be set by
            clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the Bucket was last updated. Cannot be set
            by clients.
          format: date-time
          readOnly: true
        description:
          type: string
          description: Optional description of the bucket.
        labels:
          type: object
          additionalProperties:
            type: string
          description: Optional labels marking the bucket.
        team_slug:
          type: string
          description: Optional slug of the team the bucket belongs to.
        notification_policy_slug:
          type: string
          description: |-
            Slug of the notification policy used by default for monitors in this bucket.
            This is optional if the bucket does not contain monitors or all of its monitors explicitly reference a policy.
            This policy takes precedence over a bucket-owned notification policy.
            This does not override the policy used when a monitor explicitly references a policy.
    configv1Collection:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the Collection. If a `slug` isn't provided,\
            \ one will be generated based of the `name` field. You can't modify this\
            \ field after the Collection is created."
        name:
          type: string
          description: Required. Name of the Collection. You can modify this value
            after the Collection is created.
        created_at:
          type: string
          description: Timestamp of when the Collection was created. Cannot be set
            by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the Collection was last updated. Cannot be
            set by clients.
          format: date-time
          readOnly: true
        team_slug:
          type: string
          description: Required slug of the team the collection belongs to.
        description:
          type: string
          description: Optional description of the collection.
        notification_policy_slug:
          type: string
          description: |-
            Slug of the notification policy used by default for monitors in this collection.
            This is optional if the collection does not contain monitors or all of its monitors explicitly reference a policy.
            This does not override the policy used when a monitor explicitly references a policy.
    configv1CollectionReference:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/configv1CollectionReferenceType'
        slug:
          type: string
    configv1CollectionReferenceType:
      type: string
      description: Type values must match entitiespb.Collection.CollectionType.
      enum:
      - SIMPLE
      - SERVICE
    configv1CreateBucketRequest:
      type: object
      properties:
        bucket:
          $ref: '#/components/schemas/configv1Bucket'
        dry_run:
          type: boolean
          description: "If true, the Bucket isn't created, and no response Bucket\
            \ will be returned. The response will return an error if the given Bucket\
            \ is invalid."
    configv1CreateBucketResponse:
      type: object
      properties:
        bucket:
          $ref: '#/components/schemas/configv1Bucket'
    configv1CreateClassicDashboardRequest:
      type: object
      properties:
        classic_dashboard:
          $ref: '#/components/schemas/configv1GrafanaDashboard'
        dry_run:
          type: boolean
          description: "If true, the GrafanaDashboard isn't created, and no response\
            \ GrafanaDashboard will be returned. The response will return an error\
            \ if the given GrafanaDashboard is invalid."
    configv1CreateClassicDashboardResponse:
      type: object
      properties:
        classic_dashboard:
          $ref: '#/components/schemas/configv1GrafanaDashboard'
    configv1CreateCollectionRequest:
      type: object
      properties:
        collection:
          $ref: '#/components/schemas/configv1Collection'
        dry_run:
          type: boolean
          description: "If true, the Collection isn't created, and no response Collection\
            \ will be returned. The response will return an error if the given Collection\
            \ is invalid."
    configv1CreateCollectionResponse:
      type: object
      properties:
        collection:
          $ref: '#/components/schemas/configv1Collection'
    configv1CreateDashboardRequest:
      type: object
      properties:
        dashboard:
          $ref: '#/components/schemas/configv1Dashboard'
        dry_run:
          type: boolean
          description: "If true, the Dashboard isn't created, and no response Dashboard\
            \ will be returned. The response will return an error if the given Dashboard\
            \ is invalid."
    configv1CreateDashboardResponse:
      type: object
      properties:
        dashboard:
          $ref: '#/components/schemas/configv1Dashboard'
    configv1CreateDatasetRequest:
      type: object
      properties:
        dataset:
          $ref: '#/components/schemas/configv1Dataset'
        dry_run:
          type: boolean
          description: "If true, the Dataset isn't created, and no response Dataset\
            \ will be returned. The response will return an error if the given Dataset\
            \ is invalid."
    configv1CreateDatasetResponse:
      type: object
      properties:
        dataset:
          $ref: '#/components/schemas/configv1Dataset'
    configv1CreateDerivedLabelRequest:
      type: object
      properties:
        derived_label:
          $ref: '#/components/schemas/configv1DerivedLabel'
        dry_run:
          type: boolean
          description: "If true, the DerivedLabel isn't created, and no response DerivedLabel\
            \ will be returned. The response will return an error if the given DerivedLabel\
            \ is invalid."
    configv1CreateDerivedLabelResponse:
      type: object
      properties:
        derived_label:
          $ref: '#/components/schemas/configv1DerivedLabel'
    configv1CreateDerivedMetricRequest:
      type: object
      properties:
        derived_metric:
          $ref: '#/components/schemas/configv1DerivedMetric'
        dry_run:
          type: boolean
          description: "If true, the DerivedMetric isn't created, and no response\
            \ DerivedMetric will be returned. The response will return an error if\
            \ the given DerivedMetric is invalid."
    configv1CreateDerivedMetricResponse:
      type: object
      properties:
        derived_metric:
          $ref: '#/components/schemas/configv1DerivedMetric'
    configv1CreateDropRuleRequest:
      type: object
      properties:
        drop_rule:
          $ref: '#/components/schemas/configv1DropRule'
        dry_run:
          type: boolean
          description: "If true, the DropRule isn't created, and no response DropRule\
            \ will be returned. The response will return an error if the given DropRule\
            \ is invalid."
    configv1CreateDropRuleResponse:
      type: object
      properties:
        drop_rule:
          $ref: '#/components/schemas/configv1DropRule'
    configv1CreateGcpMetricsIntegrationRequest:
      type: object
      properties:
        gcp_metrics_integration:
          $ref: '#/components/schemas/configv1GcpMetricsIntegration'
        dry_run:
          type: boolean
          description: "If true, the GcpMetricsIntegration isn't created, and no response\
            \ GcpMetricsIntegration will be returned. The response will return an\
            \ error if the given GcpMetricsIntegration is invalid."
    configv1CreateGcpMetricsIntegrationResponse:
      type: object
      properties:
        gcp_metrics_integration:
          $ref: '#/components/schemas/configv1GcpMetricsIntegration'
    configv1CreateGrafanaDashboardRequest:
      type: object
      properties:
        grafana_dashboard:
          $ref: '#/components/schemas/configv1GrafanaDashboard'
        dry_run:
          type: boolean
          description: "If true, the GrafanaDashboard isn't created, and no response\
            \ GrafanaDashboard will be returned. The response will return an error\
            \ if the given GrafanaDashboard is invalid."
    configv1CreateGrafanaDashboardResponse:
      type: object
      properties:
        grafana_dashboard:
          $ref: '#/components/schemas/configv1GrafanaDashboard'
    configv1CreateLogAllocationConfigRequest:
      type: object
      properties:
        log_allocation_config:
          $ref: '#/components/schemas/configv1LogAllocationConfig'
        dry_run:
          type: boolean
          description: "If true, the LogAllocationConfig isn't created, and no response\
            \ LogAllocationConfig will be returned. The response will return an error\
            \ if the given LogAllocationConfig is invalid."
    configv1CreateLogAllocationConfigResponse:
      type: object
      properties:
        log_allocation_config:
          $ref: '#/components/schemas/configv1LogAllocationConfig'
    configv1CreateLogIngestConfigRequest:
      type: object
      properties:
        log_ingest_config:
          $ref: '#/components/schemas/configv1LogIngestConfig'
        dry_run:
          type: boolean
          description: "If true, the LogIngestConfig isn't created, and no response\
            \ LogIngestConfig will be returned. The response will return an error\
            \ if the given LogIngestConfig is invalid."
    configv1CreateLogIngestConfigResponse:
      type: object
      properties:
        log_ingest_config:
          $ref: '#/components/schemas/configv1LogIngestConfig'
    configv1CreateLogScaleActionRequest:
      type: object
      properties:
        log_scale_action:
          $ref: '#/components/schemas/configv1LogScaleAction'
        dry_run:
          type: boolean
          description: "If true, the LogScaleAction isn't created, and no response\
            \ LogScaleAction will be returned. The response will return an error if\
            \ the given LogScaleAction is invalid."
    configv1CreateLogScaleActionResponse:
      type: object
      properties:
        log_scale_action:
          $ref: '#/components/schemas/configv1LogScaleAction'
    configv1CreateLogScaleAlertRequest:
      type: object
      properties:
        log_scale_alert:
          $ref: '#/components/schemas/configv1LogScaleAlert'
        dry_run:
          type: boolean
          description: "If true, the LogScaleAlert isn't created, and no response\
            \ LogScaleAlert will be returned. The response will return an error if\
            \ the given LogScaleAlert is invalid."
    configv1CreateLogScaleAlertResponse:
      type: object
      properties:
        log_scale_alert:
          $ref: '#/components/schemas/configv1LogScaleAlert'
    configv1CreateMappingRuleRequest:
      type: object
      properties:
        mapping_rule:
          $ref: '#/components/schemas/configv1MappingRule'
        dry_run:
          type: boolean
          description: "If true, the MappingRule isn't created, and no response MappingRule\
            \ will be returned. The response will return an error if the given MappingRule\
            \ is invalid."
    configv1CreateMappingRuleResponse:
      type: object
      properties:
        mapping_rule:
          $ref: '#/components/schemas/configv1MappingRule'
    configv1CreateMonitorRequest:
      type: object
      properties:
        monitor:
          $ref: '#/components/schemas/configv1Monitor'
        dry_run:
          type: boolean
          description: "If true, the Monitor isn't created, and no response Monitor\
            \ will be returned. The response will return an error if the given Monitor\
            \ is invalid."
    configv1CreateMonitorResponse:
      type: object
      properties:
        monitor:
          $ref: '#/components/schemas/configv1Monitor'
    configv1CreateMutingRuleRequest:
      type: object
      properties:
        muting_rule:
          $ref: '#/components/schemas/configv1MutingRule'
        dry_run:
          type: boolean
          description: "If true, the MutingRule isn't created, and no response MutingRule\
            \ will be returned. The response will return an error if the given MutingRule\
            \ is invalid."
    configv1CreateMutingRuleResponse:
      type: object
      properties:
        muting_rule:
          $ref: '#/components/schemas/configv1MutingRule'
    configv1CreateNotificationPolicyRequest:
      type: object
      properties:
        notification_policy:
          $ref: '#/components/schemas/configv1NotificationPolicy'
        dry_run:
          type: boolean
          description: "If true, the NotificationPolicy isn't created, and no response\
            \ NotificationPolicy will be returned. The response will return an error\
            \ if the given NotificationPolicy is invalid."
    configv1CreateNotificationPolicyResponse:
      type: object
      properties:
        notification_policy:
          $ref: '#/components/schemas/configv1NotificationPolicy'
    configv1CreateNotifierRequest:
      type: object
      properties:
        notifier:
          $ref: '#/components/schemas/configv1Notifier'
        dry_run:
          type: boolean
          description: "If true, the Notifier isn't created, and no response Notifier\
            \ will be returned. The response will return an error if the given Notifier\
            \ is invalid."
    configv1CreateNotifierResponse:
      type: object
      properties:
        notifier:
          $ref: '#/components/schemas/configv1Notifier'
    configv1CreateOtelMetricsIngestionRequest:
      type: object
      properties:
        otel_metrics_ingestion:
          $ref: '#/components/schemas/configv1OtelMetricsIngestion'
        dry_run:
          type: boolean
          description: "If true, the OtelMetricsIngestion isn't created, and no response\
            \ OtelMetricsIngestion will be returned. The response will return an error\
            \ if the given OtelMetricsIngestion is invalid."
    configv1CreateOtelMetricsIngestionResponse:
      type: object
      properties:
        otel_metrics_ingestion:
          $ref: '#/components/schemas/configv1OtelMetricsIngestion'
    configv1CreateRecordingRuleRequest:
      type: object
      properties:
        recording_rule:
          $ref: '#/components/schemas/configv1RecordingRule'
        dry_run:
          type: boolean
          description: "If true, the RecordingRule isn't created, and no response\
            \ RecordingRule will be returned. The response will return an error if\
            \ the given RecordingRule is invalid."
    configv1CreateRecordingRuleResponse:
      type: object
      properties:
        recording_rule:
          $ref: '#/components/schemas/configv1RecordingRule'
    configv1CreateResourcePoolsRequest:
      type: object
      properties:
        resource_pools:
          $ref: '#/components/schemas/configv1ResourcePools'
        dry_run:
          type: boolean
          description: "If true, the ResourcePools isn't created, and no response\
            \ ResourcePools will be returned. The response will return an error if\
            \ the given ResourcePools is invalid."
    configv1CreateResourcePoolsResponse:
      type: object
      properties:
        resource_pools:
          $ref: '#/components/schemas/configv1ResourcePools'
    configv1CreateRollupRuleRequest:
      type: object
      properties:
        rollup_rule:
          $ref: '#/components/schemas/configv1RollupRule'
        dry_run:
          type: boolean
          description: "If true, the RollupRule isn't created, and no response RollupRule\
            \ will be returned. The response will return an error if the given RollupRule\
            \ is invalid."
    configv1CreateRollupRuleResponse:
      type: object
      properties:
        rollup_rule:
          $ref: '#/components/schemas/configv1RollupRule'
    configv1CreateSLORequest:
      type: object
      properties:
        slo:
          $ref: '#/components/schemas/configv1SLO'
        dry_run:
          type: boolean
          description: "If true, the SLO isn't created, and no response SLO will be\
            \ returned. The response will return an error if the given SLO is invalid."
    configv1CreateSLOResponse:
      type: object
      properties:
        slo:
          $ref: '#/components/schemas/configv1SLO'
    configv1CreateServiceAccountRequest:
      type: object
      properties:
        service_account:
          $ref: '#/components/schemas/configv1ServiceAccount'
        dry_run:
          type: boolean
          description: "If true, the ServiceAccount isn't created, and no response\
            \ ServiceAccount will be returned. The response will return an error if\
            \ the given ServiceAccount is invalid."
    configv1CreateServiceAccountResponse:
      type: object
      properties:
        service_account:
          $ref: '#/components/schemas/configv1ServiceAccount'
    configv1CreateTeamRequest:
      type: object
      properties:
        team:
          $ref: '#/components/schemas/configv1Team'
        dry_run:
          type: boolean
          description: "If true, the Team isn't created, and no response Team will\
            \ be returned. The response will return an error if the given Team is\
            \ invalid."
    configv1CreateTeamResponse:
      type: object
      properties:
        team:
          $ref: '#/components/schemas/configv1Team'
    configv1CreateTraceBehaviorConfigRequest:
      type: object
      properties:
        trace_behavior_config:
          $ref: '#/components/schemas/configv1TraceBehaviorConfig'
        dry_run:
          type: boolean
          description: "If true, the TraceBehaviorConfig isn't created, and no response\
            \ TraceBehaviorConfig will be returned. The response will return an error\
            \ if the given TraceBehaviorConfig is invalid."
    configv1CreateTraceBehaviorConfigResponse:
      type: object
      properties:
        trace_behavior_config:
          $ref: '#/components/schemas/configv1TraceBehaviorConfig'
    configv1CreateTraceBehaviorRequest:
      type: object
      properties:
        trace_behavior:
          $ref: '#/components/schemas/configv1TraceBehavior'
        dry_run:
          type: boolean
          description: "If true, the TraceBehavior isn't created, and no response\
            \ TraceBehavior will be returned. The response will return an error if\
            \ the given TraceBehavior is invalid."
    configv1CreateTraceBehaviorResponse:
      type: object
      properties:
        trace_behavior:
          $ref: '#/components/schemas/configv1TraceBehavior'
    configv1CreateTraceJaegerRemoteSamplingStrategyRequest:
      type: object
      properties:
        trace_jaeger_remote_sampling_strategy:
          $ref: '#/components/schemas/configv1TraceJaegerRemoteSamplingStrategy'
        dry_run:
          type: boolean
          description: "If true, the TraceJaegerRemoteSamplingStrategy isn't created,\
            \ and no response TraceJaegerRemoteSamplingStrategy will be returned.\
            \ The response will return an error if the given TraceJaegerRemoteSamplingStrategy\
            \ is invalid."
    configv1CreateTraceJaegerRemoteSamplingStrategyResponse:
      type: object
      properties:
        trace_jaeger_remote_sampling_strategy:
          $ref: '#/components/schemas/configv1TraceJaegerRemoteSamplingStrategy'
    configv1CreateTraceMetricsRuleRequest:
      type: object
      properties:
        trace_metrics_rule:
          $ref: '#/components/schemas/configv1TraceMetricsRule'
        dry_run:
          type: boolean
          description: "If true, the TraceMetricsRule isn't created, and no response\
            \ TraceMetricsRule will be returned. The response will return an error\
            \ if the given TraceMetricsRule is invalid."
    configv1CreateTraceMetricsRuleResponse:
      type: object
      properties:
        trace_metrics_rule:
          $ref: '#/components/schemas/configv1TraceMetricsRule'
    configv1CreateTraceTailSamplingRulesRequest:
      type: object
      properties:
        trace_tail_sampling_rules:
          $ref: '#/components/schemas/configv1TraceTailSamplingRules'
        dry_run:
          type: boolean
          description: "If true, the TraceTailSamplingRules isn't created, and no\
            \ response TraceTailSamplingRules will be returned. The response will\
            \ return an error if the given TraceTailSamplingRules is invalid."
    configv1CreateTraceTailSamplingRulesResponse:
      type: object
      properties:
        trace_tail_sampling_rules:
          $ref: '#/components/schemas/configv1TraceTailSamplingRules'
    configv1Dashboard:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the Dashboard. If a `slug` isn't provided,\
            \ one will be generated based of the `name` field. You can't modify this\
            \ field after the Dashboard is created."
        name:
          type: string
          description: Required. Name of the Dashboard. You can modify this value
            after the Dashboard is created.
        created_at:
          type: string
          description: Timestamp of when the Dashboard was created. Cannot be set
            by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the Dashboard was last updated. Cannot be
            set by clients.
          format: date-time
          readOnly: true
        collection_slug:
          type: string
          description: Optional. Slug of the collection the dashboard belongs to.
        collection:
          $ref: '#/components/schemas/configv1CollectionReference'
        dashboard_json:
          type: string
          description: Raw JSON representation that defines the structure of the dashboard.
        labels:
          type: object
          additionalProperties:
            type: string
          description: Optional. Defines tags that add metadata about the dashboard.
    configv1Dataset:
      type: object
      properties:
        name:
          type: string
          description: Required. Name of the Dataset. You can modify this value after
            the Dataset is created.
        slug:
          type: string
          description: "Unique identifier of the Dataset. If a `slug` isn't provided,\
            \ one will be generated based of the `name` field. You can't modify this\
            \ field after the Dataset is created."
        created_at:
          type: string
          description: Timestamp of when the Dataset was created. Cannot be set by
            clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the Dataset was last updated. Cannot be set
            by clients.
          format: date-time
          readOnly: true
        description:
          type: string
          description: Required. Description of the dataset.
        configuration:
          $ref: '#/components/schemas/DatasetDatasetConfiguration'
    configv1DefaultSampleRate:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether to override the default sample rate
        sample_rate:
          type: number
          description: "A fraction of traces to keep, which should be a number between\
            \ 0 and 1, inclusive"
          format: double
    configv1DeleteBucketResponse:
      type: object
      properties:
        changes:
          type: array
          description: |-
            Changes contains what resources are deleted. The bucket being deleted will
            always be included. When force_delete is used, the changelog will include
            all resources that reference the bucket that were deleted.
          items:
            $ref: '#/components/schemas/ResourceChange'
    configv1DeleteClassicDashboardResponse:
      type: object
    configv1DeleteCollectionResponse:
      type: object
    configv1DeleteDashboardResponse:
      type: object
    configv1DeleteDatasetResponse:
      type: object
    configv1DeleteDerivedLabelResponse:
      type: object
    configv1DeleteDerivedMetricResponse:
      type: object
    configv1DeleteDropRuleResponse:
      type: object
    configv1DeleteGcpMetricsIntegrationResponse:
      type: object
    configv1DeleteGrafanaDashboardResponse:
      type: object
    configv1DeleteLogAllocationConfigResponse:
      type: object
    configv1DeleteLogIngestConfigResponse:
      type: object
    configv1DeleteLogScaleActionResponse:
      type: object
    configv1DeleteLogScaleAlertResponse:
      type: object
    configv1DeleteMappingRuleResponse:
      type: object
    configv1DeleteMonitorResponse:
      type: object
    configv1DeleteMutingRuleResponse:
      type: object
    configv1DeleteNotificationPolicyResponse:
      type: object
    configv1DeleteNotifierResponse:
      type: object
    configv1DeleteOtelMetricsIngestionResponse:
      type: object
    configv1DeleteRecordingRuleResponse:
      type: object
    configv1DeleteResourcePoolsResponse:
      type: object
    configv1DeleteRollupRuleResponse:
      type: object
    configv1DeleteSLOResponse:
      type: object
    configv1DeleteServiceAccountResponse:
      type: object
    configv1DeleteTeamResponse:
      type: object
    configv1DeleteTraceBehaviorConfigResponse:
      type: object
    configv1DeleteTraceBehaviorResponse:
      type: object
    configv1DeleteTraceJaegerRemoteSamplingStrategyResponse:
      type: object
    configv1DeleteTraceMetricsRuleResponse:
      type: object
    configv1DeleteTraceTailSamplingRulesResponse:
      type: object
    configv1DerivedLabel:
      type: object
      properties:
        name:
          type: string
          description: Required. Name of the DerivedLabel. You can modify this value
            after the DerivedLabel is created.
        slug:
          type: string
          description: "Unique identifier of the DerivedLabel. If a `slug` isn't provided,\
            \ one will be generated based of the `name` field. You can't modify this\
            \ field after the DerivedLabel is created."
        created_at:
          type: string
          description: Timestamp of when the DerivedLabel was created. Cannot be set
            by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the DerivedLabel was last updated. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        label_name:
          type: string
          description: Name of the derived label. It needs to be unique across the
            system.
        description:
          type: string
          description: Optional description of the derived label.
        metric_label:
          $ref: '#/components/schemas/DerivedLabelMetricLabel'
        existing_label_policy:
          $ref: '#/components/schemas/configv1DerivedLabelLabelPolicy'
    configv1DerivedLabelLabelPolicy:
      type: string
      enum:
      - KEEP
      - OVERRIDE
    configv1DerivedMetric:
      type: object
      properties:
        name:
          type: string
          description: Required. Name of the DerivedMetric. You can modify this value
            after the DerivedMetric is created.
        slug:
          type: string
          description: "Unique identifier of the DerivedMetric. If a `slug` isn't\
            \ provided, one will be generated based of the `name` field. You can't\
            \ modify this field after the DerivedMetric is created."
        created_at:
          type: string
          description: Timestamp of when the DerivedMetric was created. Cannot be
            set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the DerivedMetric was last updated. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        metric_name:
          type: string
          description: "Required metric name of the derived metric, which must be\
            \ unique across the system."
          example: cpu_usage:instance
        description:
          type: string
          description: Optional description of the derived metric.
        queries:
          type: array
          description: Required queries that the derived metric can map to.
          items:
            $ref: '#/components/schemas/DerivedMetricSelectorQuery'
    configv1DerivedMetricLabelMatcher:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/configv1DerivedMetricLabelMatcherMatcherType'
        name:
          type: string
          description: name always matches against an exact label name.
        value:
          type: string
          description: value matches against a label value based on the configured
            type.
    configv1DerivedMetricLabelMatcherMatcherType:
      type: string
      enum:
      - EXACT
    configv1DropRule:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the DropRule. If a `slug` isn't provided,\
            \ one will be generated based of the `name` field. You can't modify this\
            \ field after the DropRule is created."
        name:
          type: string
          description: Required. Name of the DropRule. You can modify this value after
            the DropRule is created.
        created_at:
          type: string
          description: Timestamp of when the DropRule was created. Cannot be set by
            clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the DropRule was last updated. Cannot be
            set by clients.
          format: date-time
          readOnly: true
        mode:
          $ref: '#/components/schemas/configv1DropRuleMode'
        filters:
          type: array
          description: |-
            Defines the conditions that determine whether to drop a metric. Drop rules can
            have multiple filter conditions on different labels, making it possible to drop
            a subset of the series matching a particular metric name.
          items:
            $ref: '#/components/schemas/configv1LabelFilter'
        conditional_rate_based_drop:
          $ref: '#/components/schemas/DropRuleConditionalRateBasedDrop'
        value_based_drop:
          $ref: '#/components/schemas/DropRuleValueBasedDrop'
        drop_nan_value:
          type: boolean
          description: |-
            Drops data points if values are Not a Number (NaN). If set to true, Chronosphere
            drops NaN data points, along with any published staleness markers. See the
            [drop rules
            documentation](https://docs.chronosphere.io/control/shaping/rules/drop-rules#define-a-value-based-drop-rule)
            for more information.
    configv1DropRuleMode:
      type: string
      enum:
      - ENABLED
      - DISABLED
    configv1GcpMetricsIntegration:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the GcpMetricsIntegration. If a `slug`\
            \ isn't provided, one will be generated based of the `name` field. You\
            \ can't modify this field after the GcpMetricsIntegration is created."
        name:
          type: string
          description: Required. Name of the GcpMetricsIntegration. You can modify
            this value after the GcpMetricsIntegration is created.
        created_at:
          type: string
          description: Timestamp of when the GcpMetricsIntegration was created. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the GcpMetricsIntegration was last updated.
            Cannot be set by clients.
          format: date-time
          readOnly: true
        service_account:
          $ref: '#/components/schemas/configv1GcpMetricsIntegrationServiceAccount'
        metric_groups:
          type: array
          description: Metric groups to be ingested for this integration.
          items:
            $ref: '#/components/schemas/GcpMetricsIntegrationMetricGroup'
    configv1GcpMetricsIntegrationServiceAccount:
      type: object
      properties:
        client_email:
          type: string
          description: Email address of the service account to impersonate.
    configv1GrafanaDashboard:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the GrafanaDashboard. If a `slug` isn't\
            \ provided, one will be generated based of the `name` field. You can't\
            \ modify this field after the GrafanaDashboard is created."
        name:
          type: string
          description: Required. Name of the GrafanaDashboard. You can modify this
            value after the GrafanaDashboard is created.
        created_at:
          type: string
          description: Timestamp of when the GrafanaDashboard was created. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the GrafanaDashboard was last updated. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        bucket_slug:
          type: string
          description: |-
            Slug of the bucket the dashboard belongs to. Required if collection_slug
            is not set.
        collection_slug:
          type: string
          description: |-
            Slug of the collection the dashboard belongs to. Required if bucket_slug
            is not set.
        collection:
          $ref: '#/components/schemas/configv1CollectionReference'
        dashboard_json:
          type: string
          description: Required raw JSON of the Grafana dashboard.
    configv1LabelFilter:
      type: object
      properties:
        name:
          type: string
          description: Name of the label to match.
          example: job
        value_glob:
          type: string
          description: Glob value of the label to match.
          example: myservice*
    configv1LabelMatcher:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/configv1LabelMatcherMatcherType'
        name:
          type: string
          description: name always matches against an exact label name.
        value:
          type: string
          description: value matches against a label value based on the configured
            type.
    configv1LabelMatcherMatcherType:
      type: string
      enum:
      - EXACT
      - REGEX
    configv1ListBucketsResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        buckets:
          type: array
          items:
            $ref: '#/components/schemas/configv1Bucket'
    configv1ListClassicDashboardsResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        classic_dashboards:
          type: array
          items:
            $ref: '#/components/schemas/configv1GrafanaDashboard'
    configv1ListCollectionsResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        collections:
          type: array
          items:
            $ref: '#/components/schemas/configv1Collection'
    configv1ListDashboardsResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        dashboards:
          type: array
          items:
            $ref: '#/components/schemas/configv1Dashboard'
    configv1ListDatasetsResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        datasets:
          type: array
          items:
            $ref: '#/components/schemas/configv1Dataset'
    configv1ListDerivedLabelsResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        derived_labels:
          type: array
          items:
            $ref: '#/components/schemas/configv1DerivedLabel'
    configv1ListDerivedMetricsResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        derived_metrics:
          type: array
          items:
            $ref: '#/components/schemas/configv1DerivedMetric'
    configv1ListDropRulesResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        drop_rules:
          type: array
          items:
            $ref: '#/components/schemas/configv1DropRule'
    configv1ListGcpMetricsIntegrationsResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        gcp_metrics_integrations:
          type: array
          items:
            $ref: '#/components/schemas/configv1GcpMetricsIntegration'
    configv1ListGrafanaDashboardsResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        grafana_dashboards:
          type: array
          items:
            $ref: '#/components/schemas/configv1GrafanaDashboard'
    configv1ListLogScaleActionsResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        log_scale_actions:
          type: array
          items:
            $ref: '#/components/schemas/configv1LogScaleAction'
    configv1ListLogScaleAlertsResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        log_scale_alerts:
          type: array
          items:
            $ref: '#/components/schemas/configv1LogScaleAlert'
    configv1ListMappingRulesResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        mapping_rules:
          type: array
          items:
            $ref: '#/components/schemas/configv1MappingRule'
    configv1ListMonitorsResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        monitors:
          type: array
          items:
            $ref: '#/components/schemas/configv1Monitor'
    configv1ListMutingRulesResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        muting_rules:
          type: array
          items:
            $ref: '#/components/schemas/configv1MutingRule'
    configv1ListNotificationPoliciesResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        notification_policies:
          type: array
          items:
            $ref: '#/components/schemas/configv1NotificationPolicy'
    configv1ListNotifiersResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        notifiers:
          type: array
          items:
            $ref: '#/components/schemas/configv1Notifier'
    configv1ListRecordingRulesResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        recording_rules:
          type: array
          items:
            $ref: '#/components/schemas/configv1RecordingRule'
    configv1ListRollupRulesResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        rollup_rules:
          type: array
          items:
            $ref: '#/components/schemas/configv1RollupRule'
    configv1ListSLOsResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        slos:
          type: array
          items:
            $ref: '#/components/schemas/configv1SLO'
    configv1ListServiceAccountsResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        service_accounts:
          type: array
          items:
            $ref: '#/components/schemas/configv1ServiceAccount'
    configv1ListTeamsResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        teams:
          type: array
          items:
            $ref: '#/components/schemas/configv1Team'
    configv1ListTraceBehaviorsResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        trace_behaviors:
          type: array
          items:
            $ref: '#/components/schemas/configv1TraceBehavior'
    configv1ListTraceJaegerRemoteSamplingStrategiesResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        trace_jaeger_remote_sampling_strategies:
          type: array
          items:
            $ref: '#/components/schemas/configv1TraceJaegerRemoteSamplingStrategy'
    configv1ListTraceMetricsRulesResponse:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/configv1PageResult'
        trace_metrics_rules:
          type: array
          description: Found trace metrics rules.
          items:
            $ref: '#/components/schemas/configv1TraceMetricsRule'
    configv1LogAllocationConfig:
      type: object
      properties:
        created_at:
          type: string
          description: Timestamp of when the LogAllocationConfig was created. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the LogAllocationConfig was last updated.
            Cannot be set by clients.
          format: date-time
          readOnly: true
        default_dataset:
          $ref: '#/components/schemas/LogAllocationConfigDefaultDataset'
        dataset_allocations:
          type: array
          description: Defines datasets and budget allocations. Datasets are evaluated
            in order.
          items:
            $ref: '#/components/schemas/LogAllocationConfigDatasetAllocation'
      description: |-
        LogAllocationConfig is a singleton configuration object that specifies the
        configuration for Log budget allocations.
    configv1LogAllocationConfigAllocation:
      type: object
      properties:
        percent_of_license:
          type: number
          description: Sets the percentage of the license limit to allocate to the
            default dataset.
          format: double
      description: Configuration for allocating resources to a dataset.
    configv1LogDataset:
      type: object
      properties:
        match_criteria:
          $ref: '#/components/schemas/configv1LogSearchFilter'
    configv1LogIngestConfig:
      type: object
      properties:
        created_at:
          type: string
          description: Timestamp of when the LogIngestConfig was created. Cannot be
            set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the LogIngestConfig was last updated. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        parsers:
          type: array
          description: The ordered list of parsers to run on ingested logs. The first
            parser which matches the log is used.
          items:
            $ref: '#/components/schemas/configv1LogParser'
      description: LogIngestConfig is a singleton configuration object that specifies
        the configuration for log ingest.
    configv1LogParser:
      type: object
      properties:
        name:
          type: string
          description: Name is the name of the parser.
        regex:
          type: string
          description: Regex is the Re2 regex parser pattern to apply. Named capturing
            groups become named fields in the extracted log.
    configv1LogScaleAction:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the LogScaleAction. If a `slug` isn't\
            \ provided, one will be generated based of the `name` field. You can't\
            \ modify this field after the LogScaleAction is created."
        repository:
          type: string
          description: Name of the LogScale repository the alerts belongs to. Required.
        name:
          type: string
          description: Name of an action.
        created_at:
          type: string
          description: Timestamp of when the LogScaleAction was created. Cannot be
            set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the LogScaleAction was last updated. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        action_type:
          $ref: '#/components/schemas/LogScaleActionActionType'
        email_action:
          $ref: '#/components/schemas/LogScaleActionEmailAction'
        humio_action:
          $ref: '#/components/schemas/LogScaleActionHumioRepoAction'
        ops_genie_action:
          $ref: '#/components/schemas/LogScaleActionOpsGenieAction'
        pager_duty_action:
          $ref: '#/components/schemas/LogScaleActionPagerDutyAction'
        slack_action:
          $ref: '#/components/schemas/LogScaleActionSlackAction'
        slack_post_message_action:
          $ref: '#/components/schemas/LogScaleActionSlackPostMessageAction'
        victor_ops_action:
          $ref: '#/components/schemas/LogScaleActionVictorOpsAction'
        webhook_action:
          $ref: '#/components/schemas/LogScaleActionWebhookAction'
        upload_file_action:
          $ref: '#/components/schemas/LogScaleActionUploadFileAction'
    configv1LogScaleAlert:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the LogScaleAlert. If a `slug` isn't\
            \ provided, one will be generated based of the `name` field. You can't\
            \ modify this field after the LogScaleAlert is created."
        repository:
          type: string
          description: Name of LogScale repository the alerts belongs to. Required.
        name:
          type: string
          description: Name of the alert.
        created_at:
          type: string
          description: Timestamp of when the LogScaleAlert was created. Cannot be
            set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the LogScaleAlert was last updated. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        description:
          type: string
          description: Description of the alert.
        disabled:
          type: boolean
          description: Flag indicating whether the alert is disabled.
        log_scale_query:
          type: string
          description: LogScale query to execute.
          example: level = ERROR | severity > 3 | count(as=numErrors) | numErrors
            > 500
        time_window_secs:
          type: integer
          description: |-
            Lookback window used for an alert's evaluation.
            If this is set to 86400 seconds (24 hours), only the events from the last 24 hours will be considered when the alert query is run.
          format: int32
          example: 3600
        throttle_secs:
          type: integer
          description: Throttle time in seconds. The alert is triggered at most once
            per throttle period.
          format: int32
        throttle_field:
          type: string
          description: Field to throttle on. Optional.
        log_scale_action_slugs:
          type: array
          description: |-
            Slugs of LogScale actions that will receive the alerts. When the value is empty
            this alert won't trigger. Optional.
          items:
            type: string
        tags:
          type: array
          description: Tags attached to the alert.
          items:
            type: string
        run_as_user:
          type: string
          description: Email of the user that the alert runs on behalf of. Required.
        alert_type:
          $ref: '#/components/schemas/LogScaleAlertAlertType'
    configv1LogSearchFilter:
      type: object
      properties:
        query:
          type: string
          description: |-
            Returns logs that match this query. The query can include only top-level
            operations. Nested clauses aren't supported. Only one type of `AND` or `OR`
            operator is allowed.
    configv1MappingRule:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the MappingRule. If a `slug` isn't provided,\
            \ one will be generated based of the `name` field. You can't modify this\
            \ field after the MappingRule is created."
        name:
          type: string
          description: Required. Name of the MappingRule. You can modify this value
            after the MappingRule is created.
        created_at:
          type: string
          description: Timestamp of when the MappingRule was created. Cannot be set
            by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the MappingRule was last updated. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        bucket_slug:
          type: string
          description: Required. Slug of the bucket the MappingRule belongs to.
        filters:
          type: array
          description: Required filters that determine to which metrics to apply the
            rule.
          items:
            $ref: '#/components/schemas/configv1LabelFilter'
        aggregation_policy:
          $ref: '#/components/schemas/MappingRuleAggregationPolicy'
        drop:
          type: boolean
          description: |-
            Whether to drop the given set of metrics. If set, then the aggregation
            policy can't be set.
        mode:
          $ref: '#/components/schemas/configv1MappingRuleMode'
    configv1MappingRuleMode:
      type: string
      description: |2-
         - ENABLED: ENABLED rules are applied. Rules default to ENABLED.
         - PREVIEW: PREVIEW rules are not applied, but shaping impact stats
        for them rule are recorded.
      enum:
      - ENABLED
      - PREVIEW
    configv1MappingRuleStoragePolicy:
      type: object
      properties:
        resolution:
          type: string
          description: Required resolution of the aggregated metrics.
        retention:
          type: string
          description: Required retention of the aggregated metrics.
    configv1Monitor:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the Monitor. If a `slug` isn't provided,\
            \ one will be generated based of the `name` field. You can't modify this\
            \ field after the Monitor is created."
        name:
          type: string
          description: Required. Name of the Monitor. You can modify this value after
            the Monitor is created.
        created_at:
          type: string
          description: Timestamp of when the Monitor was created. Cannot be set by
            clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the Monitor was last updated. Cannot be set
            by clients.
          format: date-time
          readOnly: true
        bucket_slug:
          type: string
          description: |-
            Slug of the bucket the monitor belongs to. Required if `collection_slug` isn't
            set.
        collection_slug:
          type: string
          description: |-
            Slug of the collection the monitor belongs to. Required if `bucket_slug` isn't
            set.
        collection:
          $ref: '#/components/schemas/configv1CollectionReference'
        labels:
          type: object
          additionalProperties:
            type: string
          description: |-
            Required. Labels to include in notifications generated by this monitor, and can
            be used to route alerts with notification overrides.
        annotations:
          type: object
          additionalProperties:
            type: string
          description: |-
            Annotations are visible in notifications generated by this monitor.
            They can be be templated with labels from notifications.
        signal_grouping:
          $ref: '#/components/schemas/MonitorSignalGrouping'
        series_conditions:
          $ref: '#/components/schemas/MonitorSeriesConditions'
        notification_policy_slug:
          type: string
          description: |-
            Specifies the notification policy used to route alerts generated by the monitor.
            If omitted, the notification policy is inherited from the monitor.
        interval_secs:
          type: integer
          description: "Specifies how often alerts are evaluated. Default: `60s`."
          format: int32
        prometheus_query:
          type: string
          description: "PromQL query to evaluate for the alert. If set, no other queries\
            \ can be set."
          example: "up{job=\"prometheus\"} == 0"
        graphite_query:
          type: string
          description: "Graphite query to evaluate for the alert. If set, no other\
            \ queries can be set."
          example: sumSeries(stats.timers.*.mean_90)
        schedule:
          $ref: '#/components/schemas/MonitorSchedule'
        logging_query:
          type: string
          description: "Logging query to evaluate for the alert. If set, no other\
            \ queries can be set."
    configv1MutingRule:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the MutingRule. If a `slug` isn't provided,\
            \ one will be generated based of the `name` field. You can't modify this\
            \ field after the MutingRule is created."
        name:
          type: string
          description: Required. Name of the MutingRule. You can modify this value
            after the MutingRule is created.
        created_at:
          type: string
          description: Timestamp of when the MutingRule was created. Cannot be set
            by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the MutingRule was last updated. Cannot be
            set by clients.
          format: date-time
          readOnly: true
        label_matchers:
          type: array
          description: |-
            Required. Specifies which series are silenced by the muting rule. Alerting
            series must match all muting rule matchers to be silenced. You can't update this
            value. Updates must specify the original value.
          items:
            $ref: '#/components/schemas/configv1MutingRuleLabelMatcher'
        starts_at:
          type: string
          description: |-
            Required. Timestamp of when the muting rule becomes active. You can't update
            this value. Updates must specify the original value.
          format: date-time
        ends_at:
          type: string
          description: Required. Timestamp of when the muting rule stops being active.
          format: date-time
        comment:
          type: string
          description: Descriptive comment that explains why the muting rule was created.
    configv1MutingRuleLabelMatcher:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/configv1MutingRuleLabelMatcherMatcherType'
        name:
          type: string
          description: Required. Always matches against an exact label name.
        value:
          type: string
          description: Required. Matches against a label value based on the configured
            type.
    configv1MutingRuleLabelMatcherMatcherType:
      type: string
      enum:
      - EXACT
      - REGEX
      - NOT_EXACT
      - NOT_REGEXP
    configv1NotificationPolicy:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the NotificationPolicy. If a `slug` isn't\
            \ provided, one will be generated based of the `name` field. You can't\
            \ modify this field after the NotificationPolicy is created."
        name:
          type: string
          description: Required. Name of the NotificationPolicy. You can modify this
            value after the NotificationPolicy is created.
        created_at:
          type: string
          description: Timestamp of when the NotificationPolicy was created. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the NotificationPolicy was last updated.
            Cannot be set by clients.
          format: date-time
          readOnly: true
        bucket_slug:
          type: string
          description: |-
            Slug of the bucket the notification policy belongs to. Required if
            team_slug is not set.
        team_slug:
          type: string
          description: |-
            Slug of the team the notification policy belongs to. Required if
            bucket_slug is not set.
        routes:
          $ref: '#/components/schemas/NotificationPolicyRoutes'
    configv1Notifier:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the Notifier. If a `slug` isn't provided,\
            \ one will be generated based of the `name` field. You can't modify this\
            \ field after the Notifier is created."
        name:
          type: string
          description: Required. Name of the Notifier. You can modify this value after
            the Notifier is created.
        created_at:
          type: string
          description: Timestamp of when the Notifier was created. Cannot be set by
            clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the Notifier was last updated. Cannot be
            set by clients.
          format: date-time
          readOnly: true
        skip_resolved:
          type: boolean
          description: "If true, do not notify on resolved alerts. Cannot set if discard\
            \ is set."
        webhook:
          $ref: '#/components/schemas/NotifierWebhookConfig'
        slack:
          $ref: '#/components/schemas/NotifierSlackConfig'
        pagerduty:
          $ref: '#/components/schemas/NotifierPagerdutyConfig'
        email:
          $ref: '#/components/schemas/NotifierEmailConfig'
        ops_genie:
          $ref: '#/components/schemas/NotifierOpsGenieConfig'
        victor_ops:
          $ref: '#/components/schemas/NotifierVictorOpsConfig'
        discard:
          type: boolean
          description: |-
            If set, enables the "discard" integration which simply discards all
            notifications. Cannot set if another integration is set.
    configv1OtelMetricsIngestion:
      type: object
      properties:
        created_at:
          type: string
          description: Timestamp of when the OtelMetricsIngestion was created. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the OtelMetricsIngestion was last updated.
            Cannot be set by clients.
          format: date-time
          readOnly: true
        resource_attributes:
          $ref: '#/components/schemas/OtelMetricsIngestionResourceAttributes'
    configv1PageParams:
      type: object
      properties:
        max_size:
          type: integer
          description: |-
            Page size preference (i.e. how many items are returned in the next
            page). If zero, the server will use a default. Regardless of what size
            is given, clients must never assume how many items will be returned.
          format: int64
        token:
          type: string
          description: |-
            Opaque page token identifying which page to request. An empty token
            identifies the first page.
    configv1PageResult:
      type: object
      properties:
        next_token:
          type: string
          description: |-
            Opaque page token which identifies the next page of items which the
            client should request. An empty next_token indicates that there are no
            more items to return.
    configv1ReadBucketResponse:
      type: object
      properties:
        bucket:
          $ref: '#/components/schemas/configv1Bucket'
    configv1ReadClassicDashboardResponse:
      type: object
      properties:
        classic_dashboard:
          $ref: '#/components/schemas/configv1GrafanaDashboard'
    configv1ReadCollectionResponse:
      type: object
      properties:
        collection:
          $ref: '#/components/schemas/configv1Collection'
    configv1ReadDashboardResponse:
      type: object
      properties:
        dashboard:
          $ref: '#/components/schemas/configv1Dashboard'
    configv1ReadDatasetResponse:
      type: object
      properties:
        dataset:
          $ref: '#/components/schemas/configv1Dataset'
    configv1ReadDerivedLabelResponse:
      type: object
      properties:
        derived_label:
          $ref: '#/components/schemas/configv1DerivedLabel'
    configv1ReadDerivedMetricResponse:
      type: object
      properties:
        derived_metric:
          $ref: '#/components/schemas/configv1DerivedMetric'
    configv1ReadDropRuleResponse:
      type: object
      properties:
        drop_rule:
          $ref: '#/components/schemas/configv1DropRule'
    configv1ReadGcpMetricsIntegrationResponse:
      type: object
      properties:
        gcp_metrics_integration:
          $ref: '#/components/schemas/configv1GcpMetricsIntegration'
    configv1ReadGrafanaDashboardResponse:
      type: object
      properties:
        grafana_dashboard:
          $ref: '#/components/schemas/configv1GrafanaDashboard'
    configv1ReadLogAllocationConfigResponse:
      type: object
      properties:
        log_allocation_config:
          $ref: '#/components/schemas/configv1LogAllocationConfig'
    configv1ReadLogIngestConfigResponse:
      type: object
      properties:
        log_ingest_config:
          $ref: '#/components/schemas/configv1LogIngestConfig'
    configv1ReadLogScaleActionResponse:
      type: object
      properties:
        log_scale_action:
          $ref: '#/components/schemas/configv1LogScaleAction'
    configv1ReadLogScaleAlertResponse:
      type: object
      properties:
        log_scale_alert:
          $ref: '#/components/schemas/configv1LogScaleAlert'
    configv1ReadMappingRuleResponse:
      type: object
      properties:
        mapping_rule:
          $ref: '#/components/schemas/configv1MappingRule'
    configv1ReadMonitorResponse:
      type: object
      properties:
        monitor:
          $ref: '#/components/schemas/configv1Monitor'
    configv1ReadMutingRuleResponse:
      type: object
      properties:
        muting_rule:
          $ref: '#/components/schemas/configv1MutingRule'
    configv1ReadNotificationPolicyResponse:
      type: object
      properties:
        notification_policy:
          $ref: '#/components/schemas/configv1NotificationPolicy'
    configv1ReadNotifierResponse:
      type: object
      properties:
        notifier:
          $ref: '#/components/schemas/configv1Notifier'
    configv1ReadOtelMetricsIngestionResponse:
      type: object
      properties:
        otel_metrics_ingestion:
          $ref: '#/components/schemas/configv1OtelMetricsIngestion'
    configv1ReadRecordingRuleResponse:
      type: object
      properties:
        recording_rule:
          $ref: '#/components/schemas/configv1RecordingRule'
    configv1ReadResourcePoolsResponse:
      type: object
      properties:
        resource_pools:
          $ref: '#/components/schemas/configv1ResourcePools'
    configv1ReadRollupRuleResponse:
      type: object
      properties:
        rollup_rule:
          $ref: '#/components/schemas/configv1RollupRule'
    configv1ReadSLOResponse:
      type: object
      properties:
        slo:
          $ref: '#/components/schemas/configv1SLO'
    configv1ReadServiceAccountResponse:
      type: object
      properties:
        service_account:
          $ref: '#/components/schemas/configv1ServiceAccount'
    configv1ReadServiceResponse:
      type: object
      properties:
        service:
          $ref: '#/components/schemas/configv1Service'
    configv1ReadTeamResponse:
      type: object
      properties:
        team:
          $ref: '#/components/schemas/configv1Team'
    configv1ReadTraceBehaviorConfigResponse:
      type: object
      properties:
        trace_behavior_config:
          $ref: '#/components/schemas/configv1TraceBehaviorConfig'
    configv1ReadTraceBehaviorResponse:
      type: object
      properties:
        trace_behavior:
          $ref: '#/components/schemas/configv1TraceBehavior'
    configv1ReadTraceJaegerRemoteSamplingStrategyResponse:
      type: object
      properties:
        trace_jaeger_remote_sampling_strategy:
          $ref: '#/components/schemas/configv1TraceJaegerRemoteSamplingStrategy'
    configv1ReadTraceMetricsRuleResponse:
      type: object
      properties:
        trace_metrics_rule:
          $ref: '#/components/schemas/configv1TraceMetricsRule'
    configv1ReadTraceTailSamplingRulesResponse:
      type: object
      properties:
        trace_tail_sampling_rules:
          $ref: '#/components/schemas/configv1TraceTailSamplingRules'
    configv1RecordingRule:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the RecordingRule. If a `slug` isn't\
            \ provided, one will be generated based of the `name` field. You can't\
            \ modify this field after the RecordingRule is created."
        name:
          type: string
          description: Required. Name of the RecordingRule. You can modify this value
            after the RecordingRule is created.
        created_at:
          type: string
          description: Timestamp of when the RecordingRule was created. Cannot be
            set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the RecordingRule was last updated. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        bucket_slug:
          type: string
          description: Optional slug of the bucket the RecordingRule belongs to.
        label_policy:
          $ref: '#/components/schemas/configv1RecordingRuleLabelPolicy'
        interval_secs:
          type: integer
          description: Optional interval for evaluating the recording rule.
          format: int32
        metric_name:
          type: string
          description: |-
            The name of the time series to use for output, which must be a valid
            metric name.
        prometheus_expr:
          type: string
          description: |-
            The PromQL expression to evaluate at the time of each evaluation cycle.
            The result is recorded as a new time series with its metric name
            defined by the metric_name (or name) field.
        execution_group:
          type: string
          description: |-
            Optional execution_group in which this rule is to be evaluated.
            At least one of bucket_slug and execution_group must be set. If both are set, then they are expected to match.
    configv1RecordingRuleLabelPolicy:
      type: object
      properties:
        add:
          type: object
          additionalProperties:
            type: string
          description: Labels to add or overwrite before storing the result.
    configv1ResourcePools:
      type: object
      properties:
        created_at:
          type: string
          description: Timestamp of when the ResourcePools was created. Cannot be
            set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the ResourcePools was last updated. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        default_pool:
          $ref: '#/components/schemas/ResourcePoolsDefaultPool'
        pools:
          type: array
          description: Optional pools. Cannot set more than 20 pools.
          items:
            $ref: '#/components/schemas/ResourcePoolsPool'
    configv1ResourcePoolsAllocation:
      type: object
      properties:
        percent_of_license:
          type: number
          description: |-
            Percent of the license to allocate to this pool. Must be between 0
            and 100 inclusive. The percent_of_license values across all pools
            (excluding the default pool) must be <= 100. default_pool need not specify
            an allocation, and implicitly receives any remaining allocation. If default_pool does
            explicitly specify an allocation, the sum of percent_of_license across all pools
            (including the default pool) must exactly equal 100.
          format: double
        fixed_values:
          type: array
          description: |-
            Fixed values optionally override `percent_of_license` allocations for specified licenses.
            When defining fixed values for a license, all pools must have an explicit fixed value
            specification for that given license. The default pool receives all remaining quota left
            within the license, after subtracting the sum of fixed values across pools for that license.
          items:
            $ref: '#/components/schemas/AllocationFixedValue'
        priority_thresholds:
          type: array
          description: |-
            Optional. For supported licenses, defines thresholds with strict limits for
            when to drop new consumption of the license for a pool. Currently, only
            `PERSISTED_CARDINALITY_STANDARD` and `PERSISTED_CARDINALITY_HISTOGRAM` are
            supported.
          items:
            $ref: '#/components/schemas/AllocationThresholds'
    configv1ResourceType:
      type: string
      enum:
      - BUCKET
      - DASHBOARD
      - GRAFANA_DASHBOARD
      - MONITOR
      - NOTIFICATION_POLICY
      - RECORDING_RULE
      - MAPPING_RULE
      - ROLLUP_RULE
    configv1RollupRule:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the RollupRule. If a `slug` isn't provided,\
            \ one will be generated based of the `name` field. You can't modify this\
            \ field after the RollupRule is created."
        name:
          type: string
          description: Required. Name of the RollupRule. You can modify this value
            after the RollupRule is created.
        created_at:
          type: string
          description: Timestamp of when the RollupRule was created. Cannot be set
            by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the RollupRule was last updated. Cannot be
            set by clients.
          format: date-time
          readOnly: true
        bucket_slug:
          type: string
          description: Required. Slug of the bucket the RollupRule belongs to.
        filters:
          type: array
          description: |-
            Filters incoming metrics by label. If multiple label filters are specified, an
            incoming metric must match every label filter to match the rule. Label values
            support glob patterns, including matching multiple patterns with an `OR`, such
            as `service:{svc1,svc2}`. These special filters are available for matching
            metrics by non-label request metadata:
             * `__metric_type__`: Matches the incoming metric's [Observability Platform
               metric
               type](https://docs.chronosphere.io/control/shaping/types#observability-platform-types).
               This is the recommended method for filtering on metric type. Valid values:
               `cumulative_counter`, `cumulative_exponential_histogram`, `delta_counter`,
               `delta_exponential_histogram`, `gauge`, `measurement`.
             * `__metric_source__`: Matches the incoming metric's [source
               format](https://docs.chronosphere.io/control/shaping/types#supported-formats).
               Valid values: `carbon`, `chrono_gcp`, `dogstatsd`, `open_metrics`,
               `open_telemetry`, `prometheus`, `signalfx`, `statsd`, `wavefront`.
             * `__m3_prom_type__`: When ingesting with Prometheus, matches the incoming
               metric's [Prometheus metric
               type](https://docs.chronosphere.io/control/shaping/types#prometheus). Valid
               values: `counter`, `gauge`, `histogram`, `gauge_histogram`, `summary`,
               `info`, `state_set`, `quantile`.
             * `__otel_type__`: When ingesting with OpenTelemetry, matches on the incoming
               metric's [OpenTelemetry metric type](https://docs.chronosphere.io/control/shaping/types#opentelemetry).
               Valid values: `sum`, `monotonic_sum`, `gauge`, `histogram`, `exp_histogram`,
               `summary`.
            For example, the following filter matches any cumulative counter metric with a
            `service=gateway` label whose metric name starts with `http_requests_`:
            ```
            __metric_type__:cumulative_counter service:gateway __name__:http_requests_*
            ```
          items:
            $ref: '#/components/schemas/configv1LabelFilter'
        metric_name:
          type: string
          description: This field is optional for Graphite rollup rules.
        metric_type:
          $ref: '#/components/schemas/RollupRuleMetricType'
        aggregation:
          $ref: '#/components/schemas/configv1AggregationType'
        storage_policy:
          $ref: '#/components/schemas/configv1RollupRuleStoragePolicy'
        interval:
          type: string
          description: |-
            The distance in time between aggregated data points. Intervals are based on your
            [retention policy](https://docs.chronosphere.io/administer/licensing#retention-policies).
            Use this optional field to set a custom interval.
            This field was known as `storage_policies` in version
            0.286.0-2023-01-06-release.1 and earlier.
        expansive_match:
          type: boolean
          description: |-
            DEPRECATED.
            A series matches and aggregates only if each label defined by filters and
            `label_policy.keep` or `graphite_label_policy.replace` (respectively) exist in
            the series. Setting `expansive_match=true` removes this restriction. Default:
            `expansive_match=false`.

            If `false`, a series matches and aggregates only if each label defined by the
            provided `filters` and the `label_policy.keep` or
            `graphite_label_policy.replace` settings exist in the series.
        add_metric_type_label:
          type: boolean
          description: Defines whether to add a `__rollup_type__` label in the new
            metric.
        drop_raw:
          type: boolean
          description: |-
            Defines whether to automatically generate drop rules for this rollup rule.
            Set to `true` to remove raw metrics that match this rollup rule. Default: `false`.
        label_policy:
          $ref: '#/components/schemas/configv1RollupRuleLabelPolicy'
        label_replace:
          $ref: '#/components/schemas/RollupRuleLabelReplace'
        mode:
          $ref: '#/components/schemas/configv1RollupRuleMode'
        graphite_label_policy:
          $ref: '#/components/schemas/RollupRuleGraphiteLabelPolicy'
    configv1RollupRuleLabelPolicy:
      type: object
      properties:
        keep:
          type: array
          description: |-
            Labels that should be retained in the output metric. If set, then the
            discard field must be empty.
          items:
            type: string
        discard:
          type: array
          description: |-
            Labels that should be discarded in the output metric. If set, then the
            keep field must be empty.
          items:
            type: string
      description: |-
        TODO: consolidate w/ RecordingRule.LabelPolicy once both of these
         entities implement the same label semantics.
    configv1RollupRuleMode:
      title: "- PREVIEW: TODO: DISABLED = 2;"
      type: string
      enum:
      - ENABLED
      - PREVIEW
    configv1RollupRuleStoragePolicy:
      type: object
      properties:
        resolution:
          type: string
          description: Required resolution of the aggregated metrics.
        retention:
          type: string
          description: Required retention of the aggregated metrics.
    configv1SLI:
      type: object
      properties:
        custom_indicator:
          $ref: '#/components/schemas/SLICustomIndicatorConfig'
        custom_timeslice_indicator:
          $ref: '#/components/schemas/SLICustomTimeSliceIndicatorConfig'
        custom_dimension_labels:
          type: array
          description: |-
            Used to configure additional labels to export from
            the underlying queries. This feature provides a logical budget to group
            unique combination of dimensions. For example, if you want to track a
            budget per endpoint, add the endpoint label as a dimension. These dimensions
            are provided on the top-level SLI so that SLOs will receive them
            in `.GroupBy`.
          items:
            type: string
        additional_promql_filters:
          type: array
          description: |-
            These are made available to the SLO queries and are intended to be used for things
            like `cluster!~"dev"`
          items:
            $ref: '#/components/schemas/commonPromQLMatcher'
    configv1SLO:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the SLO. If a `slug` isn't provided,\
            \ one will be generated based of the `name` field. You can't modify this\
            \ field after the SLO is created."
        name:
          type: string
          description: Required. Name of the SLO. You can modify this value after
            the SLO is created.
        description:
          type: string
        created_at:
          type: string
          description: Timestamp of when the SLO was created. Cannot be set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the SLO was last updated. Cannot be set by
            clients.
          format: date-time
          readOnly: true
        collection_ref:
          $ref: '#/components/schemas/configv1CollectionReference'
        notification_policy_slug:
          type: string
          description: |-
            Optional notification policy to explicitly apply to the generated monitors.
            Slug of the notification policy to use for the SLO. If you don't specify a value,
            then the collection or service this SLO belongs to must have a notification
            policy.
        signal_grouping:
          $ref: '#/components/schemas/MonitorSignalGrouping'
        labels:
          type: object
          additionalProperties:
            type: string
          description: |-
            Labels are visible in notifications generated by this SLO,
            and can be used to route alerts with notification overrides.
        annotations:
          type: object
          additionalProperties:
            type: string
          description: |-
            Annotations are visible in notifications generated by this SLO
            They can be be templated with labels from notifications.
        sli:
          $ref: '#/components/schemas/configv1SLI'
        definition:
          $ref: '#/components/schemas/SLODefinition'
    configv1Service:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the Service. If a `slug` isn't provided,\
            \ one will be generated based of the `name` field. You can't modify this\
            \ field after the Service is created."
        name:
          type: string
          description: Required. Name of the Service. You can modify this value after
            the Service is created.
        created_at:
          type: string
          description: Timestamp of when the Service was created. Cannot be set by
            clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the Service was last updated. Cannot be set
            by clients.
          format: date-time
          readOnly: true
        team_slug:
          type: string
          description: Required slug of the team the service collection belongs to.
        description:
          type: string
          description: Optional description of the service collection.
        notification_policy_slug:
          type: string
          description: |-
            Slug of the notification policy used by default for monitors in this service collection.
            This is optional if the collection does not contain monitors or all of its monitors explicitly reference a policy.
            This does not override the policy used when a monitor explicitly references a policy.
    configv1ServiceAccount:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the ServiceAccount. If a `slug` isn't\
            \ provided, one will be generated based of the `name` field. You can't\
            \ modify this field after the ServiceAccount is created."
        name:
          type: string
          description: Required. Name of the ServiceAccount. You can modify this value
            after the ServiceAccount is created.
        created_at:
          type: string
          description: Timestamp of when the ServiceAccount was created. Cannot be
            set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the ServiceAccount was last updated. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        token:
          type: string
          description: |-
            token is the generated API token of the service account. Cannot be set by
            clients.

            token is only set once by the server in the CreateServiceAccount response.
            ReadServiceAccount will always return an empty token. Therefore, when
            creating a service account, clients are responsible for securely storing
            the response token on their end, as they will not be able to read it
            again.
          readOnly: true
        email:
          type: string
          description: |-
            email is the generated email address of the service account. Cannot be set
            by clients.
          readOnly: true
        unrestricted:
          type: boolean
          description: |-
            If set, grants the service account access to all Chronosphere APIs
            (including resource configuration and metric data) within the access
            controls defined by the service account's team membership.

            Exactly one of unrestricted or metrics_restriction must be set.
        metrics_restriction:
          $ref: '#/components/schemas/ServiceAccountMetricsRestriction'
    configv1Team:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the Team. If a `slug` isn't provided,\
            \ one will be generated based of the `name` field. You can't modify this\
            \ field after the Team is created."
        name:
          type: string
          description: Required. Name of the Team. You can modify this value after
            the Team is created.
        created_at:
          type: string
          description: Timestamp of when the Team was created. Cannot be set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the Team was last updated. Cannot be set
            by clients.
          format: date-time
          readOnly: true
        user_emails:
          type: array
          description: Unordered set of emails whose users are members of this team.
          items:
            type: string
        description:
          type: string
          description: Optional short description of the team.
    configv1TraceBehavior:
      type: object
      properties:
        name:
          type: string
          description: Required. Name of the TraceBehavior. You can modify this value
            after the TraceBehavior is created.
        slug:
          type: string
          description: "Unique identifier of the TraceBehavior. If a `slug` isn't\
            \ provided, one will be generated based of the `name` field. You can't\
            \ modify this field after the TraceBehavior is created."
        created_at:
          type: string
          description: Timestamp of when the TraceBehavior was created. Cannot be
            set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the TraceBehavior was last updated. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        description:
          type: string
        base_tail_sample_rate:
          type: number
          description: "Sample rate for fully assembled traces that do not apply to\
            \ the error, fast, slow, large, or small sampling options."
          format: double
        base_head_sample_rate:
          type: number
          description: |-
            Sample rate for head sampling. This applies to all root spans that are enrolled in head sampling,
            but do not have a specific rule defined for their service.
          format: double
        error_sample_options:
          $ref: '#/components/schemas/TraceBehaviorErrorSampleOptions'
        fast_sample_options:
          $ref: '#/components/schemas/TraceBehaviorFastSampleOptions'
        slow_sample_options:
          $ref: '#/components/schemas/TraceBehaviorSlowSampleOptions'
        large_trace_sample_options:
          $ref: '#/components/schemas/TraceBehaviorLargeTraceSampleOptions'
        small_trace_sample_options:
          $ref: '#/components/schemas/TraceBehaviorSmallTraceSampleOptions'
    configv1TraceBehaviorConfig:
      type: object
      properties:
        created_at:
          type: string
          description: Timestamp of when the TraceBehaviorConfig was created. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the TraceBehaviorConfig was last updated.
            Cannot be set by clients.
          format: date-time
          readOnly: true
        main_behavior_assignments:
          type: array
          description: |-
            List of assignments for the main behavior. The referenced datasets will be
            enrolled in behaviors. The referenced behaviors are the active behaviors for the
            dataset when there is no active override. Only one main behavior can be assigned
            to a dataset. See the documentation for
            [customizing your sampling
            strategy](https://docs.chronosphere.io/control/sampling/behaviors#customize-your-sampling-strategy)
            for more information.
          items:
            $ref: '#/components/schemas/TraceBehaviorConfigMainBehaviorAssignment'
        override_behavior_assignments:
          type: array
          description: |-
            List of assignments for the override behavior. These assignments specify the
            active behavior for a dataset over a specific time range. Only one override
            behavior can be assigned to a dataset.
          items:
            $ref: '#/components/schemas/TraceBehaviorConfigOverrideBehaviorAssignment'
        dataset_priorities:
          type: array
          description: |-
            List of dataset priorities. This list specifies the order in which datasets are
            considered when determining the behavior to follow for a trace. Dataset
            priorities are used to break ties when a trace matches more than one dataset
            with an active behavior.
            * Each entry in this list must refer to the slug of an existing dataset.
            * The order of the list is the order in which the datasets are considered.
            * The list must contain all datasets referenced in either
              `main_behavior_assignments` or `override_behavior_assignments`.
            * The list can contain datasets that are not referenced in either of these
              assignments.
          items:
            type: string
        baseline_behavior_slug:
          type: string
          description: The baseline behavior to use for behavior assignments and base
            head sampling rates.
        preview_behavior_assignments:
          type: array
          description: |-
            List of assignments for the preview behavior. The referenced behaviors are in
            preview mode for the assigned dataset. You can assign only one preview behavior
            to a dataset.
          items:
            $ref: '#/components/schemas/TraceBehaviorConfigOverrideBehaviorAssignment'
      description: |-
        TraceBehaviorConfig is a singleton configuration object that specifies the
        configuration for trace behaviors.
    configv1TraceDataset:
      type: object
      properties:
        match_criteria:
          $ref: '#/components/schemas/configv1TraceSearchFilter'
    configv1TraceJaegerRemoteSamplingStrategy:
      type: object
      properties:
        slug:
          type: string
          description: "Unique identifier of the TraceJaegerRemoteSamplingStrategy.\
            \ If a `slug` isn't provided, one will be generated based of the `name`\
            \ field. You can't modify this field after the TraceJaegerRemoteSamplingStrategy\
            \ is created."
        name:
          type: string
          description: Required. Name of the TraceJaegerRemoteSamplingStrategy. You
            can modify this value after the TraceJaegerRemoteSamplingStrategy is created.
        created_at:
          type: string
          description: Timestamp of when the TraceJaegerRemoteSamplingStrategy was
            created. Cannot be set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the TraceJaegerRemoteSamplingStrategy was
            last updated. Cannot be set by clients.
          format: date-time
          readOnly: true
        service_name:
          type: string
          description: The name of the service this sampling strategy applies to.
            This must match the slug and name fields.
        applied_strategy:
          $ref: '#/components/schemas/TraceJaegerRemoteSamplingStrategyAppliedStrategy'
    configv1TraceMetricsRule:
      type: object
      properties:
        name:
          type: string
          description: Required. Name of the TraceMetricsRule. You can modify this
            value after the TraceMetricsRule is created.
        slug:
          type: string
          description: "Unique identifier of the TraceMetricsRule. If a `slug` isn't\
            \ provided, one will be generated based of the `name` field. You can't\
            \ modify this field after the TraceMetricsRule is created."
        created_at:
          type: string
          description: Timestamp of when the TraceMetricsRule was created. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Timestamp of when the TraceMetricsRule was last updated. Cannot
            be set by clients.
          format: date-time
          readOnly: true
        metric_name:
          type: string
          description: The name of the generated trace metrics.
        metric_labels:
          type: object
          additionalProperties:
            type: string
          description: Labels to apply to the generated trace metrics.
        histogram_buckets_secs:
          type: array
          description: "Histogram bucket values, in seconds, for generated duration\
            \ metrics."
          items:
            type: number
            format: double
        trace_filter:
          $ref: '#/components/schemas/configv1TraceSearchFilter'
        group_by:
          type: array
          description: Add labels to the resultant metrics based on these specified
            GroupBy messages.
          items:
            $ref: '#/components/schemas/configv1TraceMetricsRuleGroupBy'
    configv1TraceMetricsRuleGroupBy:
      type: object
      properties:
        label:
          type: string
          description: The label to use in the resultant metrics.
        key:
          $ref: '#/components/schemas/GroupByGroupByKey'
      description: GroupBy contains fields required to group the resultant metrics
        of a TraceMetricsRule by a specific key.
    configv1TraceSearchFilter:
      type: object
      properties:
        trace:
          $ref: '#/components/schemas/TraceSearchFilterTraceFilter'
        span:
          type: array
          description: |-
            Specifies the span conditions to match on. All conditions must be true in a
            single span for the span to be considered a match. If `span_count` is specified,
            the number of spans within the trace that match span conditions must be within
            `[min, max]`. You can specify multiple span conditions, and each can be
            satisfied by any number of spans within the trace.
          items:
            $ref: '#/components/schemas/TraceSearchFilterSpanFilter'
    configv1TraceTailSamplingRule:
      type: object
      properties:
        filter:
          $ref: '#/components/schemas/configv1TraceSearchFilter'
        sample_rate:
          type: number
          description: "A fraction of traces to keep, which should be a number between\
            \ 0 and 1, inclusive"
          format: double
        name:
          type: string
          description: "A human-readable name of the rule, which summarizes what it's\
            \ for"
        system_name:
          type: string
          description: Value used as the metric label value for metrics emitted relating
            to this rule.
        created_at:
          type: string
          description: When the rule was created (novel system_name)
          format: date-time
        updated_at:
          type: string
          description: When the rule was updated (existing system_name)
          format: date-time
      description: Contains configuration for one tail sampling rule.
    configv1TraceTailSamplingRules:
      type: object
      properties:
        created_at:
          type: string
          description: Set in API responses.
          format: date-time
          readOnly: true
        updated_at:
          type: string
          description: Set in API responses.
          format: date-time
          readOnly: true
        rules:
          type: array
          description: |-
            Optional. A list of rules, evaluated in order until a match is found,
            and the sample rate applied, or else the default sample rate is applied.
          items:
            $ref: '#/components/schemas/configv1TraceTailSamplingRule'
        default_sample_rate:
          $ref: '#/components/schemas/configv1DefaultSampleRate'
      description: Root object containing all tail sampling rules (for a tenant).
    configv1UpdateBucketResponse:
      type: object
      properties:
        bucket:
          $ref: '#/components/schemas/configv1Bucket'
    configv1UpdateClassicDashboardResponse:
      type: object
      properties:
        classic_dashboard:
          $ref: '#/components/schemas/configv1GrafanaDashboard'
    configv1UpdateCollectionResponse:
      type: object
      properties:
        collection:
          $ref: '#/components/schemas/configv1Collection'
    configv1UpdateDashboardResponse:
      type: object
      properties:
        dashboard:
          $ref: '#/components/schemas/configv1Dashboard'
    configv1UpdateDatasetResponse:
      type: object
      properties:
        dataset:
          $ref: '#/components/schemas/configv1Dataset'
    configv1UpdateDerivedLabelResponse:
      type: object
      properties:
        derived_label:
          $ref: '#/components/schemas/configv1DerivedLabel'
    configv1UpdateDerivedMetricResponse:
      type: object
      properties:
        derived_metric:
          $ref: '#/components/schemas/configv1DerivedMetric'
    configv1UpdateDropRuleResponse:
      type: object
      properties:
        drop_rule:
          $ref: '#/components/schemas/configv1DropRule'
    configv1UpdateGcpMetricsIntegrationResponse:
      type: object
      properties:
        gcp_metrics_integration:
          $ref: '#/components/schemas/configv1GcpMetricsIntegration'
    configv1UpdateGrafanaDashboardResponse:
      type: object
      properties:
        grafana_dashboard:
          $ref: '#/components/schemas/configv1GrafanaDashboard'
    configv1UpdateLogAllocationConfigRequest:
      type: object
      properties:
        log_allocation_config:
          $ref: '#/components/schemas/configv1LogAllocationConfig'
        create_if_missing:
          type: boolean
          description: "If true, the LogAllocationConfig will be created if it does\
            \ not already exist. If false, an error will be returned if the LogAllocationConfig\
            \ does not already exist."
        dry_run:
          type: boolean
          description: "If true, the LogAllocationConfig isn't created or updated,\
            \ and no response LogAllocationConfig will be returned. The response will\
            \ return an error if the given LogAllocationConfig is invalid."
    configv1UpdateLogAllocationConfigResponse:
      type: object
      properties:
        log_allocation_config:
          $ref: '#/components/schemas/configv1LogAllocationConfig'
    configv1UpdateLogIngestConfigRequest:
      type: object
      properties:
        log_ingest_config:
          $ref: '#/components/schemas/configv1LogIngestConfig'
        create_if_missing:
          type: boolean
          description: "If true, the LogIngestConfig will be created if it does not\
            \ already exist. If false, an error will be returned if the LogIngestConfig\
            \ does not already exist."
        dry_run:
          type: boolean
          description: "If true, the LogIngestConfig isn't created or updated, and\
            \ no response LogIngestConfig will be returned. The response will return\
            \ an error if the given LogIngestConfig is invalid."
    configv1UpdateLogIngestConfigResponse:
      type: object
      properties:
        log_ingest_config:
          $ref: '#/components/schemas/configv1LogIngestConfig'
    configv1UpdateLogScaleActionResponse:
      type: object
      properties:
        log_scale_action:
          $ref: '#/components/schemas/configv1LogScaleAction'
    configv1UpdateLogScaleAlertResponse:
      type: object
      properties:
        log_scale_alert:
          $ref: '#/components/schemas/configv1LogScaleAlert'
    configv1UpdateMappingRuleResponse:
      type: object
      properties:
        mapping_rule:
          $ref: '#/components/schemas/configv1MappingRule'
    configv1UpdateMonitorResponse:
      type: object
      properties:
        monitor:
          $ref: '#/components/schemas/configv1Monitor'
    configv1UpdateMutingRuleResponse:
      type: object
      properties:
        muting_rule:
          $ref: '#/components/schemas/configv1MutingRule'
    configv1UpdateNotificationPolicyResponse:
      type: object
      properties:
        notification_policy:
          $ref: '#/components/schemas/configv1NotificationPolicy'
    configv1UpdateNotifierResponse:
      type: object
      properties:
        notifier:
          $ref: '#/components/schemas/configv1Notifier'
    configv1UpdateOtelMetricsIngestionRequest:
      type: object
      properties:
        otel_metrics_ingestion:
          $ref: '#/components/schemas/configv1OtelMetricsIngestion'
        create_if_missing:
          type: boolean
          description: "If true, the OtelMetricsIngestion will be created if it does\
            \ not already exist. If false, an error will be returned if the OtelMetricsIngestion\
            \ does not already exist."
        dry_run:
          type: boolean
          description: "If true, the OtelMetricsIngestion isn't created or updated,\
            \ and no response OtelMetricsIngestion will be returned. The response\
            \ will return an error if the given OtelMetricsIngestion is invalid."
    configv1UpdateOtelMetricsIngestionResponse:
      type: object
      properties:
        otel_metrics_ingestion:
          $ref: '#/components/schemas/configv1OtelMetricsIngestion'
    configv1UpdateRecordingRuleResponse:
      type: object
      properties:
        recording_rule:
          $ref: '#/components/schemas/configv1RecordingRule'
    configv1UpdateResourcePoolsRequest:
      type: object
      properties:
        resource_pools:
          $ref: '#/components/schemas/configv1ResourcePools'
        create_if_missing:
          type: boolean
          description: "If true, the ResourcePools will be created if it does not\
            \ already exist. If false, an error will be returned if the ResourcePools\
            \ does not already exist."
        dry_run:
          type: boolean
          description: "If true, the ResourcePools isn't created or updated, and no\
            \ response ResourcePools will be returned. The response will return an\
            \ error if the given ResourcePools is invalid."
    configv1UpdateResourcePoolsResponse:
      type: object
      properties:
        resource_pools:
          $ref: '#/components/schemas/configv1ResourcePools'
    configv1UpdateRollupRuleResponse:
      type: object
      properties:
        rollup_rule:
          $ref: '#/components/schemas/configv1RollupRule'
    configv1UpdateSLOResponse:
      type: object
      properties:
        slo:
          $ref: '#/components/schemas/configv1SLO'
    configv1UpdateTeamResponse:
      type: object
      properties:
        team:
          $ref: '#/components/schemas/configv1Team'
    configv1UpdateTraceBehaviorConfigRequest:
      type: object
      properties:
        trace_behavior_config:
          $ref: '#/components/schemas/configv1TraceBehaviorConfig'
        create_if_missing:
          type: boolean
          description: "If true, the TraceBehaviorConfig will be created if it does\
            \ not already exist. If false, an error will be returned if the TraceBehaviorConfig\
            \ does not already exist."
        dry_run:
          type: boolean
          description: "If true, the TraceBehaviorConfig isn't created or updated,\
            \ and no response TraceBehaviorConfig will be returned. The response will\
            \ return an error if the given TraceBehaviorConfig is invalid."
    configv1UpdateTraceBehaviorConfigResponse:
      type: object
      properties:
        trace_behavior_config:
          $ref: '#/components/schemas/configv1TraceBehaviorConfig'
    configv1UpdateTraceBehaviorResponse:
      type: object
      properties:
        trace_behavior:
          $ref: '#/components/schemas/configv1TraceBehavior'
    configv1UpdateTraceJaegerRemoteSamplingStrategyResponse:
      type: object
      properties:
        trace_jaeger_remote_sampling_strategy:
          $ref: '#/components/schemas/configv1TraceJaegerRemoteSamplingStrategy'
    configv1UpdateTraceMetricsRuleResponse:
      type: object
      properties:
        trace_metrics_rule:
          $ref: '#/components/schemas/configv1TraceMetricsRule'
    configv1UpdateTraceTailSamplingRulesRequest:
      type: object
      properties:
        trace_tail_sampling_rules:
          $ref: '#/components/schemas/configv1TraceTailSamplingRules'
        create_if_missing:
          type: boolean
          description: "If true, the TraceTailSamplingRules will be created if it\
            \ does not already exist. If false, an error will be returned if the TraceTailSamplingRules\
            \ does not already exist."
        dry_run:
          type: boolean
          description: "If true, the TraceTailSamplingRules isn't created or updated,\
            \ and no response TraceTailSamplingRules will be returned. The response\
            \ will return an error if the given TraceTailSamplingRules is invalid."
    configv1UpdateTraceTailSamplingRulesResponse:
      type: object
      properties:
        trace_tail_sampling_rules:
          $ref: '#/components/schemas/configv1TraceTailSamplingRules'
    genericError:
      type: object
      additionalProperties: true
    protobufAny:
      type: object
      properties:
        '@type':
          type: string
      additionalProperties:
        type: object
x-original-swagger-version: "2.0"
