From 73b4f662ccdf056917041a051447cf1ba071807a Mon Sep 17 00:00:00 2001 From: root Date: Mon, 27 Jan 2025 06:27:50 +0000 Subject: [PATCH] Updates --- openapi.json | 353 +++++++++++++++++++++++++++++++++++++++++++++------ openapi.yaml | 338 +++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 632 insertions(+), 59 deletions(-) diff --git a/openapi.json b/openapi.json index 99007a3..28cdc43 100644 --- a/openapi.json +++ b/openapi.json @@ -8,7 +8,7 @@ }, "termsOfService": "https://www.instana.com/terms-of-use/", "title": "Instana REST API documentation", - "version": "1.288.935", + "version": "1.289.1357", "x-logo": { "altText": "instana logo", "backgroundColor": "#FAFBFC", @@ -1446,7 +1446,7 @@ "tags": [ "Application Catalog" ], - "description": "This endpoint retrieves all available tags for your monitored system.\n\nThese tags can be used to group metric results.\n```\n\"group\": {\n \"groupbyTag\": \"service.name\"\n}\n```\n\nThese tags can be used to filter metric results.\n```\n\"tagFilters\": [{\n\t\"name\": \"application.name\",\n\t\"operator\": \"EQUALS\",\n\t\"value\": \"example\"\n}]\n```\n" + "description": "**Note:** This API Endpoint is deprecated. Use `Get application tag catalog` endpoint instead.\n\nThis endpoint retrieves all available tags for your monitored system.\n\nThese tags can be used to group metric results.\n```\n\"group\": {\n \"groupbyTag\": \"service.name\"\n}\n```\n\nThese tags can be used to filter metric results.\n```\n\"tagFilters\": [{\n\t\"name\": \"application.name\",\n\t\"operator\": \"EQUALS\",\n\t\"value\": \"example\"\n}]\n```\n" } }, "/api/application-monitoring/metrics/applications": { @@ -3208,7 +3208,8 @@ "name": "id", "required": true, "schema": { - "type": "string" + "type": "string", + "description": "A unique id of the manual service configuration." } } ], @@ -3241,7 +3242,8 @@ "name": "id", "required": true, "schema": { - "type": "string" + "type": "string", + "description": "A unique id of the manual service configuration." } } ], @@ -3319,6 +3321,7 @@ }, "/api/application-monitoring/settings/service": { "get": { + "description": "Use this API endpoint if one wants to retrive a list of all service configurations.\nThis endpoint requires `CanConfigureServiceMapping` permission. \n\nOne can use `Create or update an API token` endpoint to update the permission by setting `canConfigureServiceMapping` to `true`.\nIf one wants to enable the permission from Instana UI, go to Settings -> Security & Access -> Access Control -> API Token.\nThere one can update the existing token or create a new token and set `Customize service rules and endpoint mapping` to `true`.\n", "operationId": "getServiceConfigs", "responses": { "200": { @@ -3363,6 +3366,7 @@ ] }, "post": { + "description": "Use this API endpoint if one wants to create a custom service rule.\nThis endpoint requires `CanConfigureServiceMapping` permission. \n\nOne can use `Create or update an API token` endpoint to update the permission by setting `canConfigureServiceMapping` to `true`.\nIf one wants to enable the permission from Instana UI, go to Settings -> Security & Access -> Access Control -> API Token.\nThere one can update the existing token or create a new token and set `Customize service rules and endpoint mapping` to `true`. \n\n\n## Errata: \n\n\nThe following field is documented in the request schema:\n- The `id` field is not mandatory and one can't have a service configuration id before creating one configuration.\nInstana creates it automatically.\n", "operationId": "addServiceConfig", "requestBody": { "content": { @@ -3432,6 +3436,7 @@ ] }, "put": { + "description": "Use this API endpoint if one wants to modify 1 or more existing service configuration.\nThis endpoint requires `CanConfigureServiceMapping` permission. \n\nOne can use `Create or update an API token` endpoint to update the permission by setting `canConfigureServiceMapping` to `true`.\nIf one wants to enable the permission from Instana UI, go to Settings -> Security & Access -> Access Control -> API Token.\nThere one can update the existing token or create a new token and set `Customize service rules and endpoint mapping` to `true`.\n", "operationId": "replaceAll", "requestBody": { "content": { @@ -3506,6 +3511,7 @@ }, "/api/application-monitoring/settings/service/order": { "put": { + "description": "Use this API endpoint if one wants to change the order of service configurations aka custom service rules.\nNote that all service configuration IDs have to be passed in the request to re-order the configurations.\nThis endpoint requires `CanConfigureServiceMapping` permission. \n\nOne can use `Create or update an API token` endpoint to update the permission by setting `canConfigureServiceMapping` to `true`.\nIf one wants to enable the permission from Instana UI, go to Settings -> Security & Access -> Access Control -> API Token.\nThere one can update the existing token or create a new token and set `Customize service rules and endpoint mapping` to `true`.\n", "operationId": "orderServiceConfig", "requestBody": { "content": { @@ -3547,6 +3553,7 @@ }, "/api/application-monitoring/settings/service/{id}": { "delete": { + "description": "Use this API endpoint if one wants to delete a service configuration.\nThis endpoint requires `CanConfigureServiceMapping` permission. \n\nOne can use `Create or update an API token` endpoint to update the permission by setting `canConfigureServiceMapping` to `true`.\nIf one wants to enable the permission from Instana UI, go to Settings -> Security & Access -> Access Control -> API Token.\nThere one can update the existing token or create a new token and set `Customize service rules and endpoint mapping` to `true`.\n", "operationId": "deleteServiceConfig", "parameters": [ { @@ -3554,7 +3561,8 @@ "name": "id", "required": true, "schema": { - "type": "string" + "type": "string", + "description": "A unique string for the service configuration. Eg: `G510hmXYSDysLZ5kuj0BaQ`" } } ], @@ -3579,6 +3587,7 @@ ] }, "get": { + "description": "Use this API endpoint if one wants to retrieve a particular custom service rule.\nThis endpoint requires `CanConfigureServiceMapping` permission. \n\nOne can use `Create or update an API token` endpoint to update the permission by setting `canConfigureServiceMapping` to `true`.\nIf one wants to enable the permission from Instana UI, go to Settings -> Security & Access -> Access Control -> API Token.\nThere one can update the existing token or create a new token and set `Customize service rules and endpoint mapping` to `true`.\n", "operationId": "getServiceConfig", "parameters": [ { @@ -3586,7 +3595,8 @@ "name": "id", "required": true, "schema": { - "type": "string" + "type": "string", + "description": "A unique string for the service configuration. Eg: `G510hmXYSDysLZ5kuj0BaQ`" } } ], @@ -3628,6 +3638,7 @@ ] }, "put": { + "description": "Use this API endpoint if one wants to update a particular custom service rule.\nThis endpoint requires `CanConfigureServiceMapping` permission. \n\nOne can use `Create or update an API token` endpoint to update the permission by setting `canConfigureServiceMapping` to `true`.\nIf one wants to enable the permission from Instana UI, go to Settings -> Security & Access -> Access Control -> API Token.\nThere one can update the existing token or create a new token and set `Customize service rules and endpoint mapping` to `true`.\n", "operationId": "putServiceConfig", "parameters": [ { @@ -3635,7 +3646,8 @@ "name": "id", "required": true, "schema": { - "type": "string" + "type": "string", + "description": "A unique string for the service configuration. Eg: `G510hmXYSDysLZ5kuj0BaQ`" } } ], @@ -3710,6 +3722,7 @@ }, "/api/application-monitoring/topology/services": { "get": { + "description": "Use this API endpoint if one wants to retrieve services and connections (call paths) between them for calls in the scope given by the parameters.\n\n## Errata:\n\nThe following fields are unsupported but documented in the schema for the result `services`:\n- The `applications` field is always missing and the `snapshotIds` field is always empty, despite being declared as required in the result schema.\n- The `maxSeverity` and `numberOfOpenIssues` fields are always missing.\n", "operationId": "getServicesMap", "parameters": [ { @@ -5060,6 +5073,14 @@ "schema": { "type": "string" } + }, + { + "description": "Filter policies by action ID. This is an optional parameter.", + "in": "query", + "name": "actionId", + "schema": { + "type": "string" + } } ], "responses": { @@ -16132,7 +16153,15 @@ } } }, - "description": "OK" + "description": "OK", + "links": { + "payload for snapshot": { + "operationId": "getPluginPayload", + "parameters": { + "payloadKey": "$response.body#/[*]" + } + } + } } }, "security": [ @@ -16315,6 +16344,7 @@ }, "/api/infrastructure-monitoring/graph/related-hosts/{snapshotId}": { "get": { + "description": "Gets the Related Hosts", "operationId": "getRelatedHosts", "parameters": [ { @@ -16360,7 +16390,7 @@ } } }, - "description": "OK" + "description": "Returns the snapshot ID of the hosts" } }, "security": [ @@ -16471,7 +16501,7 @@ } }, { - "description": "Payload key. Use `/api/infrastructure-monitoring/catalog/payloads` to retrieve the list of possible keys.", + "description": "Payload key. Use [getAvailablePayloadKeysByPluginId](/#operation/getAvailablePayloadKeysByPluginId) to retrieve the list of possible keys.", "example": "topqueries", "in": "path", "name": "payloadKey", @@ -20213,6 +20243,10 @@ "infraDfqFilter": { "scopeId": "", "scopeRoleId": "-1" + }, + "actionFilter": { + "scopeId": "", + "scopeRoleId": "-1" } } }, @@ -20273,6 +20307,10 @@ "infraDfqFilter": { "scopeId": "", "scopeRoleId": "-1" + }, + "actionFilter": { + "scopeId": "", + "scopeRoleId": "-1" } } }, @@ -20363,6 +20401,10 @@ "infraDfqFilter": { "scopeId": "", "scopeRoleId": "-1" + }, + "actionFilter": { + "scopeId": "", + "scopeRoleId": "-1" } } } @@ -20457,6 +20499,10 @@ "infraDfqFilter": { "scopeId": "", "scopeRoleId": "-1" + }, + "actionFilter": { + "scopeId": "", + "scopeRoleId": "-1" } } }, @@ -20548,6 +20594,10 @@ "infraDfqFilter": { "scopeId": "", "scopeRoleId": "-1" + }, + "actionFilter": { + "scopeId": "", + "scopeRoleId": "-1" } } }, @@ -20708,6 +20758,10 @@ "infraDfqFilter": { "scopeId": "", "scopeRoleId": "-1" + }, + "actionFilter": { + "scopeId": "", + "scopeRoleId": "-1" } } }, @@ -20795,6 +20849,10 @@ "infraDfqFilter": { "scopeId": "", "scopeRoleId": "-1" + }, + "actionFilter": { + "scopeId": "", + "scopeRoleId": "-1" } } }, @@ -20855,6 +20913,10 @@ "infraDfqFilter": { "scopeId": "", "scopeRoleId": "-1" + }, + "actionFilter": { + "scopeId": "", + "scopeRoleId": "-1" } } }, @@ -29203,7 +29265,7 @@ "type": "object", "allOf": [ { - "$ref": "#/components/schemas/Threshold" + "$ref": "#/components/schemas/ThresholdConfigRule" }, { "type": "object", @@ -29812,6 +29874,9 @@ "canConfigureSessionSettings": { "type": "boolean" }, + "canConfigureSubtraces": { + "type": "boolean" + }, "canConfigureSyntheticCredentials": { "type": "boolean" }, @@ -29851,6 +29916,9 @@ "canInstallNewAgents": { "type": "boolean" }, + "canInvokeAlertChannel": { + "type": "boolean" + }, "canManuallyCloseIssue": { "type": "boolean" }, @@ -30123,6 +30191,11 @@ "PER_AP_ENDPOINT" ] }, + "gracePeriod": { + "type": "integer", + "format": "int64", + "description": "The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires." + }, "granularity": { "type": "integer", "format": "int32", @@ -30291,6 +30364,11 @@ "PER_AP_ENDPOINT" ] }, + "gracePeriod": { + "type": "integer", + "format": "int64", + "description": "The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires." + }, "granularity": { "type": "integer", "format": "int32", @@ -32989,6 +33067,7 @@ }, "ExtendedService": { "type": "object", + "description": "List of services in the topology.", "properties": { "applications": { "type": "array", @@ -34603,6 +34682,11 @@ "PER_AP_ENDPOINT" ] }, + "gracePeriod": { + "type": "integer", + "format": "int64", + "description": "The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires." + }, "granularity": { "type": "integer", "format": "int32", @@ -34763,6 +34847,11 @@ "PER_AP_ENDPOINT" ] }, + "gracePeriod": { + "type": "integer", + "format": "int64", + "description": "The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires." + }, "granularity": { "type": "integer", "format": "int32", @@ -35380,6 +35469,11 @@ "maxLength": 65536, "minLength": 0 }, + "gracePeriod": { + "type": "integer", + "format": "int64", + "description": "The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires." + }, "granularity": { "type": "integer", "format": "int32", @@ -35500,6 +35594,11 @@ "enabled": { "type": "boolean" }, + "gracePeriod": { + "type": "integer", + "format": "int64", + "description": "The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires." + }, "granularity": { "type": "integer", "format": "int32", @@ -36171,6 +36270,11 @@ "maxLength": 65536, "minLength": 0 }, + "gracePeriod": { + "type": "integer", + "format": "int64", + "description": "The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires." + }, "granularity": { "type": "integer", "format": "int32", @@ -36253,6 +36357,11 @@ "enabled": { "type": "boolean" }, + "gracePeriod": { + "type": "integer", + "format": "int64", + "description": "The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires." + }, "granularity": { "type": "integer", "format": "int32", @@ -36741,16 +36850,20 @@ "type": "object", "properties": { "description": { - "type": "string" + "type": "string", + "description": "A description of the manual service configuration." }, "enabled": { - "type": "boolean" + "type": "boolean", + "description": "Enable or disable the manual service configuration. By default it is enabled." }, "existingServiceId": { - "type": "string" + "type": "string", + "description": "The service ID of the existing monitored service to which the calls should be linked." }, "id": { "type": "string", + "description": "A unique id of the manual service configuration.", "maxLength": 128, "minLength": 1 }, @@ -36758,7 +36871,8 @@ "$ref": "#/components/schemas/TagFilterExpressionElement" }, "unmonitoredServiceName": { - "type": "string" + "type": "string", + "description": "A service name if you want to map calls to an unmonitored service." } }, "required": [ @@ -37431,6 +37545,11 @@ "maxLength": 65536, "minLength": 0 }, + "gracePeriod": { + "type": "integer", + "format": "int64", + "description": "The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires." + }, "granularity": { "type": "integer", "format": "int32", @@ -37460,9 +37579,19 @@ "rule": { "$ref": "#/components/schemas/MobileAppAlertRule" }, + "rules": { + "type": "array", + "description": "A list of rules where each rule is associated with multiple thresholds and their corresponding severity levels. This enables more complex alert configurations with validations to ensure consistent and logical threshold-severity combinations.", + "items": { + "$ref": "#/components/schemas/RuleWithThresholdMobileAppAlertRule" + }, + "maxItems": 1, + "minItems": 1 + }, "severity": { "type": "integer", "format": "int32", + "deprecated": true, "description": "The severity of the alert when triggered, which is either 5 (Warning), or 10 (Critical).", "maximum": 10, "minimum": 5 @@ -37488,15 +37617,12 @@ "granularity", "mobileAppId", "name", - "rule", "tagFilterExpression", - "threshold", "timeThreshold" ] }, "MobileAppAlertRule": { "type": "object", - "description": "Indicates the type of rule this alert configuration is about.", "discriminator": { "mapping": { "crash": "#/components/schemas/CrashMobileAppAlertRule", @@ -38389,19 +38515,23 @@ "type": "object", "properties": { "description": { - "type": "string" + "type": "string", + "description": "A description of the manual service configuration." }, "enabled": { - "type": "boolean" + "type": "boolean", + "description": "Enable or disable the manual service configuration. By default it is enabled." }, "existingServiceId": { - "type": "string" + "type": "string", + "description": "The service ID of the existing monitored service to which the calls should be linked." }, "tagFilterExpression": { "$ref": "#/components/schemas/TagFilterExpressionElement" }, "unmonitoredServiceName": { - "type": "string" + "type": "string", + "description": "A service name if you want to map calls to an unmonitored service." } }, "required": [ @@ -39037,7 +39167,7 @@ "thresholds": { "type": "object", "additionalProperties": { - "$ref": "#/components/schemas/Threshold" + "$ref": "#/components/schemas/ThresholdConfigRule" } } }, @@ -39066,7 +39196,65 @@ "thresholds": { "type": "object", "additionalProperties": { - "$ref": "#/components/schemas/Threshold" + "$ref": "#/components/schemas/ThresholdConfigRule" + } + } + }, + "required": [ + "rule", + "thresholdOperator", + "thresholds" + ] + }, + "RuleWithThresholdMobileAppAlertRule": { + "type": "object", + "description": "A list of rules where each rule is associated with multiple thresholds and their corresponding severity levels. This enables more complex alert configurations with validations to ensure consistent and logical threshold-severity combinations.", + "properties": { + "rule": { + "$ref": "#/components/schemas/MobileAppAlertRule" + }, + "thresholdOperator": { + "type": "string", + "enum": [ + ">", + ">=", + "<", + "<=" + ] + }, + "thresholds": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ThresholdConfigRule" + } + } + }, + "required": [ + "rule", + "thresholdOperator", + "thresholds" + ] + }, + "RuleWithThresholdWebsiteAlertRule": { + "type": "object", + "description": "A list of rules where each rule is associated with multiple thresholds and their corresponding severity levels. This enables more complex alert configurations with validations to ensure consistent and logical threshold-severity combinations.", + "properties": { + "rule": { + "$ref": "#/components/schemas/WebsiteAlertRule" + }, + "thresholdOperator": { + "type": "string", + "enum": [ + ">", + ">=", + "<", + "<=" + ] + }, + "thresholds": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ThresholdConfigRule" } } }, @@ -39275,20 +39463,25 @@ "properties": { "comment": { "type": "string", + "description": "A small description of the service configuration would be present in this field if it was provided during creation of the custom service rule.\nIf it was not provided, this field will remain empty. It is considered as best practice to add a comment to document the reasoning behind creating the rule.\n", "maxLength": 2048, "minLength": 0 }, "enabled": { - "type": "boolean" + "type": "boolean", + "description": "If enabled, calls will be mapped to the rule." }, "id": { - "type": "string" + "type": "string", + "description": "A unique string for the service configuration. Eg: `G510hmXYSDysLZ5kuj0BaQ`" }, "label": { - "type": "string" + "type": "string", + "description": "It contains the tags defined in `matchSpecification` concatenated with a dash.\nEg: if the `matchSpecification` contains keys `kubernetes.namespace.name` and `docker.label`, `label` would be `kubernetes.namespace.name-docker.label`.\n" }, "matchSpecification": { "type": "array", + "description": "Calls will be matched with the array of key-value tags present in this field.", "items": { "$ref": "#/components/schemas/ServiceMatchingRule" }, @@ -39297,6 +39490,7 @@ }, "name": { "type": "string", + "description": "The name of the service configuration. Eg: `Rule ABC`", "maxLength": 128, "minLength": 1 } @@ -39754,6 +39948,7 @@ "properties": { "connections": { "type": "array", + "description": "A list which indicates which services are consumers and which are providers in the communication chain.", "items": { "$ref": "#/components/schemas/ServiceMapConnection" }, @@ -39761,6 +39956,7 @@ }, "services": { "type": "array", + "description": "List of services in the topology.", "items": { "$ref": "#/components/schemas/ExtendedService" }, @@ -39774,28 +39970,34 @@ }, "ServiceMapConnection": { "type": "object", + "description": "A list which indicates which services are consumers and which are providers in the communication chain.", "properties": { "calls": { "type": "integer", "format": "int64", + "description": "The number of calls between the 2 services.\nEg: The number of calls from `24558242fdeb52571cfb9fa42f1b334aa65d7e61` service to `3feb3dcd206c166ef2b41c707e0cd38d7cd325aa` service over the mentioned timeframe is `200`. \n\nIf no timeframe (`to` and `windowSize` in query paramter) is mentioned, the timeframe is taken as last hour.\n", "minimum": 0 }, "errorRate": { "type": "number", "format": "double", + "description": "The error rate of the calls between the 2 services.\nEg: The error rate of calls from `24558242fdeb52571cfb9fa42f1b334aa65d7e61` service to `3feb3dcd206c166ef2b41c707e0cd38d7cd325aa` service over the mentioned timeframe is `0.1`. \n\nThe value is between 0 and 1. \n\nIf no timeframe (`to` and `windowSize` in query paramter) is mentioned, the timeframe is taken as last hour.\n", "maximum": 1, "minimum": 0 }, "from": { - "type": "string" + "type": "string", + "description": "The service that initiates a request to another service.\nIt contains a unique service id. Eg: `24558242fdeb52571cfb9fa42f1b334aa65d7e61`.\n" }, "latency": { "type": "number", "format": "double", + "description": "The mean latency of the calls between the 2 services.\nEg: The mean latency of calls from `24558242fdeb52571cfb9fa42f1b334aa65d7e61` service to `3feb3dcd206c166ef2b41c707e0cd38d7cd325aa` service over the mentioned timeframe is `4.46`. \n\nThe value is in milliseconds. \n\nIf no timeframe (`to` and `windowSize` in query paramter) is mentioned, the timeframe is taken as last hour.\n", "minimum": 0 }, "to": { - "type": "string" + "type": "string", + "description": "The service that receives the request sent by the source service.\nIt contains a unique service id. Eg: `3feb3dcd206c166ef2b41c707e0cd38d7cd325aa`.\n" } }, "required": [ @@ -39805,12 +40007,15 @@ }, "ServiceMatchingRule": { "type": "object", + "description": "Calls will be matched with the array of key-value tags present in this field.", "properties": { "key": { - "type": "string" + "type": "string", + "description": "In Instana UI, this is shown as `Tag`.\nOne can select a variety of pre-defined tags. Eg: `host.fqdn`, `container.label` etc.\n" }, "value": { - "type": "string" + "type": "string", + "description": "In Instana UI, this is known as 'key`.\nEg: if one labels Docker containers such as com.acme.service-name:myservice, to map services from this label,\nthe `key` aka `tag` would be `docker.label` and `value` aka `key` would be `com.acme.service-name`.\n" } }, "required": [ @@ -40957,7 +41162,7 @@ "type": "object", "allOf": [ { - "$ref": "#/components/schemas/Threshold" + "$ref": "#/components/schemas/ThresholdConfigRule" }, { "type": "object", @@ -41045,7 +41250,7 @@ "type": "object", "allOf": [ { - "$ref": "#/components/schemas/Threshold" + "$ref": "#/components/schemas/ThresholdConfigRule" }, { "type": "object", @@ -41198,6 +41403,11 @@ "maxLength": 65536, "minLength": 0 }, + "gracePeriod": { + "type": "integer", + "format": "int64", + "description": "The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires." + }, "name": { "type": "string", "description": "Name of the synthetic alert configuration. Used as a template for the title of alert/event notifications triggered by this Smart Alert configuration.", @@ -41280,6 +41490,11 @@ "type": "boolean", "description": "Flag to indicate whether or not the configuration is enabled." }, + "gracePeriod": { + "type": "integer", + "format": "int64", + "description": "The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires." + }, "id": { "type": "string", "description": "ID of this Synthetic Alert Config. ", @@ -42897,6 +43112,7 @@ }, "Threshold": { "type": "object", + "deprecated": true, "description": "Indicates the type of threshold this alert rule is evaluated on.", "discriminator": { "mapping": { @@ -42925,6 +43141,25 @@ "type" ] }, + "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" + ] + }, "ThresholdRule": { "type": "object", "allOf": [ @@ -44320,6 +44555,11 @@ "maxLength": 65536, "minLength": 0 }, + "gracePeriod": { + "type": "integer", + "format": "int64", + "description": "The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires." + }, "granularity": { "type": "integer", "format": "int32", @@ -44343,9 +44583,19 @@ "rule": { "$ref": "#/components/schemas/WebsiteAlertRule" }, + "rules": { + "type": "array", + "description": "A list of rules where each rule is associated with multiple thresholds and their corresponding severity levels. This enables more complex alert configurations with validations to ensure consistent and logical threshold-severity combinations.", + "items": { + "$ref": "#/components/schemas/RuleWithThresholdWebsiteAlertRule" + }, + "maxItems": 1, + "minItems": 1 + }, "severity": { "type": "integer", "format": "int32", + "deprecated": true, "description": "The severity of the alert when triggered, which is either 5 (Warning), or 10 (Critical).", "maximum": 10, "minimum": 5 @@ -44384,9 +44634,7 @@ "description", "granularity", "name", - "rule", "tagFilterExpression", - "threshold", "timeThreshold", "websiteId" ] @@ -44430,6 +44678,11 @@ "type": "boolean", "description": "Flag to indicate whether or not the configuration is enabled." }, + "gracePeriod": { + "type": "integer", + "format": "int64", + "description": "The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires." + }, "granularity": { "type": "integer", "format": "int32", @@ -44469,9 +44722,19 @@ "rule": { "$ref": "#/components/schemas/WebsiteAlertRule" }, + "rules": { + "type": "array", + "description": "A list of rules where each rule is associated with multiple thresholds and their corresponding severity levels. This enables more complex alert configurations with validations to ensure consistent and logical threshold-severity combinations.", + "items": { + "$ref": "#/components/schemas/RuleWithThresholdWebsiteAlertRule" + }, + "maxItems": 1, + "minItems": 1 + }, "severity": { "type": "integer", "format": "int32", + "deprecated": true, "description": "The severity of the alert when triggered, which is either 5 (Warning), or 10 (Critical).", "maximum": 10, "minimum": 5 @@ -44511,16 +44774,13 @@ "granularity", "id", "name", - "rule", "tagFilterExpression", - "threshold", "timeThreshold", "websiteId" ] }, "WebsiteAlertRule": { "type": "object", - "description": "Indicates the type of rule this alert configuration is about.", "discriminator": { "mapping": { "customEvent": "#/components/schemas/CustomEventWebsiteAlertRule", @@ -45580,6 +45840,11 @@ "type": "boolean", "description": "Flag to indicate whether or not the configuration is enabled." }, + "gracePeriod": { + "type": "integer", + "format": "int64", + "description": "The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires." + }, "granularity": { "type": "integer", "format": "int32", @@ -45625,9 +45890,19 @@ "rule": { "$ref": "#/components/schemas/MobileAppAlertRule" }, + "rules": { + "type": "array", + "description": "A list of rules where each rule is associated with multiple thresholds and their corresponding severity levels. This enables more complex alert configurations with validations to ensure consistent and logical threshold-severity combinations.", + "items": { + "$ref": "#/components/schemas/RuleWithThresholdMobileAppAlertRule" + }, + "maxItems": 1, + "minItems": 1 + }, "severity": { "type": "integer", "format": "int32", + "deprecated": true, "description": "The severity of the alert when triggered, which is either 5 (Warning), or 10 (Critical).", "maximum": 10, "minimum": 5 @@ -45654,9 +45929,7 @@ "id", "mobileAppId", "name", - "rule", "tagFilterExpression", - "threshold", "timeThreshold" ] }, diff --git a/openapi.yaml b/openapi.yaml index b74615c..cb3e47b 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -6,7 +6,7 @@ info: url: 'http://instana.com' termsOfService: 'https://www.instana.com/terms-of-use/' title: Instana REST API documentation - version: 1.288.935 + version: 1.289.1357 x-logo: altText: instana logo backgroundColor: '#FAFBFC' @@ -1495,7 +1495,7 @@ paths: summary: Get application tags tags: - Application Catalog - description: "This endpoint retrieves all available tags for your monitored system.\n\nThese tags can be used to group metric results.\n```\n\"group\": {\n \"groupbyTag\": \"service.name\"\n}\n```\n\nThese tags can be used to filter metric results.\n```\n\"tagFilters\": [{\n\t\"name\": \"application.name\",\n\t\"operator\": \"EQUALS\",\n\t\"value\": \"example\"\n}]\n```\n" + description: "**Note:** This API Endpoint is deprecated. Use `Get application tag catalog` endpoint instead.\n\nThis endpoint retrieves all available tags for your monitored system.\n\nThese tags can be used to group metric results.\n```\n\"group\": {\n \"groupbyTag\": \"service.name\"\n}\n```\n\nThese tags can be used to filter metric results.\n```\n\"tagFilters\": [{\n\t\"name\": \"application.name\",\n\t\"operator\": \"EQUALS\",\n\t\"value\": \"example\"\n}]\n```\n" /api/application-monitoring/metrics/applications: post: description: | @@ -2793,6 +2793,7 @@ paths: required: true schema: type: string + description: A unique id of the manual service configuration. responses: default: content: @@ -2829,6 +2830,7 @@ paths: required: true schema: type: string + description: A unique id of the manual service configuration. requestBody: content: application/json: @@ -2901,6 +2903,13 @@ paths: 2. Either `unmonitoredServiceName` or `existingServiceId` should be specified in a configuration. /api/application-monitoring/settings/service: get: + description: | + Use this API endpoint if one wants to retrive a list of all service configurations. + This endpoint requires `CanConfigureServiceMapping` permission. + + One can use `Create or update an API token` endpoint to update the permission by setting `canConfigureServiceMapping` to `true`. + If one wants to enable the permission from Instana UI, go to Settings -> Security & Access -> Access Control -> API Token. + There one can update the existing token or create a new token and set `Customize service rules and endpoint mapping` to `true`. operationId: getServiceConfigs responses: '200': @@ -2927,6 +2936,21 @@ paths: tags: - Application Settings post: + description: | + Use this API endpoint if one wants to create a custom service rule. + This endpoint requires `CanConfigureServiceMapping` permission. + + One can use `Create or update an API token` endpoint to update the permission by setting `canConfigureServiceMapping` to `true`. + If one wants to enable the permission from Instana UI, go to Settings -> Security & Access -> Access Control -> API Token. + There one can update the existing token or create a new token and set `Customize service rules and endpoint mapping` to `true`. + + + ## Errata: + + + The following field is documented in the request schema: + - The `id` field is not mandatory and one can't have a service configuration id before creating one configuration. + Instana creates it automatically. operationId: addServiceConfig requestBody: content: @@ -2969,6 +2993,13 @@ paths: tags: - Application Settings put: + description: | + Use this API endpoint if one wants to modify 1 or more existing service configuration. + This endpoint requires `CanConfigureServiceMapping` permission. + + One can use `Create or update an API token` endpoint to update the permission by setting `canConfigureServiceMapping` to `true`. + If one wants to enable the permission from Instana UI, go to Settings -> Security & Access -> Access Control -> API Token. + There one can update the existing token or create a new token and set `Customize service rules and endpoint mapping` to `true`. operationId: replaceAll requestBody: content: @@ -3013,6 +3044,14 @@ paths: - Application Settings /api/application-monitoring/settings/service/order: put: + description: | + Use this API endpoint if one wants to change the order of service configurations aka custom service rules. + Note that all service configuration IDs have to be passed in the request to re-order the configurations. + This endpoint requires `CanConfigureServiceMapping` permission. + + One can use `Create or update an API token` endpoint to update the permission by setting `canConfigureServiceMapping` to `true`. + If one wants to enable the permission from Instana UI, go to Settings -> Security & Access -> Access Control -> API Token. + There one can update the existing token or create a new token and set `Customize service rules and endpoint mapping` to `true`. operationId: orderServiceConfig requestBody: content: @@ -3038,6 +3077,13 @@ paths: - Application Settings '/api/application-monitoring/settings/service/{id}': delete: + description: | + Use this API endpoint if one wants to delete a service configuration. + This endpoint requires `CanConfigureServiceMapping` permission. + + One can use `Create or update an API token` endpoint to update the permission by setting `canConfigureServiceMapping` to `true`. + If one wants to enable the permission from Instana UI, go to Settings -> Security & Access -> Access Control -> API Token. + There one can update the existing token or create a new token and set `Customize service rules and endpoint mapping` to `true`. operationId: deleteServiceConfig parameters: - in: path @@ -3045,6 +3091,7 @@ paths: required: true schema: type: string + description: 'A unique string for the service configuration. Eg: `G510hmXYSDysLZ5kuj0BaQ`' responses: default: content: @@ -3057,6 +3104,13 @@ paths: tags: - Application Settings get: + description: | + Use this API endpoint if one wants to retrieve a particular custom service rule. + This endpoint requires `CanConfigureServiceMapping` permission. + + One can use `Create or update an API token` endpoint to update the permission by setting `canConfigureServiceMapping` to `true`. + If one wants to enable the permission from Instana UI, go to Settings -> Security & Access -> Access Control -> API Token. + There one can update the existing token or create a new token and set `Customize service rules and endpoint mapping` to `true`. operationId: getServiceConfig parameters: - in: path @@ -3064,6 +3118,7 @@ paths: required: true schema: type: string + description: 'A unique string for the service configuration. Eg: `G510hmXYSDysLZ5kuj0BaQ`' responses: '200': content: @@ -3087,6 +3142,13 @@ paths: tags: - Application Settings put: + description: | + Use this API endpoint if one wants to update a particular custom service rule. + This endpoint requires `CanConfigureServiceMapping` permission. + + One can use `Create or update an API token` endpoint to update the permission by setting `canConfigureServiceMapping` to `true`. + If one wants to enable the permission from Instana UI, go to Settings -> Security & Access -> Access Control -> API Token. + There one can update the existing token or create a new token and set `Customize service rules and endpoint mapping` to `true`. operationId: putServiceConfig parameters: - in: path @@ -3094,6 +3156,7 @@ paths: required: true schema: type: string + description: 'A unique string for the service configuration. Eg: `G510hmXYSDysLZ5kuj0BaQ`' requestBody: content: application/json: @@ -3137,6 +3200,14 @@ paths: - Application Settings /api/application-monitoring/topology/services: get: + description: | + Use this API endpoint if one wants to retrieve services and connections (call paths) between them for calls in the scope given by the parameters. + + ## Errata: + + The following fields are unsupported but documented in the schema for the result `services`: + - The `applications` field is always missing and the `snapshotIds` field is always empty, despite being declared as required in the result schema. + - The `maxSeverity` and `numberOfOpenIssues` fields are always missing. operationId: getServicesMap parameters: - description: Size of time window in milliseconds @@ -4045,6 +4116,11 @@ paths: name: executionType schema: type: string + - description: Filter policies by action ID. This is an optional parameter. + in: query + name: actionId + schema: + type: string responses: '200': content: @@ -11725,6 +11801,11 @@ paths: items: $ref: '#/components/schemas/GetPayloadKeysResult' description: OK + links: + payload for snapshot: + operationId: getPluginPayload + parameters: + payloadKey: '$response.body#/[*]' security: - ApiKeyAuth: - Default @@ -11840,6 +11921,7 @@ paths: - Infrastructure Catalog '/api/infrastructure-monitoring/graph/related-hosts/{snapshotId}': get: + description: Gets the Related Hosts operationId: getRelatedHosts parameters: - description: Snapshot ID running on the host @@ -11870,7 +11952,7 @@ paths: type: array items: type: string - description: OK + description: Returns the snapshot ID of the hosts security: - ApiKeyAuth: - Default @@ -11935,7 +12017,7 @@ paths: required: true schema: type: string - - description: Payload key. Use `/api/infrastructure-monitoring/catalog/payloads` to retrieve the list of possible keys. + - description: 'Payload key. Use [getAvailablePayloadKeysByPluginId](/#operation/getAvailablePayloadKeysByPluginId) to retrieve the list of possible keys.' example: topqueries in: path name: payloadKey @@ -14810,6 +14892,9 @@ paths: infraDfqFilter: scopeId: '' scopeRoleId: '-1' + actionFilter: + scopeId: '' + scopeRoleId: '-1' schema: $ref: '#/components/schemas/ApiCreateGroup' required: true @@ -14851,6 +14936,9 @@ paths: infraDfqFilter: scopeId: '' scopeRoleId: '-1' + actionFilter: + scopeId: '' + scopeRoleId: '-1' schema: $ref: '#/components/schemas/ApiGroup' description: OK @@ -14936,6 +15024,9 @@ paths: infraDfqFilter: scopeId: '' scopeRoleId: '-1' + actionFilter: + scopeId: '' + scopeRoleId: '-1' schema: type: array items: @@ -14998,6 +15089,9 @@ paths: infraDfqFilter: scopeId: '' scopeRoleId: '-1' + actionFilter: + scopeId: '' + scopeRoleId: '-1' schema: $ref: '#/components/schemas/ApiGroup' description: OK @@ -15096,6 +15190,9 @@ paths: infraDfqFilter: scopeId: '' scopeRoleId: '-1' + actionFilter: + scopeId: '' + scopeRoleId: '-1' schema: $ref: '#/components/schemas/ApiGroup' description: OK @@ -15202,6 +15299,9 @@ paths: infraDfqFilter: scopeId: '' scopeRoleId: '-1' + actionFilter: + scopeId: '' + scopeRoleId: '-1' schema: $ref: '#/components/schemas/ApiGroup' description: OK @@ -15259,6 +15359,9 @@ paths: infraDfqFilter: scopeId: '' scopeRoleId: '-1' + actionFilter: + scopeId: '' + scopeRoleId: '-1' schema: $ref: '#/components/schemas/ApiGroup' required: true @@ -15300,6 +15403,9 @@ paths: infraDfqFilter: scopeId: '' scopeRoleId: '-1' + actionFilter: + scopeId: '' + scopeRoleId: '-1' schema: $ref: '#/components/schemas/ApiGroup' description: OK @@ -21638,7 +21744,7 @@ components: AdaptiveThresholdRule: type: object allOf: - - $ref: '#/components/schemas/Threshold' + - $ref: '#/components/schemas/ThresholdConfigRule' - type: object properties: deviationFactor: @@ -22091,6 +22197,8 @@ components: type: boolean canConfigureSessionSettings: type: boolean + canConfigureSubtraces: + type: boolean canConfigureSyntheticCredentials: type: boolean canConfigureSyntheticLocations: @@ -22117,6 +22225,8 @@ components: type: boolean canInstallNewAgents: type: boolean + canInvokeAlertChannel: + type: boolean canManuallyCloseIssue: type: boolean canRunAutomationActions: @@ -22317,6 +22427,10 @@ components: - PER_AP - PER_AP_SERVICE - PER_AP_ENDPOINT + gracePeriod: + type: integer + format: int64 + description: 'The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires.' granularity: type: integer format: int32 @@ -22450,6 +22564,10 @@ components: - PER_AP - PER_AP_SERVICE - PER_AP_ENDPOINT + gracePeriod: + type: integer + format: int64 + description: 'The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires.' granularity: type: integer format: int32 @@ -24456,6 +24574,7 @@ components: - type ExtendedService: type: object + description: List of services in the topology. properties: applications: type: array @@ -25671,6 +25790,10 @@ components: - PER_AP - PER_AP_SERVICE - PER_AP_ENDPOINT + gracePeriod: + type: integer + format: int64 + description: 'The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires.' granularity: type: integer format: int32 @@ -25798,6 +25921,10 @@ components: - PER_AP - PER_AP_SERVICE - PER_AP_ENDPOINT + gracePeriod: + type: integer + format: int64 + description: 'The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires.' granularity: type: integer format: int32 @@ -26299,6 +26426,10 @@ components: description: Description of the Infrastructure Smart Alert. Used as a template for the description of alert/event notifications triggered by this Smart Alert configuration. maxLength: 65536 minLength: 0 + gracePeriod: + type: integer + format: int64 + description: 'The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires.' granularity: type: integer format: int32 @@ -26394,6 +26525,10 @@ components: minLength: 0 enabled: type: boolean + gracePeriod: + type: integer + format: int64 + description: 'The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires.' granularity: type: integer format: int32 @@ -26887,6 +27022,10 @@ components: type: string maxLength: 65536 minLength: 0 + gracePeriod: + type: integer + format: int64 + description: 'The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires.' granularity: type: integer format: int32 @@ -26950,6 +27089,10 @@ components: minLength: 0 enabled: type: boolean + gracePeriod: + type: integer + format: int64 + description: 'The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires.' granularity: type: integer format: int32 @@ -27317,18 +27460,23 @@ components: properties: description: type: string + description: A description of the manual service configuration. enabled: type: boolean + description: Enable or disable the manual service configuration. By default it is enabled. existingServiceId: type: string + description: The service ID of the existing monitored service to which the calls should be linked. id: type: string + description: A unique id of the manual service configuration. maxLength: 128 minLength: 1 tagFilterExpression: $ref: '#/components/schemas/TagFilterExpressionElement' unmonitoredServiceName: type: string + description: A service name if you want to map calls to an unmonitored service. required: - id - tagFilterExpression @@ -27914,6 +28062,10 @@ components: description: Description of the mobile app alert configuration. Used as a template for the description of alert/event notifications triggered by this Smart Alert configuration. maxLength: 65536 minLength: 0 + gracePeriod: + type: integer + format: int64 + description: 'The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires.' granularity: type: integer format: int32 @@ -27938,9 +28090,17 @@ components: minLength: 0 rule: $ref: '#/components/schemas/MobileAppAlertRule' + rules: + type: array + description: A list of rules where each rule is associated with multiple thresholds and their corresponding severity levels. This enables more complex alert configurations with validations to ensure consistent and logical threshold-severity combinations. + items: + $ref: '#/components/schemas/RuleWithThresholdMobileAppAlertRule' + maxItems: 1 + minItems: 1 severity: type: integer format: int32 + deprecated: true description: 'The severity of the alert when triggered, which is either 5 (Warning), or 10 (Critical).' maximum: 10 minimum: 5 @@ -27960,13 +28120,10 @@ components: - granularity - mobileAppId - name - - rule - tagFilterExpression - - threshold - timeThreshold MobileAppAlertRule: type: object - description: Indicates the type of rule this alert configuration is about. discriminator: mapping: crash: '#/components/schemas/CrashMobileAppAlertRule' @@ -28707,14 +28864,18 @@ components: properties: description: type: string + description: A description of the manual service configuration. enabled: type: boolean + description: Enable or disable the manual service configuration. By default it is enabled. existingServiceId: type: string + description: The service ID of the existing monitored service to which the calls should be linked. tagFilterExpression: $ref: '#/components/schemas/TagFilterExpressionElement' unmonitoredServiceName: type: string + description: A service name if you want to map calls to an unmonitored service. required: - tagFilterExpression Occurrence: @@ -29160,7 +29321,7 @@ components: thresholds: type: object additionalProperties: - $ref: '#/components/schemas/Threshold' + $ref: '#/components/schemas/ThresholdConfigRule' required: - rule - thresholdOperator @@ -29181,7 +29342,49 @@ components: thresholds: type: object additionalProperties: - $ref: '#/components/schemas/Threshold' + $ref: '#/components/schemas/ThresholdConfigRule' + required: + - rule + - thresholdOperator + - thresholds + RuleWithThresholdMobileAppAlertRule: + type: object + description: A list of rules where each rule is associated with multiple thresholds and their corresponding severity levels. This enables more complex alert configurations with validations to ensure consistent and logical threshold-severity combinations. + properties: + rule: + $ref: '#/components/schemas/MobileAppAlertRule' + thresholdOperator: + type: string + enum: + - '>' + - '>=' + - < + - <= + thresholds: + type: object + additionalProperties: + $ref: '#/components/schemas/ThresholdConfigRule' + required: + - rule + - thresholdOperator + - thresholds + RuleWithThresholdWebsiteAlertRule: + type: object + description: A list of rules where each rule is associated with multiple thresholds and their corresponding severity levels. This enables more complex alert configurations with validations to ensure consistent and logical threshold-severity combinations. + properties: + rule: + $ref: '#/components/schemas/WebsiteAlertRule' + thresholdOperator: + type: string + enum: + - '>' + - '>=' + - < + - <= + thresholds: + type: object + additionalProperties: + $ref: '#/components/schemas/ThresholdConfigRule' required: - rule - thresholdOperator @@ -29331,22 +29534,32 @@ components: properties: comment: type: string + description: | + A small description of the service configuration would be present in this field if it was provided during creation of the custom service rule. + If it was not provided, this field will remain empty. It is considered as best practice to add a comment to document the reasoning behind creating the rule. maxLength: 2048 minLength: 0 enabled: type: boolean + description: 'If enabled, calls will be mapped to the rule.' id: type: string + description: 'A unique string for the service configuration. Eg: `G510hmXYSDysLZ5kuj0BaQ`' label: type: string + description: | + It contains the tags defined in `matchSpecification` concatenated with a dash. + Eg: if the `matchSpecification` contains keys `kubernetes.namespace.name` and `docker.label`, `label` would be `kubernetes.namespace.name-docker.label`. matchSpecification: type: array + description: Calls will be matched with the array of key-value tags present in this field. items: $ref: '#/components/schemas/ServiceMatchingRule' maxItems: 20 minItems: 0 name: type: string + description: 'The name of the service configuration. Eg: `Rule ABC`' maxLength: 128 minLength: 1 required: @@ -29691,11 +29904,13 @@ components: properties: connections: type: array + description: A list which indicates which services are consumers and which are providers in the communication chain. items: $ref: '#/components/schemas/ServiceMapConnection' uniqueItems: true services: type: array + description: List of services in the topology. items: $ref: '#/components/schemas/ExtendedService' uniqueItems: true @@ -29704,34 +29919,68 @@ components: - services ServiceMapConnection: type: object + description: A list which indicates which services are consumers and which are providers in the communication chain. properties: calls: type: integer format: int64 + description: | + The number of calls between the 2 services. + Eg: The number of calls from `24558242fdeb52571cfb9fa42f1b334aa65d7e61` service to `3feb3dcd206c166ef2b41c707e0cd38d7cd325aa` service over the mentioned timeframe is `200`. + + If no timeframe (`to` and `windowSize` in query paramter) is mentioned, the timeframe is taken as last hour. minimum: 0 errorRate: type: number format: double + description: | + The error rate of the calls between the 2 services. + Eg: The error rate of calls from `24558242fdeb52571cfb9fa42f1b334aa65d7e61` service to `3feb3dcd206c166ef2b41c707e0cd38d7cd325aa` service over the mentioned timeframe is `0.1`. + + The value is between 0 and 1. + + If no timeframe (`to` and `windowSize` in query paramter) is mentioned, the timeframe is taken as last hour. maximum: 1 minimum: 0 from: type: string + description: | + The service that initiates a request to another service. + It contains a unique service id. Eg: `24558242fdeb52571cfb9fa42f1b334aa65d7e61`. latency: type: number format: double + description: | + The mean latency of the calls between the 2 services. + Eg: The mean latency of calls from `24558242fdeb52571cfb9fa42f1b334aa65d7e61` service to `3feb3dcd206c166ef2b41c707e0cd38d7cd325aa` service over the mentioned timeframe is `4.46`. + + The value is in milliseconds. + + If no timeframe (`to` and `windowSize` in query paramter) is mentioned, the timeframe is taken as last hour. minimum: 0 to: type: string + description: | + The service that receives the request sent by the source service. + It contains a unique service id. Eg: `3feb3dcd206c166ef2b41c707e0cd38d7cd325aa`. required: - from - to ServiceMatchingRule: type: object + description: Calls will be matched with the array of key-value tags present in this field. properties: key: type: string + description: | + In Instana UI, this is shown as `Tag`. + One can select a variety of pre-defined tags. Eg: `host.fqdn`, `container.label` etc. value: type: string + description: | + In Instana UI, this is known as 'key`. + Eg: if one labels Docker containers such as com.acme.service-name:myservice, to map services from this label, + the `key` aka `tag` would be `docker.label` and `value` aka `key` would be `com.acme.service-name`. required: - key - value @@ -30547,7 +30796,7 @@ components: StaticBaselineThresholdRule: type: object allOf: - - $ref: '#/components/schemas/Threshold' + - $ref: '#/components/schemas/ThresholdConfigRule' - type: object properties: baseline: @@ -30602,7 +30851,7 @@ components: StaticThresholdRule: type: object allOf: - - $ref: '#/components/schemas/Threshold' + - $ref: '#/components/schemas/ThresholdConfigRule' - type: object properties: value: @@ -30711,6 +30960,10 @@ components: description: Description of the synthetic alert configuration. Used as a template for the description of alert/event notifications triggered by this Smart Alert configuration. maxLength: 65536 minLength: 0 + gracePeriod: + type: integer + format: int64 + description: 'The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires.' name: type: string description: Name of the synthetic alert configuration. Used as a template for the title of alert/event notifications triggered by this Smart Alert configuration. @@ -30776,6 +31029,10 @@ components: enabled: type: boolean description: Flag to indicate whether or not the configuration is enabled. + gracePeriod: + type: integer + format: int64 + description: 'The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires.' id: type: string description: 'ID of this Synthetic Alert Config. ' @@ -31977,6 +32234,7 @@ components: - properties Threshold: type: object + deprecated: true description: Indicates the type of threshold this alert rule is evaluated on. discriminator: mapping: @@ -31997,6 +32255,19 @@ components: required: - operator - type + 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 ThresholdRule: type: object allOf: @@ -32999,6 +33270,10 @@ components: description: Description of the website alert configuration. Used as a template for the description of alert/event notifications triggered by this Smart Alert configuration. maxLength: 65536 minLength: 0 + gracePeriod: + type: integer + format: int64 + description: 'The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires.' granularity: type: integer format: int32 @@ -33018,9 +33293,17 @@ components: minLength: 0 rule: $ref: '#/components/schemas/WebsiteAlertRule' + rules: + type: array + description: A list of rules where each rule is associated with multiple thresholds and their corresponding severity levels. This enables more complex alert configurations with validations to ensure consistent and logical threshold-severity combinations. + items: + $ref: '#/components/schemas/RuleWithThresholdWebsiteAlertRule' + maxItems: 1 + minItems: 1 severity: type: integer format: int32 + deprecated: true description: 'The severity of the alert when triggered, which is either 5 (Warning), or 10 (Critical).' maximum: 10 minimum: 5 @@ -33050,9 +33333,7 @@ components: - description - granularity - name - - rule - tagFilterExpression - - threshold - timeThreshold - websiteId WebsiteAlertConfigWithMetadata: @@ -33087,6 +33368,10 @@ components: enabled: type: boolean description: Flag to indicate whether or not the configuration is enabled. + gracePeriod: + type: integer + format: int64 + description: 'The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires.' granularity: type: integer format: int32 @@ -33119,9 +33404,17 @@ components: description: Flag to indicate whether or not the configuration is read-only. Read-only access restricts modification of the config. rule: $ref: '#/components/schemas/WebsiteAlertRule' + rules: + type: array + description: A list of rules where each rule is associated with multiple thresholds and their corresponding severity levels. This enables more complex alert configurations with validations to ensure consistent and logical threshold-severity combinations. + items: + $ref: '#/components/schemas/RuleWithThresholdWebsiteAlertRule' + maxItems: 1 + minItems: 1 severity: type: integer format: int32 + deprecated: true description: 'The severity of the alert when triggered, which is either 5 (Warning), or 10 (Critical).' maximum: 10 minimum: 5 @@ -33152,14 +33445,11 @@ components: - granularity - id - name - - rule - tagFilterExpression - - threshold - timeThreshold - websiteId WebsiteAlertRule: type: object - description: Indicates the type of rule this alert configuration is about. discriminator: mapping: customEvent: '#/components/schemas/CustomEventWebsiteAlertRule' @@ -33979,6 +34269,10 @@ components: enabled: type: boolean description: Flag to indicate whether or not the configuration is enabled. + gracePeriod: + type: integer + format: int64 + description: 'The duration for which an alert remains open after conditions are no longer violated, with the alert auto-closing once the grace period expires.' granularity: type: integer format: int32 @@ -34016,9 +34310,17 @@ components: description: Flag to indicate whether or not the configuration is read-only. Read-only access restricts modification of the config. rule: $ref: '#/components/schemas/MobileAppAlertRule' + rules: + type: array + description: A list of rules where each rule is associated with multiple thresholds and their corresponding severity levels. This enables more complex alert configurations with validations to ensure consistent and logical threshold-severity combinations. + items: + $ref: '#/components/schemas/RuleWithThresholdMobileAppAlertRule' + maxItems: 1 + minItems: 1 severity: type: integer format: int32 + deprecated: true description: 'The severity of the alert when triggered, which is either 5 (Warning), or 10 (Critical).' maximum: 10 minimum: 5 @@ -34039,9 +34341,7 @@ components: - id - mobileAppId - name - - rule - tagFilterExpression - - threshold - timeThreshold WithResolvedName: type: object