Instana Infrastructure Alert Configuration API

The Infrastructure Alert Configuration API from Instana — 6 operation(s) for infrastructure alert configuration.

OpenAPI Specification

instana-infrastructure-alert-configuration-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  contact:
    email: support@instana.com
    name: © Instana
    url: http://instana.com
  termsOfService: https://www.instana.com/terms-of-use/
  title: Instana REST API documentation Infrastructure Alert Configuration API
  version: 1.307.1417
  x-ibm-ahub-try: true
  x-logo:
    altText: instana logo
    backgroundColor: '#FAFBFC'
    url: header-logo.svg
  description: "Searching for answers and best pratices? Check our [IBM Instana Community](https://community.ibm.com/community/user/aiops/communities/community-home?CommunityKey=58f324a3-3104-41be-9510-5b7c413cc48f).\n\n<div style=\"background-color:#e6f0ff; padding: 12px; border-left: 6px solid #0052cc; font-size: 14px; display: flex; align-items: center;\">\n  <img src=\"https://img.icons8.com/ios-filled/50/0052cc/info.png\" width=\"18\" height=\"18\" style=\"margin-right: 8px;\" alt=\"info icon\"/>\n  <span>\n    <b>Our API documentation is moving to</b> \n    <a href=\"https://developer.ibm.com/apis/catalog/instana--instana-rest-api/Introduction\" target=\"_blank\">API Hub</a>\n\t — please update your bookmarks now, as the current site will be deprecated after Release-306.\n  </span>\n</div>\n\n## Overview\nThe Instana REST API provides programmatic access to the Instana platform. It can be used to retrieve data available through the Instana UI Dashboard -- metrics, events, traces, etc -- and also to automate configuration tasks such as user management.\n\n### Navigating the API documentation\nThe API endpoints are grouped by product area and functionality. This generally maps to how our UI Dashboard is organized, hopefully making it easier to locate which endpoints you'd use to fetch the data you see visualized in our UI. The [UI sections](https://www.ibm.com/docs/en/instana-observability/current?topic=working-user-interface#navigation-menu) include:\n- Websites & Mobile Apps\n- Applications\n- Infrastructure\n- Synthetic Monitoring\n- Events\n- Automation\n- Service Levels\n- Settings\n- etc\n\n### Rate Limiting\nA rate limit is applied to API usage. Up to 5,000 calls per hour can be made. How many remaining calls can be made and when this call limit resets, can inspected via three headers that are part of the responses of the API server.\n\n- **X-RateLimit-Limit:** Shows the maximum number of calls that may be executed per hour.\n- **X-RateLimit-Remaining:** How many calls may still be executed within the current hour.\n- **X-RateLimit-Reset:** Time when the remaining calls will be reset to the limit. For compatibility reasons with other rate limited APIs, this date is not the date in milliseconds, but instead in seconds since 1970-01-01T00:00:00+00:00.\n\n### Further Reading\nWe provide additional documentation for our REST API in our [product documentation](https://www.ibm.com/docs/en/instana-observability/current?topic=apis-web-rest-api). Here you'll also find some common queries for retrieving data and configuring Instana.\n\n## Getting Started with the REST API\n\n### API base URL\nThe base URL for an specific instance of Instana can be determined using the tenant and unit information.\n- `base`: This is the base URL of a tenant unit, e.g. `https://test-example.instana.io`. This is the same URL that is used to access the Instana user interface.\n- `apiToken`: Requests against the Instana API require valid API tokens. An initial API token can be generated via the Instana user interface. Any additional API tokens can be generated via the API itself.\n\n### Curl Example\nHere is an Example to use the REST API with Curl. First lets get all the available metrics with possible aggregations with a GET call.\n\n```bash\ncurl --request GET \\\n  --url https://test-instana.instana.io/api/application-monitoring/catalog/metrics \\\n  --header 'authorization: apiToken xxxxxxxxxxxxxxxx'\n```\n\nNext we can get every call grouped by the endpoint name that has an error count greater then zero. As a metric we could get the mean error rate for example.\n\n```bash\ncurl --request POST \\\n  --url https://test-instana.instana.io/api/application-monitoring/analyze/call-groups \\\n  --header 'authorization: apiToken xxxxxxxxxxxxxxxx' \\\n  --header 'content-type: application/json' \\\n  --data '{\n  \"group\":{\n      \"groupbyTag\":\"endpoint.name\"\n  },\n  \"tagFilters\":[\n  \t{\n  \t\t\"name\":\"call.error.count\",\n  \t\t\"value\":\"0\",\n  \t\t\"operator\":\"GREATER_THAN\"\n  \t}\n  ],\n  \"metrics\":[\n  \t{\n  \t\t\"metric\":\"errors\",\n  \t\t\"aggregation\":\"MEAN\"\n  \t}\n  ]\n  }'\n```\n\n### Generating REST API clients\n\nThe API is specified using the [OpenAPI v3](https://github.com/OAI/OpenAPI-Specification) (previously known as Swagger) format.\nYou can download the current specification at our [GitHub API documentation](https://instana.github.io/openapi/openapi.yaml).\n\nOpenAPI tries to solve the issue of ever-evolving APIs and clients lagging behind. Please make sure that you always use the latest version of the generator, as a number of improvements are regularly made.\nTo generate a client library for your language, you can use the [OpenAPI client generators](https://github.com/OpenAPITools/openapi-generator).\n\n#### Go\nFor example, to generate a client library for Go to interact with our backend, you can use the following script; mind replacing the values of the `UNIT_NAME` and `TENANT_NAME` environment variables using those for your tenant unit:\n\n```bash\n#!/bin/bash\n\n### This script assumes you have the `java` and `wget` commands on the path\n\nexport UNIT_NAME='myunit' # for example: prod\nexport TENANT_NAME='mytenant' # for example: awesomecompany\n\n//Download the generator to your current working directory:\nwget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/4.3.1/openapi-generator-cli-4.3.1.jar -O openapi-generator-cli.jar --server-variables \"tenant=${TENANT_NAME},unit=${UNIT_NAME}\"\n\n//generate a client library that you can vendor into your repository\njava -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g go \\\n    -o pkg/instana/openapi \\\n    --skip-validate-spec\n\n//(optional) format the Go code according to the Go code standard\ngofmt -s -w pkg/instana/openapi\n```\n\nThe generated clients contain comprehensive READMEs, and you can start right away using the client from the example above:\n\n```go\nimport instana \"./pkg/instana/openapi\"\n\n// readTags will read all available application monitoring tags along with their type and category\nfunc readTags() {\n\tconfiguration := instana.NewConfiguration()\n\tconfiguration.Host = \"tenant-unit.instana.io\"\n\tconfiguration.BasePath = \"https://tenant-unit.instana.io\"\n\n\tclient := instana.NewAPIClient(configuration)\n\tauth := context.WithValue(context.Background(), instana.ContextAPIKey, instana.APIKey{\n\t\tKey:    apiKey,\n\t\tPrefix: \"apiToken\",\n\t})\n\n\ttags, _, err := client.ApplicationCatalogApi.GetApplicationTagCatalog(auth)\n\tif err != nil {\n\t\tfmt.Fatalf(\"Error calling the API, aborting.\")\n\t}\n\n\tfor _, tag := range tags {\n\t\tfmt.Printf(\"%s (%s): %s\\n\", tag.Category, tag.Type, tag.Name)\n\t}\n}\n```\n\n#### Java\nFollow the instructions provided in the official documentation from [OpenAPI Tools](https://github.com/OpenAPITools) to download the [openapi-generator-cli.jar](https://github.com/OpenAPITools/openapi-generator?tab=readme-ov-file#13---download-jar).\n\nDepending on your environment, use one of the following java http client implementations which will create a valid client for our OpenAPI specification:\n```\n//Nativ Java HTTP Client\njava -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec  -p dateLibrary=java8 --library native\n\n//Spring WebClient\njava -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec  -p dateLibrary=java8,hideGenerationTimestamp=true --library webclient\n\n//Spring RestTemplate\njava -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec  -p dateLibrary=java8,hideGenerationTimestamp=true --library resttemplate\n\n```\n"
servers:
- description: Instana Backend
  url: https://{unit}-{tenant}.instana.io
  variables:
    tenant:
      default: tenant
      description: Customer tenant unit
    unit:
      default: unit
      description: Customer tenant name
- description: Instana Self-Hosted Backend
  url: https://{domain}
  variables:
    domain:
      default: example.com
      description: Customer Self-Hosted domain
tags:
- name: Infrastructure Alert Configuration
paths:
  /api/events/settings/infra-alert-configs:
    get:
      description: Configs are sorted descending by their created date.
      operationId: findActiveInfraAlertConfigs
      parameters:
      - description: List of IDs of Infra Smart Alert configurations
        example: '[4kxgJAXdSDiu6swQaKXrJw, ZLo28grvQaiMqIaikJK1RQ]'
        in: query
        name: alertIds
        schema:
          type: array
          items:
            type: string
          maxItems: 1000
          minItems: 0
          uniqueItems: true
      responses:
        '200':
          content:
            application/json:
              example:
              - name: high-mean-memory-usage
                description: Something is going wrong in your infrastructure.
                severity: 5
                tagFilterExpression:
                  type: EXPRESSION
                  logicalOperator: AND
                  elements:
                  - type: TAG_FILTER
                    name: kubernetes.cluster.name
                    stringValue: 200_PoP_Cluster
                    numberValue: null
                    booleanValue: null
                    key: null
                    value: 200_PoP_Cluster
                    operator: EQUALS
                    entity: NOT_APPLICABLE
                groupBy:
                - kubernetes.cluster.name
                - kubernetes.namespace.name
                - kubernetes.pod.name
                rule:
                  alertType: genericRule
                  metricName: memory.usage
                  entityType: crio
                  aggregation: MEAN
                  crossSeriesAggregation: MEAN
                  regex: false
                threshold:
                  type: staticThreshold
                  operator: '>='
                  value: 1
                  lastUpdated: 1724720573744
                forecastingConfig: null
                alertChannelIds:
                - VjS1NvcXpOARmTvA
                - CrLI3QeIZKygaNLH
                granularity: 60000
                timeThreshold:
                  type: violationsInSequence
                  timeWindow: 180000
                id: 4kxgJAXdSDiu6swQaKXrJw
                created: 1724720587414
                initialCreated: 1714766649532
                readOnly: false
                enabled: false
                customPayloadFields:
                - type: staticString
                  key: testKey
                  value: team-ar
                rules:
                - thresholdOperator: '>='
                  rule:
                    alertType: genericRule
                    metricName: memory.usage
                    entityType: crio
                    aggregation: MEAN
                    crossSeriesAggregation: MEAN
                    regex: false
                  thresholds:
                    WARNING:
                      type: staticThreshold
                      value: 1
                    CRITICAL:
                      type: staticThreshold
                      value: 4
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InfraAlertConfigWithMetadata'
          description: OK
      security:
      - ApiKeyAuth:
        - Default
      summary: All Infra Alert Configs
      tags:
      - Infrastructure Alert Configuration
      x-ibm-ahub-byok: true
    post:
      operationId: createInfraAlertConfig
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InfraAlertConfig'
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                name: high-mean-memory-usage
                description: Something is going wrong in your infrastructure.
                severity: 5
                tagFilterExpression:
                  type: EXPRESSION
                  logicalOperator: AND
                  elements:
                  - type: TAG_FILTER
                    name: kubernetes.cluster.name
                    stringValue: 200_PoP_Cluster
                    numberValue: null
                    booleanValue: null
                    key: null
                    value: 200_PoP_Cluster
                    operator: EQUALS
                    entity: NOT_APPLICABLE
                groupBy:
                - kubernetes.cluster.name
                - kubernetes.namespace.name
                - kubernetes.pod.name
                rule:
                  alertType: genericRule
                  metricName: memory.usage
                  entityType: crio
                  aggregation: MEAN
                  crossSeriesAggregation: MEAN
                  regex: false
                threshold:
                  type: staticThreshold
                  operator: '>='
                  value: 1
                  lastUpdated: 1724720573744
                forecastingConfig: null
                alertChannelIds:
                - VjS1NvcXpOARmTvA
                - CrLI3QeIZKygaNLH
                granularity: 60000
                timeThreshold:
                  type: violationsInSequence
                  timeWindow: 180000
                id: 4kxgJAXdSDiu6swQaKXrJw
                created: 1724720587414
                initialCreated: 1714766649532
                readOnly: false
                enabled: false
                customPayloadFields:
                - type: staticString
                  key: testKey
                  value: team-ar
                rules:
                - thresholdOperator: '>='
                  rule:
                    alertType: genericRule
                    metricName: memory.usage
                    entityType: crio
                    aggregation: MEAN
                    crossSeriesAggregation: MEAN
                    regex: false
                  thresholds:
                    WARNING:
                      type: staticThreshold
                      value: 1
                    CRITICAL:
                      type: staticThreshold
                      value: 4
              schema:
                $ref: '#/components/schemas/InfraAlertConfigWithMetadata'
          description: OK
        '403':
          description: Insufficient permissions.
      security:
      - ApiKeyAuth:
        - CanConfigureGlobalInfraSmartAlerts
      summary: Create Infra Alert Config
      tags:
      - Infrastructure Alert Configuration
      x-ibm-ahub-byok: true
  /api/events/settings/infra-alert-configs/{id}:
    delete:
      operationId: deleteInfraAlertConfig
      parameters:
      - description: ID of the Infra Smart Alert configuration to delete
        example: 4kxgJAXdSDiu6swQaKXrJw
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Successful - no content to return.
        '403':
          description: Insufficient permissions.
        '404':
          description: Resource not found.
      security:
      - ApiKeyAuth:
        - CanConfigureGlobalInfraSmartAlerts
      summary: Delete Infra Alert Config
      tags:
      - Infrastructure Alert Configuration
      x-ibm-ahub-byok: true
    get:
      description: Find a Infra Alert Config by ID. This will deliver deleted configs too.
      operationId: findInfraAlertConfig
      parameters:
      - description: ID of the Infra Smart Alert configuration
        example: 4kxgJAXdSDiu6swQaKXrJw
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: 'A Unix timestamp representing a specific time the config was active. If no timestamp is provided, the latest active version will be retrieved. '
        example: 1722877985000
        in: query
        name: validOn
        schema:
          type: integer
          format: int64
      responses:
        '200':
          content:
            application/json:
              example:
                name: high-mean-memory-usage
                description: Something is going wrong in your infrastructure.
                severity: 5
                tagFilterExpression:
                  type: EXPRESSION
                  logicalOperator: AND
                  elements:
                  - type: TAG_FILTER
                    name: kubernetes.cluster.name
                    stringValue: 200_PoP_Cluster
                    numberValue: null
                    booleanValue: null
                    key: null
                    value: 200_PoP_Cluster
                    operator: EQUALS
                    entity: NOT_APPLICABLE
                groupBy:
                - kubernetes.cluster.name
                - kubernetes.namespace.name
                - kubernetes.pod.name
                rule:
                  alertType: genericRule
                  metricName: memory.usage
                  entityType: crio
                  aggregation: MEAN
                  crossSeriesAggregation: MEAN
                  regex: false
                threshold:
                  type: staticThreshold
                  operator: '>='
                  value: 1
                  lastUpdated: 1724720573744
                forecastingConfig: null
                alertChannelIds:
                - VjS1NvcXpOARmTvA
                - CrLI3QeIZKygaNLH
                granularity: 60000
                timeThreshold:
                  type: violationsInSequence
                  timeWindow: 180000
                id: 4kxgJAXdSDiu6swQaKXrJw
                created: 1724720587414
                initialCreated: 1714766649532
                readOnly: false
                enabled: false
                customPayloadFields:
                - type: staticString
                  key: testKey
                  value: team-ar
                rules:
                - thresholdOperator: '>='
                  rule:
                    alertType: genericRule
                    metricName: memory.usage
                    entityType: crio
                    aggregation: MEAN
                    crossSeriesAggregation: MEAN
                    regex: false
                  thresholds:
                    WARNING:
                      type: staticThreshold
                      value: 1
                    CRITICAL:
                      type: staticThreshold
                      value: 4
              schema:
                $ref: '#/components/schemas/InfraAlertConfigWithMetadata'
          description: OK
        '404':
          description: Resource not found.
      security:
      - ApiKeyAuth:
        - Default
      summary: Get Infra Alert Config
      tags:
      - Infrastructure Alert Configuration
      x-ibm-ahub-byok: true
    post:
      operationId: updateInfraAlertConfig
      parameters:
      - description: ID of the Infra Smart Alert configuration to update
        example: 4kxgJAXdSDiu6swQaKXrJw
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InfraAlertConfig'
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                name: high-mean-memory-usage
                description: Something is going wrong in your infrastructure.
                severity: 5
                tagFilterExpression:
                  type: EXPRESSION
                  logicalOperator: AND
                  elements:
                  - type: TAG_FILTER
                    name: kubernetes.cluster.name
                    stringValue: 200_PoP_Cluster
                    numberValue: null
                    booleanValue: null
                    key: null
                    value: 200_PoP_Cluster
                    operator: EQUALS
                    entity: NOT_APPLICABLE
                groupBy:
                - kubernetes.cluster.name
                - kubernetes.namespace.name
                - kubernetes.pod.name
                rule:
                  alertType: genericRule
                  metricName: memory.usage
                  entityType: crio
                  aggregation: MEAN
                  crossSeriesAggregation: MEAN
                  regex: false
                threshold:
                  type: staticThreshold
                  operator: '>='
                  value: 1
                  lastUpdated: 1724720573744
                forecastingConfig: null
                alertChannelIds:
                - VjS1NvcXpOARmTvA
                - CrLI3QeIZKygaNLH
                granularity: 60000
                timeThreshold:
                  type: violationsInSequence
                  timeWindow: 180000
                id: 4kxgJAXdSDiu6swQaKXrJw
                created: 1724720587414
                initialCreated: 1714766649532
                readOnly: false
                enabled: false
                customPayloadFields:
                - type: staticString
                  key: testKey
                  value: team-ar
                rules:
                - thresholdOperator: '>='
                  rule:
                    alertType: genericRule
                    metricName: memory.usage
                    entityType: crio
                    aggregation: MEAN
                    crossSeriesAggregation: MEAN
                    regex: false
                  thresholds:
                    WARNING:
                      type: staticThreshold
                      value: 1
                    CRITICAL:
                      type: staticThreshold
                      value: 4
              schema:
                $ref: '#/components/schemas/InfraAlertConfigWithMetadata'
          description: OK
        '204':
          description: Infra Smart Alert did not change
        '403':
          description: Insufficient permissions.
      security:
      - ApiKeyAuth:
        - CanConfigureGlobalInfraSmartAlerts
      summary: Update Infra Alert Config
      tags:
      - Infrastructure Alert Configuration
      x-ibm-ahub-byok: true
  /api/events/settings/infra-alert-configs/{id}/disable:
    put:
      operationId: disableInfraAlertConfig
      parameters:
      - description: ID of the Infra Smart Alert configuration to disable
        example: 4kxgJAXdSDiu6swQaKXrJw
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: string
              nullable: true
      responses:
        '204':
          description: Successful - no content to return.
        '403':
          description: Insufficient permissions.
        '404':
          description: Resource not found.
      security:
      - ApiKeyAuth:
        - CanConfigureGlobalInfraSmartAlerts
      summary: Disable Infra Alert Config
      tags:
      - Infrastructure Alert Configuration
      x-ibm-ahub-byok: true
  /api/events/settings/infra-alert-configs/{id}/enable:
    put:
      operationId: enableInfraAlertConfig
      parameters:
      - description: ID of the Infra Smart Alert configuration to enable
        example: 4kxgJAXdSDiu6swQaKXrJw
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: string
              nullable: true
      responses:
        '204':
          description: Successful - no content to return.
        '403':
          description: Insufficient permissions.
        '404':
          description: Resource not found.
      security:
      - ApiKeyAuth:
        - CanConfigureGlobalInfraSmartAlerts
      summary: Enable Infra Alert Config
      tags:
      - Infrastructure Alert Configuration
      x-ibm-ahub-byok: true
  /api/events/settings/infra-alert-configs/{id}/restore/{created}:
    put:
      operationId: restoreInfraAlertConfig
      parameters:
      - description: ID of the Infra Smart Alert configuration to restore
        example: 4kxgJAXdSDiu6swQaKXrJw
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: A Unix Timestamp of when the alert was created
        example: 1722877985000
        in: path
        name: created
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              type: string
              nullable: true
      responses:
        '204':
          description: Successful - no content to return.
        '403':
          description: Insufficient permissions.
        '404':
          description: Resource not found.
      security:
      - ApiKeyAuth:
        - CanConfigureGlobalInfraSmartAlerts
      summary: Restore Infra Alert Config
      tags:
      - Infrastructure Alert Configuration
      x-ibm-ahub-byok: true
  /api/events/settings/infra-alert-configs/{id}/versions:
    get:
      description: Find all versions of a Infra Alert Config by ID. This will deliver deleted configs too. Configs are sorted descending by their created date.
      operationId: findInfraAlertConfigVersions
      parameters:
      - description: ID of the Infra Smart Alert configuration
        example: 4kxgJAXdSDiu6swQaKXrJw
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
              - id: 4kxgJAXdSDiu6swQaKXrJw
                created: 1724720587414
                enabled: false
                deleted: false
                changeSummary:
                  changeType: DISABLE
                  author:
                    id: 5ee8a3e8cd70020001ecb007
                    type: USER
                    fullName: Stan
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConfigVersion'
          description: OK
        '404':
          description: Resource not found.
      security:
      - ApiKeyAuth:
        - Default
      summary: Get versions of Infra Alert Config
      tags:
      - Infrastructure Alert Configuration
      x-ibm-ahub-byok: true
components:
  schemas:
    ThresholdConfigRule:
      type: object
      discriminator:
        mapping:
          adaptiveBaseline: '#/components/schemas/AdaptiveThresholdRule'
          historicBaseline: '#/components/schemas/StaticBaselineThresholdRule'
          staticThreshold: '#/components/schemas/StaticThresholdRule'
        propertyName: type
      properties:
        type:
          type: string
      required:
      - type
    Author:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - API
          - USER
          - INSTANA
          - UNKNOWN
    CustomPayloadField:
      type: object
      description: Custom payload fields to send additional information in the alert notifications. Can be left empty.
      discriminator:
        mapping:
          dynamic: '#/components/schemas/DynamicField'
          staticString: '#/components/schemas/StaticStringField'
        propertyName: type
      properties:
        key:
          type: string
          description: A user-specified unique identifier or name for a custom payload entry.
        type:
          type: string
      required:
      - key
      - type
    ConfigVersion:
      type: object
      properties:
        changeSummary:
          $ref: '#/components/schemas/ChangeSummary'
        created:
          type: integer
          format: int64
          description: Unix timestamp representing the creation time of this revision.
          minimum: 1
        deleted:
          type: boolean
          deprecated: true
          description: Flag to indicate whether or not the configuration was deleted.
        enabled:
          type: boolean
          deprecated: true
          description: Flag to indicate whether or not the configuration is enabled.
        id:
          type: string
          description: ID of this configuration version.
          maxLength: 64
          minLength: 0
      required:
      - id
    InfraAlertRule:
      type: object
      discriminator:
        mapping:
          genericRule: '#/components/schemas/GenericInfraAlertRule'
        propertyName: alertType
      properties:
        aggregation:
          type: string
          enum:
          - SUM
          - MEAN
          - MAX
          - MIN
          - P25
          - P50
          - P75
          - P90
          - P95
          - P98
          - P99
          - P99_9
          - P99_99
          - DISTINCT_COUNT
          - SUM_POSITIVE
          - PER_SECOND
          - INCREASE
        alertType:
          type: string
        crossSeriesAggregation:
          type: string
          enum:
          - SUM
          - MEAN
          - MAX
          - MIN
          - P25
          - P50
          - P75
          - P90
          - P95
          - P98
          - P99
          - P99_9
          - P99_99
          - DISTINCT_COUNT
          - SUM_POSITIVE
          - PER_SECOND
          - INCREASE
        entityType:
          type: string
        metricGroupBy:
          type: array
          items:
            type: string
        metricName:
          type: string
        metricTagFilterExpression:
          $ref: '#/components/schemas/TagFilterExpressionElement'
        regex:
          type: boolean
      required:
      - alertType
      - metricName
    ChangeSummary:
      type: object
      description: Brief summary of changes made in this config version.
      properties:
        author:
          $ref: '#/components/schemas/Author'
        changeType:
          type: string
          enum:
          - CREATE
          - UPDATE
          - DELETE
          - ENABLE
          - DISABLE
          - RESTORE
          - UNKNOWN
      required:
      - author
      - changeType
    TagFilterExpressionElement:
      type: object
      description: Boolean expression of tag filters to define the scope of relevant calls.
      discriminator:
        mapping:
          EXPRESSION: '#/components/schemas/TagFilterExpression'
          TAG_FILTER: '#/components/schemas/TagFilter'
        propertyName: type
      properties:
        type:
          type: string
      required:
      - type
    InfraAlertConfigWithMetadata:
      type: object
      properties:
        alertChannelIds:
          type: array
          deprecated: true
          description: List of IDs of alert channels defined in Instana. Can be left empty.
          items:
            type: string
            deprecated: true
            description: List of IDs of alert channels defined in Instana. Can be left empty.
          maxItems: 1024
          minItems: 0
          uniqueItems: true
        alertChannels:
          type: object
          additionalProperties:
            type: array
            description: Set of alert channel IDs associated with the severity.
            items:
              type: string
              description: Set of alert channel IDs associated with the severity.
            uniqueItems: true
          description: Set of alert channel IDs associated with the severity.
        created:
          type: integer
          format: int64
          minimum: 1
        customPayloadFields:
          type: array
          description: Custom payload fields to send additional information in the alert notifications. Can be left empty.
          items:
            $ref: '#/components/schemas/CustomPayloadField'
    

# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/instana/refs/heads/main/openapi/instana-infrastructure-alert-configuration-api-openapi.yml